UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

382 lines (381 loc) 38.1 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ForeignTreasuryModule", "sourceName": "contracts/presets/cross-chain/ForeignTreasuryModule.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "mailboxAddress_", "type": "address" }, { "internalType": "uint32", "name": "remoteDomain_", "type": "uint32" }, { "internalType": "bytes32", "name": "remoteRouter_", "type": "bytes32" }, { "internalType": "address", "name": "ism_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint32", "name": "origin", "type": "uint32" }, { "indexed": true, "internalType": "uint32", "name": "destination", "type": "uint32" }, { "indexed": false, "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "components": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "indexed": false, "internalType": "struct MessageAction", "name": "action", "type": "tuple" } ], "name": "MessageReceived", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "domains", "outputs": [ { "internalType": "uint32[]", "name": "", "type": "uint32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_domain", "type": "uint32" }, { "internalType": "bytes32", "name": "_router", "type": "bytes32" } ], "name": "enrollRemoteRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32[]", "name": "_domains", "type": "uint32[]" }, { "internalType": "bytes32[]", "name": "_addresses", "type": "bytes32[]" } ], "name": "enrollRemoteRouters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token_", "type": "address" } ], "name": "getERC20Balance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNativeBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_origin", "type": "uint32" }, { "internalType": "bytes32", "name": "_sender", "type": "bytes32" }, { "internalType": "bytes", "name": "_message", "type": "bytes" } ], "name": "handle", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "hook", "outputs": [ { "internalType": "contract IPostDispatchHook", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "interchainSecurityModule", "outputs": [ { "internalType": "contract IInterchainSecurityModule", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "localDomain", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mailbox", "outputs": [ { "internalType": "contract IMailbox", "name": "", "type": "address" } ], "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": "uint32", "name": "_domain", "type": "uint32" } ], "name": "routers", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_hook", "type": "address" } ], "name": "setHook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_module", "type": "address" } ], "name": "setInterchainSecurityModule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_domain", "type": "uint32" } ], "name": "unenrollRemoteRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32[]", "name": "_domains", "type": "uint32[]" } ], "name": "unenrollRemoteRouters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x60c06040523480156200001157600080fd5b5060405162001fb938038062001fb9833981016040819052620000349162000334565b8380806001600160a01b0381163b6200006a5760405162461bcd60e51b81526004016200006190620003d6565b60405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000db9190620003e8565b63ffffffff1660a052620000ef3362000124565b50505062000103336200012460201b60201c565b6200010f838362000176565b6200011a816200018e565b505050506200049c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200018a609763ffffffff841683620001fb565b5050565b806001600160a01b0381163b151580620001af57506001600160a01b038116155b620001ce5760405162461bcd60e51b815260040162000061906200040d565b620001d86200020e565b50606680546001600160a01b0319166001600160a01b0392909216919091179055565b620002088383836200023d565b50505050565b6033546001600160a01b031633146200023b5760405162461bcd60e51b815260040162000061906200048a565b565b600082815260028401602052604081208290556200025c848462000264565b949350505050565b60006200027283836200027b565b90505b92915050565b6000818152600183016020526040812054620002c45750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000275565b50600062000275565b60006001600160a01b03821662000275565b620002ea81620002cd565b8114620002f657600080fd5b50565b80516200027581620002df565b63ffffffff8116620002ea565b8051620002758162000306565b80620002ea565b8051620002758162000320565b600080600080608085870312156200034f576200034f600080fd5b60006200035d8787620002f9565b9450506020620003708782880162000313565b9350506040620003838782880162000327565b92505060606200039687828801620002f9565b91505092959194509250565b601e8152602081017f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000815290505b60200190565b602080825281016200027581620003a2565b600060208284031215620003ff57620003ff600080fd5b60006200025c848462000313565b602080825281016200027581602781527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060208201526673657474696e6760c81b604082015260600190565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65729101908152620003d0565b60208082528101620002758162000459565b60805160a051611ae9620004d0600039600061024d0152600081816102f4015281816104a801526108960152611ae96000f3fe60806040526004361061010d5760003560e01c80638d3638f411610095578063d5438eae11610064578063d5438eae146102e2578063de523cf314610316578063e9198bf914610336578063efae508a14610356578063f2fde38b1461037657600080fd5b80638d3638f41461023b5780638da5cb5b1461027c578063b49c53a7146102a2578063b588d225146102c257600080fd5b806356d5d475116100dc57806356d5d475146101b3578063715018a6146101c657806371a15b38146101db5780637f5a7c7b146101fb57806388a9d5541461022857600080fd5b80630e72cc06146101195780632ead72f61461013b5780633dfd387314610171578063440df4f41461019157600080fd5b3661011457005b600080fd5b34801561012557600080fd5b50610139610134366004611194565b610396565b005b34801561014757600080fd5b5061015b6101563660046111cc565b610406565b60405161016891906111f5565b60405180910390f35b34801561017d57600080fd5b5061013961018c366004611194565b610425565b34801561019d57600080fd5b506101a661048c565b604051610168919061126d565b6101396101c13660046112da565b61049d565b3480156101d257600080fd5b50610139610524565b3480156101e757600080fd5b506101396101f6366004611393565b610538565b34801561020757600080fd5b5060655461021b906001600160a01b031681565b60405161016891906113fa565b34801561023457600080fd5b504761015b565b34801561024757600080fd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101689190611408565b34801561028857600080fd5b506033546001600160a01b0316604051610168919061141f565b3480156102ae57600080fd5b506101396102bd36600461142d565b610593565b3480156102ce57600080fd5b5061015b6102dd366004611194565b6105a9565b3480156102ee57600080fd5b5061021b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561032257600080fd5b5060665461021b906001600160a01b031681565b34801561034257600080fd5b5061013961035136600461146a565b61061f565b34801561036257600080fd5b506101396103713660046111cc565b6106b4565b34801561038257600080fd5b50610139610391366004611194565b6106c8565b806001600160a01b0381163b1515806103b657506001600160a01b038116155b6103db5760405162461bcd60e51b81526004016103d29061151b565b60405180910390fd5b6103e36106ff565b50606680546001600160a01b0319166001600160a01b0392909216919091179055565b60008061041d609763ffffffff8086169061072916565b949350505050565b806001600160a01b0381163b15158061044557506001600160a01b038116155b6104615760405162461bcd60e51b81526004016103d29061151b565b6104696106ff565b50606580546001600160a01b0319166001600160a01b0392909216919091179055565b60606104986097610742565b905090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104e55760405162461bcd60e51b81526004016103d290611567565b60006104f0856107fd565b90508381146105115760405162461bcd60e51b81526004016103d2906115b7565b61051d85858585610849565b5050505050565b61052c6106ff565b6105366000610963565b565b6105406106ff565b8060005b8181101561058d5761057b848483818110610561576105616115c7565b905060200201602081019061057691906111cc565b6109b5565b6105866001826115f3565b9050610544565b50505050565b61059b6106ff565b6105a582826109f0565b5050565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906105d890309060040161141f565b602060405180830381865afa1580156105f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106199190611611565b92915050565b6106276106ff565b8281146106465760405162461bcd60e51b81526004016103d29061164e565b8260005b818110156106ac5761069a868683818110610667576106676115c7565b905060200201602081019061067c91906111cc565b85858481811061068e5761068e6115c7565b905060200201356109f0565b6106a56001826115f3565b905061064a565b505050505050565b6106bc6106ff565b6106c5816109b5565b50565b6106d06106ff565b6001600160a01b0381166106f65760405162461bcd60e51b81526004016103d29061169f565b6106c581610963565b6033546001600160a01b031633146105365760405162461bcd60e51b81526004016103d2906116df565b6000806107368484610a06565b915091505b9250929050565b6060600061074f83610a40565b9050805167ffffffffffffffff81111561076b5761076b6116ef565b604051908082528060200260200182016040528015610794578160200160208202803683370190505b50915060005b81518110156107f6578181815181106107b5576107b56115c7565b60200260200101518382815181106107cf576107cf6115c7565b63ffffffff90921660209283029190910190910152806107ee81611705565b91505061079a565b5050919050565b60008080610815609763ffffffff8087169061072916565b915091508161082385610adb565b906108415760405162461bcd60e51b81526004016103d29190611774565b509392505050565b600061085782840184611829565b9050806040015160000361087d5760405162461bcd60e51b81526004016103d29061188a565b610894816000015182602001518360400151610b12565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638d3638f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091691906118a5565b63ffffffff168563ffffffff167f065fced93a370999ccf83275572f59ea5612745b53dbdef081e7cf87699691ad86846040516109549291906118f8565b60405180910390a35050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6109c9609763ffffffff80841690610b2b16565b6109d282610adb565b906105a55760405162461bcd60e51b81526004016103d29190611774565b6105a5609763ffffffff808516908490610b3e16565b6000818152600283016020526040812054819080610a3557610a288585610b49565b92506000915061073b9050565b60019250905061073b565b60606000610a4d83610b55565b90508067ffffffffffffffff811115610a6857610a686116ef565b604051908082528060200260200182016040528015610a91578160200160208202803683370190505b50915060005b818110156107f657610aa98482610b60565b60001c838281518110610abe57610abe6115c7565b602090810291909101015280610ad381611705565b915050610a97565b6060610aec8263ffffffff16610b6c565b604051602001610afc9190611935565b6040516020818303038152906040529050919050565b610b266001600160a01b0384168383610bff565b505050565b6000610b378383610cb3565b9392505050565b61058d838383610cd0565b6000610b378383610ced565b600061061982610d05565b6000610b378383610d0f565b60606000610b7983610d39565b600101905060008167ffffffffffffffff811115610b9957610b996116ef565b6040519080825280601f01601f191660200182016040528015610bc3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bcd57509392505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601610c9f57600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610c72576040519150601f19603f3d011682016040523d82523d6000602084013e610c77565b606091505b50915091506106ac8282604051806060016040528060358152602001611a7f60359139610e11565b610b266001600160a01b0384168383610e2a565b60008181526002830160205260408120819055610b378383610e80565b6000828152600284016020526040812082905561041d8484610e8c565b60008181526001830160205260408120541515610b37565b6000610619825490565b6000826000018281548110610d2657610d266115c7565b9060005260206000200154905092915050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d785772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610da4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610dc257662386f26fc10000830492506010015b6305f5e1008310610dda576305f5e100830492506008015b6127108310610dee57612710830492506004015b60648310610e00576064830492506002015b600a83106106195760010192915050565b60608315610e20575081610b37565b610b378383610e98565b610b268363a9059cbb60e01b8484604051602401610e49929190611965565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610ec2565b6000610b378383610f54565b6000610b378383611047565b815115610ea85781518083602001fd5b8060405162461bcd60e51b81526004016103d29190611774565b6000610f17826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110969092919063ffffffff16565b9050805160001480610f38575080806020019051810190610f389190611993565b610b265760405162461bcd60e51b81526004016103d2906119f9565b6000818152600183016020526040812054801561103d576000610f78600183611a09565b8554909150600090610f8c90600190611a09565b9050818114610ff1576000866000018281548110610fac57610fac6115c7565b9060005260206000200154905080876000018481548110610fcf57610fcf6115c7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061100257611002611a1c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610619565b6000915050610619565b600081815260018301602052604081205461108e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610619565b506000610619565b606061041d848460008585600080866001600160a01b031685876040516110bd9190611a32565b60006040518083038185875af1925050503d80600081146110fa576040519150601f19603f3d011682016040523d82523d6000602084013e6110ff565b606091505b50915091506111108783838761111b565b979650505050505050565b6060831561115a578251600003611153576001600160a01b0385163b6111535760405162461bcd60e51b81526004016103d290611a6e565b508161041d565b61041d8383610e98565b60006001600160a01b038216610619565b61117e81611164565b81146106c557600080fd5b803561061981611175565b6000602082840312156111a9576111a9600080fd5b600061041d8484611189565b63ffffffff811661117e565b8035610619816111b5565b6000602082840312156111e1576111e1600080fd5b600061041d84846111c1565b805b82525050565b6020810161061982846111ed565b63ffffffff81166111ef565b6112198282611203565b5060200190565b60200190565b6000611230825190565b808452602093840193830160005b82811015611263578151611252878261120f565b96505060208201915060010161123e565b5093949350505050565b60208082528101610b378184611226565b8061117e565b80356106198161127e565b60008083601f8401126112a4576112a4600080fd5b50813567ffffffffffffffff8111156112bf576112bf600080fd5b60208301915083600182028301111561073b5761073b600080fd5b600080600080606085870312156112f3576112f3600080fd5b60006112ff87876111c1565b945050602061131087828801611284565b935050604085013567ffffffffffffffff81111561133057611330600080fd5b61133c8782880161128f565b95989497509550505050565b60008083601f84011261135d5761135d600080fd5b50813567ffffffffffffffff81111561137857611378600080fd5b60208301915083602082028301111561073b5761073b600080fd5b600080602083850312156113a9576113a9600080fd5b823567ffffffffffffffff8111156113c3576113c3600080fd5b6113cf85828601611348565b92509250509250929050565b600061061982611164565b6000610619826113db565b6111ef816113e6565b6020810161061982846113f1565b602081016106198284611203565b6111ef81611164565b602081016106198284611416565b6000806040838503121561144357611443600080fd5b600061144f85856111c1565b925050602061146085828601611284565b9150509250929050565b6000806000806040858703121561148357611483600080fd5b843567ffffffffffffffff81111561149d5761149d600080fd5b6114a987828801611348565b9450945050602085013567ffffffffffffffff8111156114cb576114cb600080fd5b61133c87828801611348565b60278152602081017f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742081526673657474696e6760c81b602082015290505b60400190565b60208082528101610619816114d7565b60218152602081017f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f8152600f60fb1b60208201529050611515565b602080825281016106198161152b565b60258152602081017f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207381526432b73232b960d91b60208201529050611515565b6020808252810161061981611577565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610619576106196115dd565b80516106198161127e565b60006020828403121561162657611626600080fd5b600061041d8484611606565b600781526020810166042d8cadccee8d60cb1b81529050611220565b6020808252810161061981611632565b60268152602081017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529050611515565b602080825281016106198161165e565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65729101908152611220565b60208082528101610619816116af565b634e487b7160e01b600052604160045260246000fd5b600060018201611717576117176115dd565b5060010190565b60005b83811015611739578181015183820152602001611721565b50506000910152565b600061174c825190565b80845260208401935061176381856020860161171e565b601f01601f19169290920192915050565b60208082528101610b378184611742565b601f19601f830116810181811067ffffffffffffffff821117156117ab576117ab6116ef565b6040525050565b60006117bd60405190565b90506117c98282611785565b919050565b6000606082840312156117e3576117e3600080fd5b6117ed60606117b2565b905060006117fb8484611189565b90820152602061180d84848301611189565b90820152604061181f84848301611284565b9082015292915050565b60006060828403121561183e5761183e600080fd5b600061041d84846117ce565b60258152602081017f466f726569676e54726561737572794d6f64756c653a20616d6f756e74206973815264207a65726f60d81b60208201529050611515565b602080825281016106198161184a565b8051610619816111b5565b6000602082840312156118ba576118ba600080fd5b600061041d848461189a565b80516118d28382611416565b5060208101516118e56020840182611416565b506040810151610b2660408401826111ed565b6080810161190682856111ed565b610b3760208301846118c6565b600061191d825190565b61192b81856020860161171e565b9290920192915050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a20008152601f016106198183611913565b604081016119738285611416565b610b3760208301846111ed565b80151561117e565b805161061981611980565b6000602082840312156119a8576119a8600080fd5b600061041d8484611988565b602a8152602081017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529050611515565b60208082528101610619816119b4565b81810381811115610619576106196115dd565b634e487b7160e01b600052603160045260246000fd5b6106198183611913565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529050611220565b6020808252810161061981611a3c56fe5b5147444b2d3031393030305d2d5472616e7366657272696e67206f66206e61746976652063757272656e6379206661696c65642ea2646970667358221220ad3e3d56ae369504eb82646263f4402d2dafb277dd7309c53c2b7efdc681973e64736f6c63430008140033", "deployedBytecode": "0x60806040526004361061010d5760003560e01c80638d3638f411610095578063d5438eae11610064578063d5438eae146102e2578063de523cf314610316578063e9198bf914610336578063efae508a14610356578063f2fde38b1461037657600080fd5b80638d3638f41461023b5780638da5cb5b1461027c578063b49c53a7146102a2578063b588d225146102c257600080fd5b806356d5d475116100dc57806356d5d475146101b3578063715018a6146101c657806371a15b38146101db5780637f5a7c7b146101fb57806388a9d5541461022857600080fd5b80630e72cc06146101195780632ead72f61461013b5780633dfd387314610171578063440df4f41461019157600080fd5b3661011457005b600080fd5b34801561012557600080fd5b50610139610134366004611194565b610396565b005b34801561014757600080fd5b5061015b6101563660046111cc565b610406565b60405161016891906111f5565b60405180910390f35b34801561017d57600080fd5b5061013961018c366004611194565b610425565b34801561019d57600080fd5b506101a661048c565b604051610168919061126d565b6101396101c13660046112da565b61049d565b3480156101d257600080fd5b50610139610524565b3480156101e757600080fd5b506101396101f6366004611393565b610538565b34801561020757600080fd5b5060655461021b906001600160a01b031681565b60405161016891906113fa565b34801561023457600080fd5b504761015b565b34801561024757600080fd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101689190611408565b34801561028857600080fd5b506033546001600160a01b0316604051610168919061141f565b3480156102ae57600080fd5b506101396102bd36600461142d565b610593565b3480156102ce57600080fd5b5061015b6102dd366004611194565b6105a9565b3480156102ee57600080fd5b5061021b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561032257600080fd5b5060665461021b906001600160a01b031681565b34801561034257600080fd5b5061013961035136600461146a565b61061f565b34801561036257600080fd5b506101396103713660046111cc565b6106b4565b34801561038257600080fd5b50610139610391366004611194565b6106c8565b806001600160a01b0381163b1515806103b657506001600160a01b038116155b6103db5760405162461bcd60e51b81526004016103d29061151b565b60405180910390fd5b6103e36106ff565b50606680546001600160a01b0319166001600160a01b0392909216919091179055565b60008061041d609763ffffffff8086169061072916565b949350505050565b806001600160a01b0381163b15158061044557506001600160a01b038116155b6104615760405162461bcd60e51b81526004016103d29061151b565b6104696106ff565b50606580546001600160a01b0319166001600160a01b0392909216919091179055565b60606104986097610742565b905090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104e55760405162461bcd60e51b81526004016103d290611567565b60006104f0856107fd565b90508381146105115760405162461bcd60e51b81526004016103d2906115b7565b61051d85858585610849565b5050505050565b61052c6106ff565b6105366000610963565b565b6105406106ff565b8060005b8181101561058d5761057b848483818110610561576105616115c7565b905060200201602081019061057691906111cc565b6109b5565b6105866001826115f3565b9050610544565b50505050565b61059b6106ff565b6105a582826109f0565b5050565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906105d890309060040161141f565b602060405180830381865afa1580156105f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106199190611611565b92915050565b6106276106ff565b8281146106465760405162461bcd60e51b81526004016103d29061164e565b8260005b818110156106ac5761069a868683818110610667576106676115c7565b905060200201602081019061067c91906111cc565b85858481811061068e5761068e6115c7565b905060200201356109f0565b6106a56001826115f3565b905061064a565b505050505050565b6106bc6106ff565b6106c5816109b5565b50565b6106d06106ff565b6001600160a01b0381166106f65760405162461bcd60e51b81526004016103d29061169f565b6106c581610963565b6033546001600160a01b031633146105365760405162461bcd60e51b81526004016103d2906116df565b6000806107368484610a06565b915091505b9250929050565b6060600061074f83610a40565b9050805167ffffffffffffffff81111561076b5761076b6116ef565b604051908082528060200260200182016040528015610794578160200160208202803683370190505b50915060005b81518110156107f6578181815181106107b5576107b56115c7565b60200260200101518382815181106107cf576107cf6115c7565b63ffffffff90921660209283029190910190910152806107ee81611705565b91505061079a565b5050919050565b60008080610815609763ffffffff8087169061072916565b915091508161082385610adb565b906108415760405162461bcd60e51b81526004016103d29190611774565b509392505050565b600061085782840184611829565b9050806040015160000361087d5760405162461bcd60e51b81526004016103d29061188a565b610894816000015182602001518360400151610b12565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638d3638f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091691906118a5565b63ffffffff168563ffffffff167f065fced93a370999ccf83275572f59ea5612745b53dbdef081e7cf87699691ad86846040516109549291906118f8565b60405180910390a35050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6109c9609763ffffffff80841690610b2b16565b6109d282610adb565b906105a55760405162461bcd60e51b81526004016103d29190611774565b6105a5609763ffffffff808516908490610b3e16565b6000818152600283016020526040812054819080610a3557610a288585610b49565b92506000915061073b9050565b60019250905061073b565b60606000610a4d83610b55565b90508067ffffffffffffffff811115610a6857610a686116ef565b604051908082528060200260200182016040528015610a91578160200160208202803683370190505b50915060005b818110156107f657610aa98482610b60565b60001c838281518110610abe57610abe6115c7565b602090810291909101015280610ad381611705565b915050610a97565b6060610aec8263ffffffff16610b6c565b604051602001610afc9190611935565b6040516020818303038152906040529050919050565b610b266001600160a01b0384168383610bff565b505050565b6000610b378383610cb3565b9392505050565b61058d838383610cd0565b6000610b378383610ced565b600061061982610d05565b6000610b378383610d0f565b60606000610b7983610d39565b600101905060008167ffffffffffffffff811115610b9957610b996116ef565b6040519080825280601f01601f191660200182016040528015610bc3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bcd57509392505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601610c9f57600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610c72576040519150601f19603f3d011682016040523d82523d6000602084013e610c77565b606091505b50915091506106ac8282604051806060016040528060358152602001611a7f60359139610e11565b610b266001600160a01b0384168383610e2a565b60008181526002830160205260408120819055610b378383610e80565b6000828152600284016020526040812082905561041d8484610e8c565b60008181526001830160205260408120541515610b37565b6000610619825490565b6000826000018281548110610d2657610d266115c7565b9060005260206000200154905092915050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d785772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610da4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610dc257662386f26fc10000830492506010015b6305f5e1008310610dda576305f5e100830492506008015b6127108310610dee57612710830492506004015b60648310610e00576064830492506002015b600a83106106195760010192915050565b60608315610e20575081610b37565b610b378383610e98565b610b268363a9059cbb60e01b8484604051602401610e49929190611965565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610ec2565b6000610b378383610f54565b6000610b378383611047565b815115610ea85781518083602001fd5b8060405162461bcd60e51b81526004016103d29190611774565b6000610f17826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110969092919063ffffffff16565b9050805160001480610f38575080806020019051810190610f389190611993565b610b265760405162461bcd60e51b81526004016103d2906119f9565b6000818152600183016020526040812054801561103d576000610f78600183611a09565b8554909150600090610f8c90600190611a09565b9050818114610ff1576000866000018281548110610fac57610fac6115c7565b9060005260206000200154905080876000018481548110610fcf57610fcf6115c7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061100257611002611a1c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610619565b6000915050610619565b600081815260018301602052604081205461108e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610619565b506000610619565b606061041d848460008585600080866001600160a01b031685876040516110bd9190611a32565b60006040518083038185875af1925050503d80600081146110fa576040519150601f19603f3d011682016040523d82523d6000602084013e6110ff565b606091505b50915091506111108783838761111b565b979650505050505050565b6060831561115a578251600003611153576001600160a01b0385163b6111535760405162461bcd60e51b81526004016103d290611a6e565b508161041d565b61041d8383610e98565b60006001600160a01b038216610619565b61117e81611164565b81146106c557600080fd5b803561061981611175565b6000602082840312156111a9576111a9600080fd5b600061041d8484611189565b63ffffffff811661117e565b8035610619816111b5565b6000602082840312156111e1576111e1600080fd5b600061041d84846111c1565b805b82525050565b6020810161061982846111ed565b63ffffffff81166111ef565b6112198282611203565b5060200190565b60200190565b6000611230825190565b808452602093840193830160005b82811015611263578151611252878261120f565b96505060208201915060010161123e565b5093949350505050565b60208082528101610b378184611226565b8061117e565b80356106198161127e565b60008083601f8401126112a4576112a4600080fd5b50813567ffffffffffffffff8111156112bf576112bf600080fd5b60208301915083600182028301111561073b5761073b600080fd5b600080600080606085870312156112f3576112f3600080fd5b60006112ff87876111c1565b945050602061131087828801611284565b935050604085013567ffffffffffffffff81111561133057611330600080fd5b61133c8782880161128f565b95989497509550505050565b60008083601f84011261135d5761135d600080fd5b50813567ffffffffffffffff81111561137857611378600080fd5b60208301915083602082028301111561073b5761073b600080fd5b600080602083850312156113a9576113a9600080fd5b823567ffffffffffffffff8111156113c3576113c3600080fd5b6113cf85828601611348565b92509250509250929050565b600061061982611164565b6000610619826113db565b6111ef816113e6565b6020810161061982846113f1565b602081016106198284611203565b6111ef81611164565b602081016106198284611416565b6000806040838503121561144357611443600080fd5b600061144f85856111c1565b925050602061146085828601611284565b9150509250929050565b6000806000806040858703121561148357611483600080fd5b843567ffffffffffffffff81111561149d5761149d600080fd5b6114a987828801611348565b9450945050602085013567ffffffffffffffff8111156114cb576114cb600080fd5b61133c87828801611348565b60278152602081017f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742081526673657474696e6760c81b602082015290505b60400190565b60208082528101610619816114d7565b60218152602081017f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f8152600f60fb1b60208201529050611515565b602080825281016106198161152b565b60258152602081017f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207381526432b73232b960d91b60208201529050611515565b6020808252810161061981611577565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610619576106196115dd565b80516106198161127e565b60006020828403121561162657611626600080fd5b600061041d8484611606565b600781526020810166042d8cadccee8d60cb1b81529050611220565b6020808252810161061981611632565b60268152602081017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529050611515565b602080825281016106198161165e565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65729101908152611220565b60208082528101610619816116af565b634e487b7160e01b600052604160045260246000fd5b600060018201611717576117176115dd565b5060010190565b60005b83811015611739578181015183820152602001611721565b50506000910152565b600061174c825190565b80845260208401935061176381856020860161171e565b601f01601f19169290920192915050565b60208082528101610b378184611742565b601f19601f830116810181811067ffffffffffffffff821117156117ab576117ab6116ef565b6040525050565b60006117bd60405190565b90506117c98282611785565b919050565b6000606082840312156117e3576117e3600080fd5b6117ed60606117b2565b905060006117fb8484611189565b90820152602061180d84848301611189565b90820152604061181f84848301611284565b9082015292915050565b60006060828403121561183e5761183e600080fd5b600061041d84846117ce565b60258152602081017f466f726569676e54726561737572794d6f64756c653a20616d6f756e74206973815264207a65726f60d81b60208201529050611515565b602080825281016106198161184a565b8051610619816111b5565b6000602082840312156118ba576118ba600080fd5b600061041d848461189a565b80516118d28382611416565b5060208101516118e56020840182611416565b506040810151610b2660408401826111ed565b6080810161190682856111ed565b610b3760208301846118c6565b600061191d825190565b61192b81856020860161171e565b9290920192915050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a20008152601f016106198183611913565b604081016119738285611416565b610b3760208301846111ed565b80151561117e565b805161061981611980565b6000602082840312156119a8576119a8600080fd5b600061041d8484611988565b602a8152602081017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529050611515565b60208082528101610619816119b4565b81810381811115610619576106196115dd565b634e487b7160e01b600052603160045260246000fd5b6106198183611913565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529050611220565b6020808252810161061981611a3c56fe5b5147444b2d3031393030305d2d5472616e7366657272696e67206f66206e61746976652063757272656e6379206661696c65642ea2646970667358221220ad3e3d56ae369504eb82646263f4402d2dafb277dd7309c53c2b7efdc681973e64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }