{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20RouterV2",
  "sourceName": "contracts/__deprecated__/Routers/ERC20RouterV2.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "address",
          "name": "_activePoolAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_traderJoeRouter",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_veusdTokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_USDC",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_USDT",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_DAI",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "name": "RouteSet",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "nodeTypes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_fromUser",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_startingTokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_endingTokenAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_minSwapAmount",
          "type": "uint256"
        }
      ],
      "name": "route",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "routes",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "selfDestruct",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_who",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "setApprovals",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_fromToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_toToken",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_path",
          "type": "address[]"
        }
      ],
      "name": "setRoute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_fromUser",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_startingTokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_endingTokenAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_minSwapAmount",
          "type": "uint256"
        }
      ],
      "name": "unRoute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "veusdMetapoolIndex",
      "outputs": [
        {
          "internalType": "int128",
          "name": "",
          "type": "int128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162001db638038062001db6833981810160405260e08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c0909501519396509194509290916000620001286001600160e01b036200022b16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508651620001879060049060208a019062000230565b50600180546001600160a01b039788166001600160a01b03199182161782556002805497891697821697909717875560038054968916969091168617815560008681526007602052604080822080546001600160801b03199081168255978b168352818320805489169095179094559489168152848120805487169098179097559190961685529084208054831690911790559152815416600417905550620002d2565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027357805160ff1916838001178555620002a3565b82800160010185558215620002a3579182015b82811115620002a357825182559160200191906001019062000286565b50620002b1929150620002b5565b5090565b6200022d91905b80821115620002b15760008155600101620002bc565b611ad480620002e26000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063715018a611610081578063a7b8a5371161005b578063a7b8a53714610304578063e32d5cf814610346578063f2fde38b1461037c576100d4565b8063715018a6146102ec5780638da5cb5b146102f45780639cb8a26a146102fc576100d4565b80632bc710e7116100b25780632bc710e71461022057806340dbf96214610258578063600c557d1461029a576100d4565b806306fdde03146100d957806324201f9c146101565780632634092614610195575b600080fd5b6100e16103a2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011b578181015183820152602001610103565b50505050905090810190601f1680156101485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017c6004803603602081101561016c57600080fd5b50356001600160a01b0316610430565b60408051600f92830b90920b8252519081900360200190f35b61021e600480360360608110156101ab57600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101df57600080fd5b8201836020820111156101f157600080fd5b8035906020019184602083028401116401000000008311171561021357600080fd5b509092509050610445565b005b6102466004803603602081101561023657600080fd5b50356001600160a01b0316610587565b60408051918252519081900360200190f35b610246600480360360a081101561026e57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135610599565b6102d0600480360360608110156102b057600080fd5b506001600160a01b03813581169160208101359091169060400135610966565b604080516001600160a01b039092168252519081900360200190f35b61021e6109a8565b6102d0610a73565b61021e610a83565b610246600480360360a081101561031a57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135610afa565b61021e6004803603606081101561035c57600080fd5b506001600160a01b03813581169160208101359091169060400135610eef565b61021e6004803603602081101561039257600080fd5b50356001600160a01b0316610ff4565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b505050505081565b600760205260009081526040902054600f0b81565b61044d611115565b6001600160a01b031661045e610a73565b6001600160a01b0316146104b9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0380851660009081526005602090815260408083209387168352929052206104e99083836118f9565b507f3bb892637ac4ebdf341ef18a8bf0e2b1966820695aeaab3bba2d9cee655724178484848460405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b03168152602001806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f191690920182900397509095505050505050a150505050565b60066020526000908152604090205481565b6003546000906001600160a01b038681169116146105e85760405162461bcd60e51b815260040180806020018281038252602a815260200180611a75602a913960400191505060405180910390fd5b6001600160a01b03808616600090815260056020908152604080832093881683529281529082902080548351818402810184019094528084526060939283018282801561065e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610640575b5050505050905060008151116106bb576040805162461bcd60e51b815260206004820152600e60248201527f4e6f20726f75746520666f756e64000000000000000000000000000000000000604482015290519081900360640190fd5b600354604080516323b872dd60e01b81526001600160a01b038a8116600483015230602483015260448201889052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561071757600080fd5b505af115801561072b573d6000803e3d6000fd5b505050506040513d602081101561074157600080fd5b50600090505b8151811015610820576006600083838151811061076057fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600114156107b5576107ae8282815181106107a057fe5b602002602001015188611119565b9650610818565b600660008383815181106107c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460021415610818576108158783838151811061080657fe5b60200260200101516001611557565b96505b600101610747565b50604080516370a0823160e01b815230600482015290516000916001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d602081101561089557600080fd5b50516001546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810184905290519293509088169163a9059cbb916044808201926020929091908290030181600087803b1580156108f057600080fd5b505af1158015610904573d6000803e3d6000fd5b505050506040513d602081101561091a57600080fd5b50508381101561095b5760405162461bcd60e51b8152600401808060200182810382526035815260200180611a156035913960400191505060405180910390fd5b979650505050505050565b6005602052826000526040600020602052816000526040600020818154811061098b57fe5b6000918252602090912001546001600160a01b0316925083915050565b6109b0611115565b6001600160a01b03166109c1610a73565b6001600160a01b031614610a1c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03165b90565b610a8b611115565b6001600160a01b0316610a9c610a73565b6001600160a01b031614610af7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b33ff5b6003546000906001600160a01b03858116911614610b495760405162461bcd60e51b815260040180806020018281038252602c81526020018061199b602c913960400191505060405180910390fd5b60408051600280825260608083018452926020830190803683370190505090508581600081518110610b7757fe5b6001600160a01b039283166020918202929092010152600354825191169082906001908110610ba257fe5b6001600160a01b03928316602091820292909201810191909152604080516323b872dd60e01b81528a84166004820152306024820152604481018890529051928916926323b872dd926064808401939192918290030181600087803b158015610c0a57600080fd5b505af1158015610c1e573d6000803e3d6000fd5b505050506040513d6020811015610c3457600080fd5b5050600254604080517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810187905290519188169163095ea7b3916044808201926020929091908290030181600087803b158015610ca557600080fd5b505af1158015610cb9573d6000803e3d6000fd5b505050506040513d6020811015610ccf57600080fd5b8101908080519060200190929190505050506060600260009054906101000a90046001600160a01b03166001600160a01b03166338ed1739866001858c426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610d86578181015183820152602001610d6e565b505050509050019650505050505050600060405180830381600087803b158015610daf57600080fd5b505af1158015610dc3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610dec57600080fd5b8101908080516040519392919084640100000000821115610e0c57600080fd5b908301906020820185811115610e2157600080fd5b8251866020820283011164010000000082111715610e3e57600080fd5b82525081516020918201928201910280838360005b83811015610e6b578181015183820152602001610e53565b5050505090500160405250505090508381600181518110610e8857fe5b60200260200101511015610ecd5760405162461bcd60e51b8152600401808060200182810382526035815260200180611a156035913960400191505060405180910390fd5b80600181518110610eda57fe5b60200260200101519250505095945050505050565b610ef7611115565b6001600160a01b0316610f08610a73565b6001600160a01b031614610f63576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b826001600160a01b031663095ea7b383836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506040513d6020811015610fed57600080fd5b5050505050565b610ffc611115565b6001600160a01b031661100d610a73565b6001600160a01b031614611068576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166110ad5760405162461bcd60e51b81526004018080602001828103825260268152602001806119c76026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b604080516370a0823160e01b8152306004820152905160009182916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561116457600080fd5b505afa158015611178573d6000803e3d6000fd5b505050506040513d602081101561118e57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0387811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b1580156111e657600080fd5b505af11580156111fa573d6000803e3d6000fd5b505050506040513d602081101561121057600080fd5b5050604080517f0dfe16810000000000000000000000000000000000000000000000000000000081529051600091829182916001600160a01b0380891692908a1691630dfe1681916004808301926020929190829003018186803b15801561127757600080fd5b505afa15801561128b573d6000803e3d6000fd5b505050506040513d60208110156112a157600080fd5b50516001600160a01b0316141561131e57866001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156112eb57600080fd5b505afa1580156112ff573d6000803e3d6000fd5b505050506040513d602081101561131557600080fd5b50519250611386565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561135757600080fd5b505afa15801561136b573d6000803e3d6000fd5b505050506040513d602081101561138157600080fd5b505192505b600080886001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156113c257600080fd5b505afa1580156113d6573d6000803e3d6000fd5b505050506040513d60608110156113ec57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b03808616908916101561143757600061142d878484611740565b9094509250611449565b611442868284611740565b9350600092505b604080516000808252602082019092526001600160a01b038b169163022c0d9f91879187913091506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114e15781810151838201526020016114c9565b50505050905090810190601f16801561150e5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561153057600080fd5b505af1158015611544573d6000803e3d6000fd5b5096985050505050505050505b92915050565b604080516370a0823160e01b8152306004820152905160009182916001600160a01b038716916370a08231916024808301926020929190829003018186803b1580156115a257600080fd5b505afa1580156115b6573d6000803e3d6000fd5b505050506040513d60208110156115cc57600080fd5b505190508215611682576001600160a01b038581166000908152600760209081526040808320548151635320bf6b60e11b815260048101859052600f91820b820b90910b6024820152604481018690526064810184905290519388169363a6417ed693608480840194938390030190829087803b15801561164c57600080fd5b505af1158015611660573d6000803e3d6000fd5b505050506040513d602081101561167657600080fd5b50859250611739915050565b6001600160a01b038581166000908152600760209081526040808320548151635320bf6b60e11b8152600f91820b820b90910b600482015260248101849052604481018690526064810184905290519388169363a6417ed693608480840194938390030190829087803b1580156116f857600080fd5b505af115801561170c573d6000803e3d6000fd5b505050506040513d602081101561172257600080fd5b50506003546001600160a01b031691506117399050565b9392505050565b60008084116117805760405162461bcd60e51b815260040180806020018281038252602b815260200180611a4a602b913960400191505060405180910390fd5b6000831180156117905750600082115b6117cb5760405162461bcd60e51b81526004018080602001828103825260288152602001806119ed6028913960400191505060405180910390fd5b60006117df856103e563ffffffff61183016565b905060006117f3828563ffffffff61183016565b905060006118198361180d886103e863ffffffff61183016565b9063ffffffff61189f16565b905080828161182457fe5b04979650505050505050565b60008261183f57506000611551565b8282028284828161184c57fe5b0414611739576040805162461bcd60e51b815260206004820152600c60248201527f6d756c206f766572666c6f770000000000000000000000000000000000000000604482015290519081900360640190fd5b600082820183811015611739576040805162461bcd60e51b815260206004820152600c60248201527f616464206f766572666c6f770000000000000000000000000000000000000000604482015290519081900360640190fd5b828054828255906000526020600020908101928215611959579160200282015b8281111561195957815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03843516178255602090920191600190910190611919565b50611965929150611969565b5090565b610a8091905b8082111561196557805473ffffffffffffffffffffffffffffffffffffffff1916815560010161196f56fe43616e6e6f7420756e726f7574652066726f6d206120746f6b656e206f74686572207468616e2056455553444f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459446964206e6f74207265636569766520656e6f75676820746f6b656e7320746f206163636f756e7420666f7220736c697070616765556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e5443616e6e6f7420726f7574652066726f6d206120746f6b656e206f74686572207468616e205645555344a264697066735822122092fdc775e9a9a490865955f60ba8bb1512e1ff8419452665816402661e89140064736f6c634300060b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063715018a611610081578063a7b8a5371161005b578063a7b8a53714610304578063e32d5cf814610346578063f2fde38b1461037c576100d4565b8063715018a6146102ec5780638da5cb5b146102f45780639cb8a26a146102fc576100d4565b80632bc710e7116100b25780632bc710e71461022057806340dbf96214610258578063600c557d1461029a576100d4565b806306fdde03146100d957806324201f9c146101565780632634092614610195575b600080fd5b6100e16103a2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011b578181015183820152602001610103565b50505050905090810190601f1680156101485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017c6004803603602081101561016c57600080fd5b50356001600160a01b0316610430565b60408051600f92830b90920b8252519081900360200190f35b61021e600480360360608110156101ab57600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101df57600080fd5b8201836020820111156101f157600080fd5b8035906020019184602083028401116401000000008311171561021357600080fd5b509092509050610445565b005b6102466004803603602081101561023657600080fd5b50356001600160a01b0316610587565b60408051918252519081900360200190f35b610246600480360360a081101561026e57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135610599565b6102d0600480360360608110156102b057600080fd5b506001600160a01b03813581169160208101359091169060400135610966565b604080516001600160a01b039092168252519081900360200190f35b61021e6109a8565b6102d0610a73565b61021e610a83565b610246600480360360a081101561031a57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135610afa565b61021e6004803603606081101561035c57600080fd5b506001600160a01b03813581169160208101359091169060400135610eef565b61021e6004803603602081101561039257600080fd5b50356001600160a01b0316610ff4565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b505050505081565b600760205260009081526040902054600f0b81565b61044d611115565b6001600160a01b031661045e610a73565b6001600160a01b0316146104b9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0380851660009081526005602090815260408083209387168352929052206104e99083836118f9565b507f3bb892637ac4ebdf341ef18a8bf0e2b1966820695aeaab3bba2d9cee655724178484848460405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b03168152602001806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f191690920182900397509095505050505050a150505050565b60066020526000908152604090205481565b6003546000906001600160a01b038681169116146105e85760405162461bcd60e51b815260040180806020018281038252602a815260200180611a75602a913960400191505060405180910390fd5b6001600160a01b03808616600090815260056020908152604080832093881683529281529082902080548351818402810184019094528084526060939283018282801561065e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610640575b5050505050905060008151116106bb576040805162461bcd60e51b815260206004820152600e60248201527f4e6f20726f75746520666f756e64000000000000000000000000000000000000604482015290519081900360640190fd5b600354604080516323b872dd60e01b81526001600160a01b038a8116600483015230602483015260448201889052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561071757600080fd5b505af115801561072b573d6000803e3d6000fd5b505050506040513d602081101561074157600080fd5b50600090505b8151811015610820576006600083838151811061076057fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054600114156107b5576107ae8282815181106107a057fe5b602002602001015188611119565b9650610818565b600660008383815181106107c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460021415610818576108158783838151811061080657fe5b60200260200101516001611557565b96505b600101610747565b50604080516370a0823160e01b815230600482015290516000916001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d602081101561089557600080fd5b50516001546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810184905290519293509088169163a9059cbb916044808201926020929091908290030181600087803b1580156108f057600080fd5b505af1158015610904573d6000803e3d6000fd5b505050506040513d602081101561091a57600080fd5b50508381101561095b5760405162461bcd60e51b8152600401808060200182810382526035815260200180611a156035913960400191505060405180910390fd5b979650505050505050565b6005602052826000526040600020602052816000526040600020818154811061098b57fe5b6000918252602090912001546001600160a01b0316925083915050565b6109b0611115565b6001600160a01b03166109c1610a73565b6001600160a01b031614610a1c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03165b90565b610a8b611115565b6001600160a01b0316610a9c610a73565b6001600160a01b031614610af7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b33ff5b6003546000906001600160a01b03858116911614610b495760405162461bcd60e51b815260040180806020018281038252602c81526020018061199b602c913960400191505060405180910390fd5b60408051600280825260608083018452926020830190803683370190505090508581600081518110610b7757fe5b6001600160a01b039283166020918202929092010152600354825191169082906001908110610ba257fe5b6001600160a01b03928316602091820292909201810191909152604080516323b872dd60e01b81528a84166004820152306024820152604481018890529051928916926323b872dd926064808401939192918290030181600087803b158015610c0a57600080fd5b505af1158015610c1e573d6000803e3d6000fd5b505050506040513d6020811015610c3457600080fd5b5050600254604080517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810187905290519188169163095ea7b3916044808201926020929091908290030181600087803b158015610ca557600080fd5b505af1158015610cb9573d6000803e3d6000fd5b505050506040513d6020811015610ccf57600080fd5b8101908080519060200190929190505050506060600260009054906101000a90046001600160a01b03166001600160a01b03166338ed1739866001858c426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610d86578181015183820152602001610d6e565b505050509050019650505050505050600060405180830381600087803b158015610daf57600080fd5b505af1158015610dc3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610dec57600080fd5b8101908080516040519392919084640100000000821115610e0c57600080fd5b908301906020820185811115610e2157600080fd5b8251866020820283011164010000000082111715610e3e57600080fd5b82525081516020918201928201910280838360005b83811015610e6b578181015183820152602001610e53565b5050505090500160405250505090508381600181518110610e8857fe5b60200260200101511015610ecd5760405162461bcd60e51b8152600401808060200182810382526035815260200180611a156035913960400191505060405180910390fd5b80600181518110610eda57fe5b60200260200101519250505095945050505050565b610ef7611115565b6001600160a01b0316610f08610a73565b6001600160a01b031614610f63576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b826001600160a01b031663095ea7b383836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506040513d6020811015610fed57600080fd5b5050505050565b610ffc611115565b6001600160a01b031661100d610a73565b6001600160a01b031614611068576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166110ad5760405162461bcd60e51b81526004018080602001828103825260268152602001806119c76026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b604080516370a0823160e01b8152306004820152905160009182916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561116457600080fd5b505afa158015611178573d6000803e3d6000fd5b505050506040513d602081101561118e57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0387811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b1580156111e657600080fd5b505af11580156111fa573d6000803e3d6000fd5b505050506040513d602081101561121057600080fd5b5050604080517f0dfe16810000000000000000000000000000000000000000000000000000000081529051600091829182916001600160a01b0380891692908a1691630dfe1681916004808301926020929190829003018186803b15801561127757600080fd5b505afa15801561128b573d6000803e3d6000fd5b505050506040513d60208110156112a157600080fd5b50516001600160a01b0316141561131e57866001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156112eb57600080fd5b505afa1580156112ff573d6000803e3d6000fd5b505050506040513d602081101561131557600080fd5b50519250611386565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561135757600080fd5b505afa15801561136b573d6000803e3d6000fd5b505050506040513d602081101561138157600080fd5b505192505b600080886001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156113c257600080fd5b505afa1580156113d6573d6000803e3d6000fd5b505050506040513d60608110156113ec57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b03808616908916101561143757600061142d878484611740565b9094509250611449565b611442868284611740565b9350600092505b604080516000808252602082019092526001600160a01b038b169163022c0d9f91879187913091506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114e15781810151838201526020016114c9565b50505050905090810190601f16801561150e5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561153057600080fd5b505af1158015611544573d6000803e3d6000fd5b5096985050505050505050505b92915050565b604080516370a0823160e01b8152306004820152905160009182916001600160a01b038716916370a08231916024808301926020929190829003018186803b1580156115a257600080fd5b505afa1580156115b6573d6000803e3d6000fd5b505050506040513d60208110156115cc57600080fd5b505190508215611682576001600160a01b038581166000908152600760209081526040808320548151635320bf6b60e11b815260048101859052600f91820b820b90910b6024820152604481018690526064810184905290519388169363a6417ed693608480840194938390030190829087803b15801561164c57600080fd5b505af1158015611660573d6000803e3d6000fd5b505050506040513d602081101561167657600080fd5b50859250611739915050565b6001600160a01b038581166000908152600760209081526040808320548151635320bf6b60e11b8152600f91820b820b90910b600482015260248101849052604481018690526064810184905290519388169363a6417ed693608480840194938390030190829087803b1580156116f857600080fd5b505af115801561170c573d6000803e3d6000fd5b505050506040513d602081101561172257600080fd5b50506003546001600160a01b031691506117399050565b9392505050565b60008084116117805760405162461bcd60e51b815260040180806020018281038252602b815260200180611a4a602b913960400191505060405180910390fd5b6000831180156117905750600082115b6117cb5760405162461bcd60e51b81526004018080602001828103825260288152602001806119ed6028913960400191505060405180910390fd5b60006117df856103e563ffffffff61183016565b905060006117f3828563ffffffff61183016565b905060006118198361180d886103e863ffffffff61183016565b9063ffffffff61189f16565b905080828161182457fe5b04979650505050505050565b60008261183f57506000611551565b8282028284828161184c57fe5b0414611739576040805162461bcd60e51b815260206004820152600c60248201527f6d756c206f766572666c6f770000000000000000000000000000000000000000604482015290519081900360640190fd5b600082820183811015611739576040805162461bcd60e51b815260206004820152600c60248201527f616464206f766572666c6f770000000000000000000000000000000000000000604482015290519081900360640190fd5b828054828255906000526020600020908101928215611959579160200282015b8281111561195957815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03843516178255602090920191600190910190611919565b50611965929150611969565b5090565b610a8091905b8082111561196557805473ffffffffffffffffffffffffffffffffffffffff1916815560010161196f56fe43616e6e6f7420756e726f7574652066726f6d206120746f6b656e206f74686572207468616e2056455553444f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459446964206e6f74207265636569766520656e6f75676820746f6b656e7320746f206163636f756e7420666f7220736c697070616765556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e5443616e6e6f7420726f7574652066726f6d206120746f6b656e206f74686572207468616e205645555344a264697066735822122092fdc775e9a9a490865955f60ba8bb1512e1ff8419452665816402661e89140064736f6c634300060b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
