UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

390 lines (389 loc) 48.4 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ProxyUpgraderModule", "sourceName": "contracts/presets/ProxyUpgraderModule.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "PROXY_UPGRADER_RESOURCE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "resources_", "type": "string" }, { "internalType": "string", "name": "relatedExpertPanelName_", "type": "string" } ], "name": "__ProxyUpgraderModule_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "registry_", "type": "address" }, { "internalType": "string", "name": "resources_", "type": "string" }, { "internalType": "string", "name": "relatedExpertPanelName_", "type": "string" } ], "name": "__ProxyUpgraderModule_initAndSetDeps", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "member_", "type": "address" }, { "internalType": "string", "name": "permission_", "type": "string" } ], "name": "checkPermission", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "what_", "type": "address" } ], "name": "getImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getInjector", "outputs": [ { "internalType": "address", "name": "injector_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getResource", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getResourceRecords", "outputs": [ { "components": [ { "internalType": "string", "name": "existingRole", "type": "string" }, { "internalType": "string", "name": "resource", "type": "string" }, { "internalType": "string[]", "name": "permissions", "type": "string[]" } ], "internalType": "struct IDAOIntegration.ResourceRecords[]", "name": "records_", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "permissionManager", "outputs": [ { "internalType": "contract IPermissionManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "registry_", "type": "address" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "setDependencies", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "injector_", "type": "address" } ], "name": "setInjector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "what_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "upgrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" } ], "bytecode": "0x60a0604052306080523480156200001557600080fd5b506000805462010000600160b01b03191690556200003262000038565b62000127565b600054610100900460ff16156200006c5760405162461bcd60e51b81526004016200006390620000c5565b60405180910390fd5b60005460ff90811614620000c3576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891620000ba9162000117565b60405180910390a15b565b602080825281016200011181602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff821681526020810162000111565b6080516126816200015f600039600081816104bf015281816104ff01528181610587015281816105c7015261071601526126816000f3fe6080604052600436106101095760003560e01c806381ea92b811610095578063bb65dc8311610064578063bb65dc83146102cc578063cc7a2049146102ee578063d8ad4e1c1461031b578063e2ad90fc1461033b578063f13bdd4d1461035057600080fd5b806381ea92b81461023f5780638cb941cc1461025f578063a745e3df1461027f578063ac9650d81461029f57600080fd5b80634f1ef286116100dc5780634f1ef286146101b557806351f51efc146101c857806352d1902d146101e85780635c60da1b1461020a578063691304511461021f57600080fd5b806301ffc9a71461010e57806315ac72ca146101445780633659cfe6146101715780633e3b5b1914610193575b600080fd5b34801561011a57600080fd5b5061012e6101293660046116ea565b610372565b60405161013b9190611715565b60405180910390f35b34801561015057600080fd5b5061016461015f366004611748565b6103df565b60405161013b9190611772565b34801561017d57600080fd5b5061019161018c366004611748565b6104b5565b005b34801561019f57600080fd5b506000805160206125e583398151915254610164565b6101916101c3366004611879565b61057d565b3480156101d457600080fd5b506101916101e33660046118d0565b610636565b3480156101f457600080fd5b506101fd610709565b60405161013b9190611911565b34801561021657600080fd5b50610164610766565b34801561022b57600080fd5b5061019161023a366004611879565b610775565b34801561024b57600080fd5b5061019161025a36600461191f565b61081a565b34801561026b57600080fd5b5061019161027a366004611748565b61091e565b34801561028b57600080fd5b5061019161029a3660046119f4565b61093c565b3480156102ab57600080fd5b506102bf6102ba366004611aab565b610a15565b60405161013b9190611bbe565b3480156102d857600080fd5b506102e1610b07565b60405161013b9190611bcf565b3480156102fa57600080fd5b5060025461030e906001600160a01b031681565b60405161013b9190611c22565b34801561032757600080fd5b5061012e610336366004611879565b610b99565b34801561034757600080fd5b506102e1610c1d565b34801561035c57600080fd5b50610365610cab565b60405161013b9190611d41565b60006001600160e01b031982166363c8929f60e01b14806103a357506001600160e01b0319821663f13bdd4d60e01b145b806103be57506001600160e01b031982166336e447a160e21b145b806103d957506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080826001600160a01b03163b116104135760405162461bcd60e51b815260040161040a90611d84565b60405180910390fd5b600080836001600160a01b031660405161043790635c60da1b60e01b815260040190565b600060405180830381855afa9150503d8060008114610472576040519150601f19603f3d011682016040523d82523d6000602084013e610477565b606091505b5091509150816104995760405162461bcd60e51b815260040161040a90611dc6565b808060200190518101906104ad9190611de1565b949350505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104fd5760405162461bcd60e51b815260040161040a90611e4b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661052f610f76565b6001600160a01b0316146105555760405162461bcd60e51b815260040161040a90611ea2565b61055e81610f92565b6040805160008082526020820190925261057a9183919061108b565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105c55760405162461bcd60e51b815260040161040a90611e4b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105f7610f76565b6001600160a01b03161461061d5760405162461bcd60e51b815260040161040a90611ea2565b61062682610f92565b6106328282600161108b565b5050565b600054610100900460ff16158080156106565750600054600160ff909116105b806106705750303b158015610670575060005460ff166001145b61068c5760405162461bcd60e51b815260040161040a90611efb565b6000805460ff1916600117905580156106af576000805461ff0019166101001790555b6106b9838361116d565b8015610704576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906106fb90600190611f1f565b60405180910390a15b505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107535760405162461bcd60e51b815260040161040a90611f85565b5060008051602061260583398151915290565b6000610770610f76565b905090565b61077d611319565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e49190611de1565b600280546001600160a01b0319166001600160a01b039290921691909117905550336000805160206125e5833981519152555050565b600054610100900460ff161580801561083a5750600054600160ff909116105b806108545750303b158015610854575060005460ff166001145b6108705760405162461bcd60e51b815260040161040a90611efb565b6000805460ff191660011790558015610893576000805461ff0019166101001790555b6040805160008152602081019091526108ad908590610775565b6108c3846000805160206125e583398151915255565b6108cd838361116d565b8015610918576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061090f90600190611f1f565b60405180910390a15b50505050565b610926611319565b61057a816000805160206125e583398151915255565b61094461136d565b80156109b15760405163278f794360e11b81526001600160a01b03851690634f1ef2869061097a90869086908690600401611fb5565b600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b50505050610918565b604051631b2ce7f360e11b81526001600160a01b03851690633659cfe6906109dd908690600401611772565b600060405180830381600087803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b5050505050505050565b604080516000815260208101909152606090826001600160401b03811115610a3f57610a3f611780565b604051908082528060200260200182016040528015610a7257816020015b6060815260200190600190039081610a5d5790505b50915060005b83811015610aff57610acf30868684818110610a9657610a96611fec565b9050602002810190610aa89190612002565b85604051602001610abb93929190612088565b60405160208183030381529060405261139f565b838281518110610ae157610ae1611fec565b60200260200101819052508080610af79061209f565b915050610a78565b505092915050565b606060018054610b16906120ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610b42906120ce565b8015610b8f5780601f10610b6457610100808354040283529160200191610b8f565b820191906000526020600020905b815481529060010190602001808311610b7257829003601f168201915b5050505050905090565b6002546000906001600160a01b0316637951c6da84610bb6610b07565b856040518463ffffffff1660e01b8152600401610bd5939291906120fa565b602060405180830381865afa158015610bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c169190612141565b9392505050565b60018054610c2a906120ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610c56906120ce565b8015610ca35780601f10610c7857610100808354040283529160200191610ca3565b820191906000526020600020905b815481529060010190602001808311610c8657829003601f168201915b505050505081565b6040805160028082526060828101909352816020015b610ce560405180606001604052806060815260200160608152602001606081525090565b815260200190600190039081610cc15790505090506000610d5e60405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b8152508152506113c4565b90506040518060600160405280610dfe60038054610d7b906120ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610da7906120ce565b8015610df45780601f10610dc957610100808354040283529160200191610df4565b820191906000526020600020905b815481529060010190602001808311610dd757829003601f168201915b505050505061143d565b600081518110610e1057610e10611fec565b60200260200101518152602001610e25610b07565b81526020018281525082600081518110610e4157610e41611fec565b60200260200101819052506000610e8360405180602001604052806040518060400160405280600681526020016511561411549560d21b815250815250611471565b90506040518060600160405280610f2360038054610ea0906120ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610ecc906120ce565b8015610f195780601f10610eee57610100808354040283529160200191610f19565b820191906000526020600020905b815481529060010190602001808311610efc57829003601f168201915b50505050506114b5565b600081518110610f3557610f35611fec565b60200260200101518152602001610f4a610b07565b81526020018281525083600181518110610f6657610f66611fec565b6020026020010181905250505090565b600080516020612605833981519152546001600160a01b031690565b60025460408051631082599b60e31b815290516000926001600160a01b031691638412ccd89160048083019260209291908290030181865afa158015610fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110009190612181565b6001600160a01b031663d10611fc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110619190611de1565b9050336001600160a01b038216146106325760405162461bcd60e51b815260040161040a906121e5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110be57610704836114d6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611118575060408051601f3d908101601f1916820190925261111591810190612206565b60015b6111345760405162461bcd60e51b815260040161040a90612270565b60008051602061260583398151915281146111615760405162461bcd60e51b815260040161040a906122c4565b5061070483838361152c565b60025460408051631082599b60e31b815290516000926001600160a01b031691638412ccd89160048083019260209291908290030181865afa1580156111b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111db9190612181565b60408051808201909152601081526f2220a7902a37b5b2b7102437b63232b960811b6020918201528351908401209091507ffad7138bd890959b87fe6c694889d093996bfc7d3f9d86f2c1abaa0e11ea0f72036112d057604080518082018252601081526f2220a7902a37b5b2b7102437b63232b960811b6020820152905163db590a6160e01b81526112cb916001600160a01b0384169163db590a619161128591600401611bcf565b602060405180830381865afa1580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c69190611de1565b611551565b611300565b604051634c12ce5760e01b8152611300906001600160a01b03831690634c12ce5790611285908690600401611bcf565b600361130c838261236c565b506001610918848261236c565b60006113316000805160206125e58339815191525490565b90506001600160a01b038116158061135157506001600160a01b03811633145b61057a5760405162461bcd60e51b815260040161040a9061245d565b6000546201000090046001600160a01b0316331461139d5760405162461bcd60e51b815260040161040a9061249f565b565b6060610c168383604051806060016040528060278152602001612625602791396115a2565b6040805160028082526060828101909352816020015b60608152602001906001900390816113da5750508251815191925090829060009061140757611407611fec565b602090810291909101015281600160200201518160018151811061142d5761142d611fec565b6020026020010181905250919050565b60606103d960405180602001604052808460405160200161145e91906124af565b6040516020818303038152906040528152505b604080516001808252818301909252606091816020015b60608152602001906001900390816114885750508251815191925090829060009061142d5761142d611fec565b60606103d960405180602001604052808460405160200161145e91906124d1565b6001600160a01b0381163b6114fd5760405162461bcd60e51b815260040161040a90612532565b60008051602061260583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6115358361161a565b6000825111806115425750805b1561070457610918838361139f565b600054610100900460ff166115785760405162461bcd60e51b815260040161040a90612588565b600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060600080856001600160a01b0316856040516115bf9190612598565b600060405180830381855af49150503d80600081146115fa576040519150601f19603f3d011682016040523d82523d6000602084013e6115ff565b606091505b50915091506116108683838761165a565b9695505050505050565b611623816114d6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60608315611699578251600003611692576001600160a01b0385163b6116925760405162461bcd60e51b815260040161040a906125d4565b50816104ad565b6104ad83838151156116ae5781518083602001fd5b8060405162461bcd60e51b815260040161040a9190611bcf565b6001600160e01b031981165b811461057a57600080fd5b80356103d9816116c8565b6000602082840312156116ff576116ff600080fd5b60006104ad84846116df565b8015155b82525050565b602081016103d9828461170b565b60006001600160a01b0382166103d9565b6116d481611723565b80356103d981611734565b60006020828403121561175d5761175d600080fd5b60006104ad848461173d565b61170f81611723565b602081016103d98284611769565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156117bb576117bb611780565b6040525050565b60006117cd60405190565b90506117d98282611796565b919050565b60006001600160401b038211156117f7576117f7611780565b601f19601f83011660200192915050565b82818337506000910152565b6000611827611822846117de565b6117c2565b90508281526020810184848401111561184257611842600080fd5b61184d848285611808565b509392505050565b600082601f83011261186957611869600080fd5b81356104ad848260208601611814565b6000806040838503121561188f5761188f600080fd5b600061189b858561173d565b92505060208301356001600160401b038111156118ba576118ba600080fd5b6118c685828601611855565b9150509250929050565b600080604083850312156118e6576118e6600080fd5b82356001600160401b038111156118ff576118ff600080fd5b61189b85828601611855565b8061170f565b602081016103d9828461190b565b60008060006060848603121561193757611937600080fd5b6000611943868661173d565b93505060208401356001600160401b0381111561196257611962600080fd5b61196e86828701611855565b92505060408401356001600160401b0381111561198d5761198d600080fd5b61199986828701611855565b9150509250925092565b60008083601f8401126119b8576119b8600080fd5b5081356001600160401b038111156119d2576119d2600080fd5b6020830191508360018202830111156119ed576119ed600080fd5b9250929050565b60008060008060608587031215611a0d57611a0d600080fd5b6000611a19878761173d565b9450506020611a2a8782880161173d565b93505060408501356001600160401b03811115611a4957611a49600080fd5b611a55878288016119a3565b95989497509550505050565b60008083601f840112611a7657611a76600080fd5b5081356001600160401b03811115611a9057611a90600080fd5b6020830191508360208202830111156119ed576119ed600080fd5b60008060208385031215611ac157611ac1600080fd5b82356001600160401b03811115611ada57611ada600080fd5b611ae685828601611a61565b92509250509250929050565b60005b83811015611b0d578181015183820152602001611af5565b50506000910152565b6000611b20825190565b808452602084019350611b37818560208601611af2565b601f01601f19169290920192915050565b6000610c168383611b16565b60200190565b6000611b64825190565b80845260208401935083602082028501611b7e8560200190565b60005b84811015611bb25783830388528151611b9a8482611b48565b93505060208201602098909801979150600101611b81565b50909695505050505050565b60208082528101610c168184611b5a565b60208082528101610c168184611b16565b60006103d96001600160a01b038316611bf7565b90565b6001600160a01b031690565b60006103d982611be0565b60006103d982611c03565b61170f81611c0e565b602081016103d98284611c19565b6000611c3a825190565b80845260208401935083602082028501611c548560200190565b60005b84811015611bb25783830388528151611c708482611b48565b93505060208201602098909801979150600101611c57565b8051606080845260009190840190611ca08282611b16565b91505060208301518482036020860152611cba8282611b16565b91505060408301518482036040860152611cd48282611c30565b95945050505050565b6000610c168383611c88565b6000611cf3825190565b80845260208401935083602082028501611d0d8560200190565b60005b84811015611bb25783830388528151611d298482611cdd565b93505060208201602098909801979150600101611d10565b60208082528101610c168184611ce9565b601d8152602081017f50726f787955706772616465723a206e6f74206120636f6e747261637400000081529050611b54565b602080825281016103d981611d52565b601a8152602081017f50726f787955706772616465723a206e6f7420612070726f787900000000000081529050611b54565b602080825281016103d981611d94565b80516103d981611734565b600060208284031215611df657611df6600080fd5b60006104ad8484611dd6565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b19195b1959d85d1958d85b1b60a21b602082015290505b60400190565b602080825281016103d981611e02565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b6163746976652070726f787960a01b60208201529050611e45565b602080825281016103d981611e5b565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529050611e45565b602080825281016103d981611eb2565b600060ff82166103d9565b61170f81611f0b565b602081016103d98284611f16565b60388152602081017f555550535570677261646561626c653a206d757374206e6f742062652063616c81527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060208201529050611e45565b602080825281016103d981611f2d565b818352602083019250611fa9828483611808565b50601f01601f19160190565b60408101611fc38286611769565b8181036020830152611cd4818486611f95565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e193685900301811261201d5761201d600080fd5b830191505080356001600160401b0381111561203b5761203b600080fd5b6020820191506001810236038213156119ed576119ed600080fd5b612061828483611808565b500190565b6000612070825190565b61207e818560208601611af2565b9290920192915050565b612093818486612056565b90506104ad8183612066565b6000600182016120b1576120b1611fd6565b5060010190565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806120e257607f821691505b6020821081036120f4576120f46120b8565b50919050565b606081016121088286611769565b818103602083015261211a8185611b16565b90508181036040830152611cd48184611b16565b8015156116d4565b80516103d98161212e565b60006020828403121561215657612156600080fd5b60006104ad8484612136565b60006103d982611723565b6116d481612162565b80516103d98161216d565b60006020828403121561219657612196600080fd5b60006104ad8484612176565b60288152602081017f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f208152673ab833b930b2329760c11b60208201529050611e45565b602080825281016103d9816121a2565b806116d4565b80516103d9816121f5565b60006020828403121561221b5761221b600080fd5b60006104ad84846121fb565b602e8152602081017f45524331393637557067726164653a206e657720696d706c656d656e7461746981526d6f6e206973206e6f74205555505360901b60208201529050611e45565b602080825281016103d981612227565b60298152602081017f45524331393637557067726164653a20756e737570706f727465642070726f788152681a58589b195555525160ba1b60208201529050611e45565b602080825281016103d981612280565b60006103d9611bf48381565b6122e9836122d4565b815460001960089490940293841b1916921b91909117905550565b60006107048184846122e0565b8181101561063257612324600082612304565b600101612311565b601f821115610704576000818152602090206020601f850104810160208510156123535750805b6123656020601f860104830182612311565b5050505050565b81516001600160401b0381111561238557612385611780565b61238f82546120ce565b61239a82828561232c565b506020601f8211600181146123cf57600083156123b75750848201515b600019600885021c1981166002850217855550612365565b600084815260208120601f198516915b828110156123ff57878501518255602094850194600190920191016123df565b508482101561241c5783870151600019601f87166008021c191681555b50505050600202600101905550565b601a8152602081017f446570656e64616e743a206e6f7420616e20696e6a6563746f7200000000000081529050611b54565b602080825281016103d98161242b565b601b8152602081017f50726f787955706772616465723a206e6f7420616e206f776e6572000000000081529050611b54565b602080825281016103d98161246d565b6d2220a7a6b2b6b132b92937b6329d60911b81525b600e016103d98183612066565b6d2220a7a2bc3832b93a2937b6329d60911b81526124c4565b602d8152602081017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529050611e45565b602080825281016103d9816124ea565b602b8152602081017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529050611e45565b602080825281016103d981612542565b6103d98183612066565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529050611b54565b602080825281016103d9816125a256fe3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122010d5722fb295bc0bcb688153c6a6db3763900607924f53d0c76953d78a96afd564736f6c63430008140033", "deployedBytecode": "0x6080604052600436106101095760003560e01c806381ea92b811610095578063bb65dc8311610064578063bb65dc83146102cc578063cc7a2049146102ee578063d8ad4e1c1461031b578063e2ad90fc1461033b578063f13bdd4d1461035057600080fd5b806381ea92b81461023f5780638cb941cc1461025f578063a745e3df1461027f578063ac9650d81461029f57600080fd5b80634f1ef286116100dc5780634f1ef286146101b557806351f51efc146101c857806352d1902d146101e85780635c60da1b1461020a578063691304511461021f57600080fd5b806301ffc9a71461010e57806315ac72ca146101445780633659cfe6146101715780633e3b5b1914610193575b600080fd5b34801561011a57600080fd5b5061012e6101293660046116ea565b610372565b60405161013b9190611715565b60405180910390f35b34801561015057600080fd5b5061016461015f366004611748565b6103df565b60405161013b9190611772565b34801561017d57600080fd5b5061019161018c366004611748565b6104b5565b005b34801561019f57600080fd5b506000805160206125e583398151915254610164565b6101916101c3366004611879565b61057d565b3480156101d457600080fd5b506101916101e33660046118d0565b610636565b3480156101f457600080fd5b506101fd610709565b60405161013b9190611911565b34801561021657600080fd5b50610164610766565b34801561022b57600080fd5b5061019161023a366004611879565b610775565b34801561024b57600080fd5b5061019161025a36600461191f565b61081a565b34801561026b57600080fd5b5061019161027a366004611748565b61091e565b34801561028b57600080fd5b5061019161029a3660046119f4565b61093c565b3480156102ab57600080fd5b506102bf6102ba366004611aab565b610a15565b60405161013b9190611bbe565b3480156102d857600080fd5b506102e1610b07565b60405161013b9190611bcf565b3480156102fa57600080fd5b5060025461030e906001600160a01b031681565b60405161013b9190611c22565b34801561032757600080fd5b5061012e610336366004611879565b610b99565b34801561034757600080fd5b506102e1610c1d565b34801561035c57600080fd5b50610365610cab565b60405161013b9190611d41565b60006001600160e01b031982166363c8929f60e01b14806103a357506001600160e01b0319821663f13bdd4d60e01b145b806103be57506001600160e01b031982166336e447a160e21b145b806103d957506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080826001600160a01b03163b116104135760405162461bcd60e51b815260040161040a90611d84565b60405180910390fd5b600080836001600160a01b031660405161043790635c60da1b60e01b815260040190565b600060405180830381855afa9150503d8060008114610472576040519150601f19603f3d011682016040523d82523d6000602084013e610477565b606091505b5091509150816104995760405162461bcd60e51b815260040161040a90611dc6565b808060200190518101906104ad9190611de1565b949350505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104fd5760405162461bcd60e51b815260040161040a90611e4b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661052f610f76565b6001600160a01b0316146105555760405162461bcd60e51b815260040161040a90611ea2565b61055e81610f92565b6040805160008082526020820190925261057a9183919061108b565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105c55760405162461bcd60e51b815260040161040a90611e4b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105f7610f76565b6001600160a01b03161461061d5760405162461bcd60e51b815260040161040a90611ea2565b61062682610f92565b6106328282600161108b565b5050565b600054610100900460ff16158080156106565750600054600160ff909116105b806106705750303b158015610670575060005460ff166001145b61068c5760405162461bcd60e51b815260040161040a90611efb565b6000805460ff1916600117905580156106af576000805461ff0019166101001790555b6106b9838361116d565b8015610704576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906106fb90600190611f1f565b60405180910390a15b505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107535760405162461bcd60e51b815260040161040a90611f85565b5060008051602061260583398151915290565b6000610770610f76565b905090565b61077d611319565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e49190611de1565b600280546001600160a01b0319166001600160a01b039290921691909117905550336000805160206125e5833981519152555050565b600054610100900460ff161580801561083a5750600054600160ff909116105b806108545750303b158015610854575060005460ff166001145b6108705760405162461bcd60e51b815260040161040a90611efb565b6000805460ff191660011790558015610893576000805461ff0019166101001790555b6040805160008152602081019091526108ad908590610775565b6108c3846000805160206125e583398151915255565b6108cd838361116d565b8015610918576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061090f90600190611f1f565b60405180910390a15b50505050565b610926611319565b61057a816000805160206125e583398151915255565b61094461136d565b80156109b15760405163278f794360e11b81526001600160a01b03851690634f1ef2869061097a90869086908690600401611fb5565b600060405180830381600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b50505050610918565b604051631b2ce7f360e11b81526001600160a01b03851690633659cfe6906109dd908690600401611772565b600060405180830381600087803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b5050505050505050565b604080516000815260208101909152606090826001600160401b03811115610a3f57610a3f611780565b604051908082528060200260200182016040528015610a7257816020015b6060815260200190600190039081610a5d5790505b50915060005b83811015610aff57610acf30868684818110610a9657610a96611fec565b9050602002810190610aa89190612002565b85604051602001610abb93929190612088565b60405160208183030381529060405261139f565b838281518110610ae157610ae1611fec565b60200260200101819052508080610af79061209f565b915050610a78565b505092915050565b606060018054610b16906120ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610b42906120ce565b8015610b8f5780601f10610b6457610100808354040283529160200191610b8f565b820191906000526020600020905b815481529060010190602001808311610b7257829003601f168201915b5050505050905090565b6002546000906001600160a01b0316637951c6da84610bb6610b07565b856040518463ffffffff1660e01b8152600401610bd5939291906120fa565b602060405180830381865afa158015610bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c169190612141565b9392505050565b60018054610c2a906120ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610c56906120ce565b8015610ca35780601f10610c7857610100808354040283529160200191610ca3565b820191906000526020600020905b815481529060010190602001808311610c8657829003601f168201915b505050505081565b6040805160028082526060828101909352816020015b610ce560405180606001604052806060815260200160608152602001606081525090565b815260200190600190039081610cc15790505090506000610d5e60405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b8152508152506113c4565b90506040518060600160405280610dfe60038054610d7b906120ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610da7906120ce565b8015610df45780601f10610dc957610100808354040283529160200191610df4565b820191906000526020600020905b815481529060010190602001808311610dd757829003601f168201915b505050505061143d565b600081518110610e1057610e10611fec565b60200260200101518152602001610e25610b07565b81526020018281525082600081518110610e4157610e41611fec565b60200260200101819052506000610e8360405180602001604052806040518060400160405280600681526020016511561411549560d21b815250815250611471565b90506040518060600160405280610f2360038054610ea0906120ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610ecc906120ce565b8015610f195780601f10610eee57610100808354040283529160200191610f19565b820191906000526020600020905b815481529060010190602001808311610efc57829003601f168201915b50505050506114b5565b600081518110610f3557610f35611fec565b60200260200101518152602001610f4a610b07565b81526020018281525083600181518110610f6657610f66611fec565b6020026020010181905250505090565b600080516020612605833981519152546001600160a01b031690565b60025460408051631082599b60e31b815290516000926001600160a01b031691638412ccd89160048083019260209291908290030181865afa158015610fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110009190612181565b6001600160a01b031663d10611fc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110619190611de1565b9050336001600160a01b038216146106325760405162461bcd60e51b815260040161040a906121e5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110be57610704836114d6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611118575060408051601f3d908101601f1916820190925261111591810190612206565b60015b6111345760405162461bcd60e51b815260040161040a90612270565b60008051602061260583398151915281146111615760405162461bcd60e51b815260040161040a906122c4565b5061070483838361152c565b60025460408051631082599b60e31b815290516000926001600160a01b031691638412ccd89160048083019260209291908290030181865afa1580156111b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111db9190612181565b60408051808201909152601081526f2220a7902a37b5b2b7102437b63232b960811b6020918201528351908401209091507ffad7138bd890959b87fe6c694889d093996bfc7d3f9d86f2c1abaa0e11ea0f72036112d057604080518082018252601081526f2220a7902a37b5b2b7102437b63232b960811b6020820152905163db590a6160e01b81526112cb916001600160a01b0384169163db590a619161128591600401611bcf565b602060405180830381865afa1580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c69190611de1565b611551565b611300565b604051634c12ce5760e01b8152611300906001600160a01b03831690634c12ce5790611285908690600401611bcf565b600361130c838261236c565b506001610918848261236c565b60006113316000805160206125e58339815191525490565b90506001600160a01b038116158061135157506001600160a01b03811633145b61057a5760405162461bcd60e51b815260040161040a9061245d565b6000546201000090046001600160a01b0316331461139d5760405162461bcd60e51b815260040161040a9061249f565b565b6060610c168383604051806060016040528060278152602001612625602791396115a2565b6040805160028082526060828101909352816020015b60608152602001906001900390816113da5750508251815191925090829060009061140757611407611fec565b602090810291909101015281600160200201518160018151811061142d5761142d611fec565b6020026020010181905250919050565b60606103d960405180602001604052808460405160200161145e91906124af565b6040516020818303038152906040528152505b604080516001808252818301909252606091816020015b60608152602001906001900390816114885750508251815191925090829060009061142d5761142d611fec565b60606103d960405180602001604052808460405160200161145e91906124d1565b6001600160a01b0381163b6114fd5760405162461bcd60e51b815260040161040a90612532565b60008051602061260583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6115358361161a565b6000825111806115425750805b1561070457610918838361139f565b600054610100900460ff166115785760405162461bcd60e51b815260040161040a90612588565b600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060600080856001600160a01b0316856040516115bf9190612598565b600060405180830381855af49150503d80600081146115fa576040519150601f19603f3d011682016040523d82523d6000602084013e6115ff565b606091505b50915091506116108683838761165a565b9695505050505050565b611623816114d6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60608315611699578251600003611692576001600160a01b0385163b6116925760405162461bcd60e51b815260040161040a906125d4565b50816104ad565b6104ad83838151156116ae5781518083602001fd5b8060405162461bcd60e51b815260040161040a9190611bcf565b6001600160e01b031981165b811461057a57600080fd5b80356103d9816116c8565b6000602082840312156116ff576116ff600080fd5b60006104ad84846116df565b8015155b82525050565b602081016103d9828461170b565b60006001600160a01b0382166103d9565b6116d481611723565b80356103d981611734565b60006020828403121561175d5761175d600080fd5b60006104ad848461173d565b61170f81611723565b602081016103d98284611769565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156117bb576117bb611780565b6040525050565b60006117cd60405190565b90506117d98282611796565b919050565b60006001600160401b038211156117f7576117f7611780565b601f19601f83011660200192915050565b82818337506000910152565b6000611827611822846117de565b6117c2565b90508281526020810184848401111561184257611842600080fd5b61184d848285611808565b509392505050565b600082601f83011261186957611869600080fd5b81356104ad848260208601611814565b6000806040838503121561188f5761188f600080fd5b600061189b858561173d565b92505060208301356001600160401b038111156118ba576118ba600080fd5b6118c685828601611855565b9150509250929050565b600080604083850312156118e6576118e6600080fd5b82356001600160401b038111156118ff576118ff600080fd5b61189b85828601611855565b8061170f565b602081016103d9828461190b565b60008060006060848603121561193757611937600080fd5b6000611943868661173d565b93505060208401356001600160401b0381111561196257611962600080fd5b61196e86828701611855565b92505060408401356001600160401b0381111561198d5761198d600080fd5b61199986828701611855565b9150509250925092565b60008083601f8401126119b8576119b8600080fd5b5081356001600160401b038111156119d2576119d2600080fd5b6020830191508360018202830111156119ed576119ed600080fd5b9250929050565b60008060008060608587031215611a0d57611a0d600080fd5b6000611a19878761173d565b9450506020611a2a8782880161173d565b93505060408501356001600160401b03811115611a4957611a49600080fd5b611a55878288016119a3565b95989497509550505050565b60008083601f840112611a7657611a76600080fd5b5081356001600160401b03811115611a9057611a90600080fd5b6020830191508360208202830111156119ed576119ed600080fd5b60008060208385031215611ac157611ac1600080fd5b82356001600160401b03811115611ada57611ada600080fd5b611ae685828601611a61565b92509250509250929050565b60005b83811015611b0d578181015183820152602001611af5565b50506000910152565b6000611b20825190565b808452602084019350611b37818560208601611af2565b601f01601f19169290920192915050565b6000610c168383611b16565b60200190565b6000611b64825190565b80845260208401935083602082028501611b7e8560200190565b60005b84811015611bb25783830388528151611b9a8482611b48565b93505060208201602098909801979150600101611b81565b50909695505050505050565b60208082528101610c168184611b5a565b60208082528101610c168184611b16565b60006103d96001600160a01b038316611bf7565b90565b6001600160a01b031690565b60006103d982611be0565b60006103d982611c03565b61170f81611c0e565b602081016103d98284611c19565b6000611c3a825190565b80845260208401935083602082028501611c548560200190565b60005b84811015611bb25783830388528151611c708482611b48565b93505060208201602098909801979150600101611c57565b8051606080845260009190840190611ca08282611b16565b91505060208301518482036020860152611cba8282611b16565b91505060408301518482036040860152611cd48282611c30565b95945050505050565b6000610c168383611c88565b6000611cf3825190565b80845260208401935083602082028501611d0d8560200190565b60005b84811015611bb25783830388528151611d298482611cdd565b93505060208201602098909801979150600101611d10565b60208082528101610c168184611ce9565b601d8152602081017f50726f787955706772616465723a206e6f74206120636f6e747261637400000081529050611b54565b602080825281016103d981611d52565b601a8152602081017f50726f787955706772616465723a206e6f7420612070726f787900000000000081529050611b54565b602080825281016103d981611d94565b80516103d981611734565b600060208284031215611df657611df6600080fd5b60006104ad8484611dd6565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b19195b1959d85d1958d85b1b60a21b602082015290505b60400190565b602080825281016103d981611e02565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b6163746976652070726f787960a01b60208201529050611e45565b602080825281016103d981611e5b565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529050611e45565b602080825281016103d981611eb2565b600060ff82166103d9565b61170f81611f0b565b602081016103d98284611f16565b60388152602081017f555550535570677261646561626c653a206d757374206e6f742062652063616c81527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060208201529050611e45565b602080825281016103d981611f2d565b818352602083019250611fa9828483611808565b50601f01601f19160190565b60408101611fc38286611769565b8181036020830152611cd4818486611f95565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e193685900301811261201d5761201d600080fd5b830191505080356001600160401b0381111561203b5761203b600080fd5b6020820191506001810236038213156119ed576119ed600080fd5b612061828483611808565b500190565b6000612070825190565b61207e818560208601611af2565b9290920192915050565b612093818486612056565b90506104ad8183612066565b6000600182016120b1576120b1611fd6565b5060010190565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806120e257607f821691505b6020821081036120f4576120f46120b8565b50919050565b606081016121088286611769565b818103602083015261211a8185611b16565b90508181036040830152611cd48184611b16565b8015156116d4565b80516103d98161212e565b60006020828403121561215657612156600080fd5b60006104ad8484612136565b60006103d982611723565b6116d481612162565b80516103d98161216d565b60006020828403121561219657612196600080fd5b60006104ad8484612176565b60288152602081017f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f208152673ab833b930b2329760c11b60208201529050611e45565b602080825281016103d9816121a2565b806116d4565b80516103d9816121f5565b60006020828403121561221b5761221b600080fd5b60006104ad84846121fb565b602e8152602081017f45524331393637557067726164653a206e657720696d706c656d656e7461746981526d6f6e206973206e6f74205555505360901b60208201529050611e45565b602080825281016103d981612227565b60298152602081017f45524331393637557067726164653a20756e737570706f727465642070726f788152681a58589b195555525160ba1b60208201529050611e45565b602080825281016103d981612280565b60006103d9611bf48381565b6122e9836122d4565b815460001960089490940293841b1916921b91909117905550565b60006107048184846122e0565b8181101561063257612324600082612304565b600101612311565b601f821115610704576000818152602090206020601f850104810160208510156123535750805b6123656020601f860104830182612311565b5050505050565b81516001600160401b0381111561238557612385611780565b61238f82546120ce565b61239a82828561232c565b506020601f8211600181146123cf57600083156123b75750848201515b600019600885021c1981166002850217855550612365565b600084815260208120601f198516915b828110156123ff57878501518255602094850194600190920191016123df565b508482101561241c5783870151600019601f87166008021c191681555b50505050600202600101905550565b601a8152602081017f446570656e64616e743a206e6f7420616e20696e6a6563746f7200000000000081529050611b54565b602080825281016103d98161242b565b601b8152602081017f50726f787955706772616465723a206e6f7420616e206f776e6572000000000081529050611b54565b602080825281016103d98161246d565b6d2220a7a6b2b6b132b92937b6329d60911b81525b600e016103d98183612066565b6d2220a7a2bc3832b93a2937b6329d60911b81526124c4565b602d8152602081017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529050611e45565b602080825281016103d9816124ea565b602b8152602081017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529050611e45565b602080825281016103d981612542565b6103d98183612066565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529050611b54565b602080825281016103d9816125a256fe3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122010d5722fb295bc0bcb688153c6a6db3763900607924f53d0c76953d78a96afd564736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }