[ { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "message", "type": "string" } ], "name": "CommitMessage", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes4", "name": "functionId", "type": "bytes4" }, { "indexed": true, "internalType": "address", "name": "oldDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newDelegate", "type": "address" }, { "indexed": false, "internalType": "string", "name": "functionSignature", "type": "string" } ], "name": "FunctionUpdate", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_allowAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "funcSignatures", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isTransferAllowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftLock", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "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": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_delegate", "type": "address" }, { "internalType": "string", "name": "_functionSignatures", "type": "string" }, { "internalType": "string", "name": "_commitMessage", "type": "string" } ], "name": "updateContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162002a9a38038062002a9a8339810160408190526200003491620005fc565b6040518060400160405280601381526020017f58414e413a2047656e65736973204769667473000000000000000000000000008152506040518060400160405280600381526020016258474760e81b8152508160049081620000979190620006d3565b506005620000a68282620006d3565b505050620000c3620000bd6200041b60201b60201c565b6200041f565b600380546001600160a01b0319163017905533600090815260106020908152604091829020805460ff1916600117905581516060810190925260398083529062002a3c90830139600f90620001199082620006d3565b506127106011556001600d55604080516060810190915260258082526000919062002a7560208301396003549091506200015e9082906001600160a01b031662000471565b6040805180820190915260128152717365744261736555524928737472696e672960701b602082015262000193818462000471565b5060408051808201909152601581527f6d696e7428616464726573732c75696e743235362900000000000000000000006020820152620001d4818462000471565b506040805180820190915260128152716275726e41646d696e2875696e743235362960701b60208201526200020a818462000471565b50604080518082019091526012815271736574417574686f7228616464726573732960701b602082015262000240818462000471565b5060408051808201909152601581527f7365744d6178537570706c792875696e74323536290000000000000000000000602082015262000281818462000471565b50604080518082019091526011815270746f6b656e5552492875696e743235362960781b6020820152620002b6818462000471565b5060408051808201909152600d81526c746f74616c537570706c79282960981b6020820152620002e7818462000471565b5060408051808201909152601381527f736574526f79616c74792875696e743235362900000000000000000000000000602082015262000328818462000471565b5060408051808201909152600e81526d6765744d6178537570706c79282960901b60208201526200035a818462000471565b50604080518082019091526012815271676574417574686f722875696e743235362960701b602082015262000390818462000471565b5060408051808201909152601681527f676574526f79616c74794665652875696e7432353629000000000000000000006020820152620003d1818462000471565b5060408051808201909152601381527f67657443726561746f722875696e743235362900000000000000000000000000602082015262000412818462000471565b50505062000818565b3390565b600c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b81516020808401919091206001600160e01b031981166000908152918290526040822080546001600160a01b0319166001600160a01b0385161790556001805480820182559252907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601620004e78482620006d3565b50600154604051600290620004fe908690620007c5565b908152602001604051809103902081905550816001600160a01b031660006001600160a01b0316826001600160e01b0319167f3234040ce3bd4564874e44810f198910133a1b24c4e84aac87edbf6b458f535386604051620005619190620007e3565b60405180910390a47faa1c0a0a78cec2470f9652e5d29540752e7a64d70f926933cebf13afaeda45de604051620005ef906020808252603a908201527f4164646564204552433135333820757064617465436f6e74726163742066756e60408201527f6374696f6e20617420636f6e7472616374206372656174696f6e000000000000606082015260800190565b60405180910390a1505050565b6000602082840312156200060f57600080fd5b81516001600160a01b03811681146200062757600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200065957607f821691505b6020821081036200067a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006ce57600081815260208120601f850160051c81016020861015620006a95750805b601f850160051c820191505b81811015620006ca57828155600101620006b5565b5050505b505050565b81516001600160401b03811115620006ef57620006ef6200062e565b620007078162000700845462000644565b8462000680565b602080601f8311600181146200073f5760008415620007265750858301515b600019600386901b1c1916600185901b178555620006ca565b600085815260208120601f198616915b8281101562000770578886015182559484019460019091019084016200074f565b50858210156200078f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60005b83811015620007bc578181015183820152602001620007a2565b50506000910152565b60008251620007d98184602087016200079f565b9190910192915050565b6020815260008251806020840152620008048160408501602087016200079f565b601f01601f19169190910160400192915050565b61221480620008286000396000f3fe6080604052600436106101405760003560e01c80636c0360eb116100b6578063a0a2daf01161006f578063a0a2daf014610461578063a22cb46514610497578063b88d4fde146104b7578063c87b56dd146104d7578063e985e9c5146104f7578063f2fde38b1461051757610140565b80636c0360eb146103a657806370a08231146103bb578063715018a6146103e95780638822048e146103fe5780638da5cb5b1461042e57806395d89b411461044c57610140565b806326a6860a1161010857806326a6860a146102c657806342842e0e146102e6578063495d815114610306578063521b52a41461033657806361455567146103665780636352211e1461038657610140565b806301ffc9a7146101f757806306fdde031461022c578063081812fc1461024e578063095ea7b31461028657806323b872dd146102a6575b6000356001600160e01b03191615801561015957503415155b1561016057005b600080356001600160e01b0319168152602081905260409020546001600160a01b0316806101d05760405162461bcd60e51b8152602060048201526018602482015277233ab731ba34b7b7103237b2b9903737ba1032bc34b9ba1760411b60448201526064015b60405180910390fd5b60405136600082376000803683855af43d806000843e8180156101f1578184f35b8184fd5b005b34801561020357600080fd5b50610217610212366004611965565b610537565b60405190151581526020015b60405180910390f35b34801561023857600080fd5b50610241610589565b60405161022391906119d2565b34801561025a57600080fd5b5061026e6102693660046119e5565b61061b565b6040516001600160a01b039091168152602001610223565b34801561029257600080fd5b506101f56102a1366004611a1a565b610642565b3480156102b257600080fd5b506101f56102c1366004611a44565b6106b8565b3480156102d257600080fd5b506102416102e13660046119e5565b6106ee565b3480156102f257600080fd5b506101f5610301366004611a44565b61079a565b34801561031257600080fd5b506102176103213660046119e5565b600b6020526000908152604090205460ff1681565b34801561034257600080fd5b50610217610351366004611a80565b60106020526000908152604090205460ff1681565b34801561037257600080fd5b506101f5610381366004611ae4565b6107b5565b34801561039257600080fd5b5061026e6103a13660046119e5565b610dc0565b3480156103b257600080fd5b50610241610e20565b3480156103c757600080fd5b506103db6103d6366004611a80565b610e2d565b604051908152602001610223565b3480156103f557600080fd5b506101f5610eb3565b34801561040a57600080fd5b50610217610419366004611a80565b600a6020526000908152604090205460ff1681565b34801561043a57600080fd5b50600c546001600160a01b031661026e565b34801561045857600080fd5b50610241610ee9565b34801561046d57600080fd5b5061026e61047c366004611965565b6000602081905290815260409020546001600160a01b031681565b3480156104a357600080fd5b506101f56104b2366004611b65565b610ef8565b3480156104c357600080fd5b506101f56104d2366004611bb7565b610f6a565b3480156104e357600080fd5b506102416104f23660046119e5565b610fa2565b34801561050357600080fd5b50610217610512366004611c93565b61107d565b34801561052357600080fd5b506101f5610532366004611a80565b6110ab565b60006001600160e01b031982166380ac58cd60e01b148061056857506001600160e01b03198216635b5e139f60e01b145b8061058357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606004805461059890611cc6565b80601f01602080910402602001604051908101604052809291908181526020018280546105c490611cc6565b80156106115780601f106105e657610100808354040283529160200191610611565b820191906000526020600020905b8154815290600101906020018083116105f457829003601f168201915b5050505050905090565b600061062682611146565b506000908152600860205260409020546001600160a01b031690565b6001600160a01b0382166000908152600a602052604090205460ff166106aa5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a207472616e73666572206e6f7420616c6c6f7765640000000060448201526064016101c7565b6106b482826111a5565b5050565b6106c233826112b5565b6106de5760405162461bcd60e51b81526004016101c790611d00565b6106e9838383611314565b505050565b600181815481106106fe57600080fd5b90600052602060002001600091509050805461071990611cc6565b80601f016020809104026020016040519081016040528092919081815260200182805461074590611cc6565b80156107925780601f1061076757610100808354040283529160200191610792565b820191906000526020600020905b81548152906001019060200180831161077557829003601f168201915b505050505081565b6106e983838360405180602001604052806000815250610f6a565b600c546001600160a01b031633146107df5760405162461bcd60e51b81526004016101c790611d4e565b60006001600160a01b038616156108665750843b806108665760405162461bcd60e51b815260206004820152603960248201527f5f64656c65676174652061646472657373206973206e6f74206120636f6e747260448201527f61637420616e64206973206e6f7420616464726573732830290000000000000060648201526084016101c7565b600085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508451602080870198509596508601909401938693509150819050808080805b878a1015610d7657895160001a925082602903610d6457896108da81611d99565b9a506108e89050878b611db2565b808a526020808b018290206001600160e01b031981166000908152918290526040909120548c99509097506001600160a01b0390811696509094508f16610b09576002896040516109399190611dc5565b9081526020016040518091039020549150816000036109955760405162461bcd60e51b8152602060048201526018602482015277233ab731ba34b7b7103237b2b9903737ba1032bc34b9ba1760411b60448201526064016101c7565b8161099f81611de1565b600180549194506109b1925090611db2565b9050808214610a4957600181815481106109cd576109cd611df8565b90600052602060002001600183815481106109ea576109ea611df8565b906000526020600020019081610a009190611e5c565b50610a0c826001611f3d565b600260018381548110610a2157610a21611df8565b90600052602060002001604051610a389190611f50565b908152604051908190036020019020555b6001805480610a5a57610a5a611fc6565b600190038181906000526020600020016000610a769190611901565b9055600289604051610a889190611dc5565b90815260408051602092819003830181206000908190556001600160e01b03198a168082529381905291822080546001600160a01b031916905590916001600160a01b038816917f3234040ce3bd4564874e44810f198910133a1b24c4e84aac87edbf6b458f535390610afc908e906119d2565b60405180910390a4610d5f565b600289604051610b199190611dc5565b908152602001604051809103902054600003610c6b576001600160a01b03851615610b765760405162461bcd60e51b815260206004820152600d60248201526c233ab731a4b21031b630b9b41760991b60448201526064016101c7565b8e600080886001600160e01b0319166001600160e01b031916815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600189908060018154018082558091505060019003906000526020600020016000909190919091509081610bf59190611fdc565b50600154604051600290610c0a908c90611dc5565b9081526020016040518091039020819055508e6001600160a01b031660006001600160a01b0316876001600160e01b0319167f3234040ce3bd4564874e44810f198910133a1b24c4e84aac87edbf6b458f53538c604051610afc91906119d2565b8e6001600160a01b0316600080886001600160e01b0319166001600160e01b031916815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b031614610d5f578e600080886001600160e01b0319166001600160e01b031916815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508e6001600160a01b0316856001600160a01b0316876001600160e01b0319167f3234040ce3bd4564874e44810f198910133a1b24c4e84aac87edbf6b458f53538c604051610d5691906119d2565b60405180910390a45b978301975b89610d6e81611d99565b9a50506108b9565b7faa1c0a0a78cec2470f9652e5d29540752e7a64d70f926933cebf13afaeda45de8c8c604051610da7929190612096565b60405180910390a1505050505050505050505050505050565b6000818152600660205260408120546001600160a01b0316806105835760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016101c7565b600f805461071990611cc6565b60006001600160a01b038216610e975760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016101c7565b506001600160a01b031660009081526007602052604090205490565b600c546001600160a01b03163314610edd5760405162461bcd60e51b81526004016101c790611d4e565b610ee760006114bb565b565b60606005805461059890611cc6565b6001600160a01b0382166000908152600a602052604090205460ff16610f605760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a207472616e73666572206e6f7420616c6c6f7765640000000060448201526064016101c7565b6106b4828261150d565b610f7433836112b5565b610f905760405162461bcd60e51b81526004016101c790611d00565b610f9c84848484611518565b50505050565b6000818152600660205260409020546060906001600160a01b03166110215760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016101c7565b600061102b61154b565b9050600081511161104b5760405180602001604052806000815250611076565b806110558461155a565b6040516020016110669291906120c5565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b600c546001600160a01b031633146110d55760405162461bcd60e51b81526004016101c790611d4e565b6001600160a01b03811661113a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c7565b611143816114bb565b50565b6000818152600660205260409020546001600160a01b03166111435760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016101c7565b60006111b082610dc0565b9050806001600160a01b0316836001600160a01b03160361121d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016101c7565b336001600160a01b03821614806112395750611239813361107d565b6112ab5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016101c7565b6106e9838361165b565b6000806112c183610dc0565b9050806001600160a01b0316846001600160a01b031614806112e857506112e8818561107d565b8061130c5750836001600160a01b03166113018461061b565b6001600160a01b0316145b949350505050565b826001600160a01b031661132782610dc0565b6001600160a01b03161461138b5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016101c7565b6001600160a01b0382166113ed5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016101c7565b6113f88383836116c9565b61140360008261165b565b6001600160a01b038316600090815260076020526040812080546001929061142c908490611db2565b90915550506001600160a01b038216600090815260076020526040812080546001929061145a908490611f3d565b909155505060008181526006602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6106b4338383611732565b611523848484611314565b61152f84848484611800565b610f9c5760405162461bcd60e51b81526004016101c7906120f4565b6060600f805461059890611cc6565b6060816000036115815750506040805180820190915260018152600360fc1b602082015290565b8160005b81156115ab578061159581611d99565b91506115a49050600a8361215c565b9150611585565b60008167ffffffffffffffff8111156115c6576115c6611ba1565b6040519080825280601f01601f1916602001820160405280156115f0576020820181803683370190505b5090505b841561130c57611605600183611db2565b9150611612600a86612170565b61161d906030611f3d565b60f81b81838151811061163257611632611df8565b60200101906001600160f81b031916908160001a905350611654600a8661215c565b94506115f4565b600081815260086020526040902080546001600160a01b0319166001600160a01b038416908117909155819061169082610dc0565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b03831615806116e657506001600160a01b038216155b6106e95760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20536f756c20626f756e6420746f6b656e000000000000000060448201526064016101c7565b816001600160a01b0316836001600160a01b0316036117935760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016101c7565b6001600160a01b03838116600081815260096020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60006001600160a01b0384163b156118f657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611844903390899088908890600401612184565b6020604051808303816000875af192505050801561187f575060408051601f3d908101601f1916820190925261187c918101906121c1565b60015b6118dc573d8080156118ad576040519150601f19603f3d011682016040523d82523d6000602084013e6118b2565b606091505b5080516000036118d45760405162461bcd60e51b81526004016101c7906120f4565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061130c565b506001949350505050565b50805461190d90611cc6565b6000825580601f1061191d575050565b601f01602090049060005260206000209081019061114391905b8082111561194b5760008155600101611937565b5090565b6001600160e01b03198116811461114357600080fd5b60006020828403121561197757600080fd5b81356110768161194f565b60005b8381101561199d578181015183820152602001611985565b50506000910152565b600081518084526119be816020860160208601611982565b601f01601f19169290920160200192915050565b60208152600061107660208301846119a6565b6000602082840312156119f757600080fd5b5035919050565b80356001600160a01b0381168114611a1557600080fd5b919050565b60008060408385031215611a2d57600080fd5b611a36836119fe565b946020939093013593505050565b600080600060608486031215611a5957600080fd5b611a62846119fe565b9250611a70602085016119fe565b9150604084013590509250925092565b600060208284031215611a9257600080fd5b611076826119fe565b60008083601f840112611aad57600080fd5b50813567ffffffffffffffff811115611ac557600080fd5b602083019150836020828501011115611add57600080fd5b9250929050565b600080600080600060608688031215611afc57600080fd5b611b05866119fe565b9450602086013567ffffffffffffffff80821115611b2257600080fd5b611b2e89838a01611a9b565b90965094506040880135915080821115611b4757600080fd5b50611b5488828901611a9b565b969995985093965092949392505050565b60008060408385031215611b7857600080fd5b611b81836119fe565b915060208301358015158114611b9657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611bcd57600080fd5b611bd6856119fe565b9350611be4602086016119fe565b925060408501359150606085013567ffffffffffffffff80821115611c0857600080fd5b818701915087601f830112611c1c57600080fd5b813581811115611c2e57611c2e611ba1565b604051601f8201601f19908116603f01168101908382118183101715611c5657611c56611ba1565b816040528281528a6020848701011115611c6f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611ca657600080fd5b611caf836119fe565b9150611cbd602084016119fe565b90509250929050565b600181811c90821680611cda57607f821691505b602082108103611cfa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600060018201611dab57611dab611d83565b5060010190565b8181038181111561058357610583611d83565b60008251611dd7818460208701611982565b9190910192915050565b600081611df057611df0611d83565b506000190190565b634e487b7160e01b600052603260045260246000fd5b601f8211156106e957600081815260208120601f850160051c81016020861015611e355750805b601f850160051c820191505b81811015611e5457828155600101611e41565b505050505050565b818103611e67575050565b611e718254611cc6565b67ffffffffffffffff811115611e8957611e89611ba1565b611e9d81611e978454611cc6565b84611e0e565b6000601f821160018114611ed15760008315611eb95750848201545b600019600385901b1c1916600184901b178455611f36565b600085815260209020601f19841690600086815260209020845b83811015611f0b5782860154825560019586019590910190602001611eeb565b5085831015611f295781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b8082018082111561058357610583611d83565b6000808354611f5e81611cc6565b60018281168015611f765760018114611f8b57611fba565b60ff1984168752821515830287019450611fba565b8760005260208060002060005b85811015611fb15781548a820152908401908201611f98565b50505082870194505b50929695505050505050565b634e487b7160e01b600052603160045260246000fd5b815167ffffffffffffffff811115611ff657611ff6611ba1565b61200481611e978454611cc6565b602080601f83116001811461203957600084156120215750858301515b600019600386901b1c1916600185901b178555611e54565b600085815260208120601f198616915b8281101561206857888601518255948401946001909101908401612049565b50858210156120865787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600083516120d7818460208801611982565b8351908301906120eb818360208801611982565b01949350505050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261216b5761216b612146565b500490565b60008261217f5761217f612146565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906121b7908301846119a6565b9695505050505050565b6000602082840312156121d357600080fd5b81516110768161194f56fea26469706673582212207f02c8493eca144d6367429b5f8652d399c4ab2bda0837c1a818d8b5ee1e47c064736f6c6343000811003368747470733a2f2f746573746170692e78616e616c69612e636f6d2f78616e616c69612f6765742d6e66742d6d6574613f746f6b656e49643d757064617465436f6e747261637428616464726573732c737472696e672c737472696e6729000000000000000000000000a9a5d36099ced17df50b996412e8c172c96c611f