witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
13 lines (12 loc) • 84.2 kB
TypeScript
// This file was autogenerated by Hardhat, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable
// biome-ignore format: see above
export interface WitPriceFeedsLegacyBypassV3$Type {
readonly _format: "hh3-artifact-1";
readonly contractName: "WitPriceFeedsLegacyBypassV3";
readonly sourceName: "contracts/apps/WitPriceFeedsLegacyBypassV3.sol";
readonly abi: [{"inputs":[{"internalType":"address","name":"_surrogate","type":"address"},{"internalType":"bytes32","name":"_versionTag","type":"bytes32"},{"internalType":"bool","name":"_upgradable","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"baseAddr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"baseCodehash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"versionTag","type":"string"}],"name":"Upgraded","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"base","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseFeeOverheadPercentage","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"class","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"codehash","outputs":[{"internalType":"bytes32","name":"_codehash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultRadonSLA","outputs":[{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint8","name":"minConsensusPercentage","type":"uint8"},{"internalType":"uint64","name":"witnessReward","type":"uint64"},{"internalType":"uint64","name":"witnessCollateral","type":"uint64"},{"internalType":"uint64","name":"minerCommitRevealFee","type":"uint64"}],"internalType":"struct IWitPriceFeedsLegacy.RadonSLAv1","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"deleteFeed","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deleteFeeds","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"estimateUpdateBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"footprint","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"}],"name":"hash","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_initData","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isUpgradable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"}],"name":"isUpgradableFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"lastValidQueryId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"lastValidQueryResponse","outputs":[{"components":[{"internalType":"address","name":"reporter","type":"address"},{"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"resultDrTxHash","type":"bytes32"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"},{"internalType":"address","name":"disputer","type":"address"}],"internalType":"struct Witnet.QueryResponse","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"latestPrice","outputs":[{"components":[{"internalType":"uint64","name":"value","type":"uint64"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"drTxHash","type":"bytes32"},{"internalType":"enum IWitPriceFeedsLegacySolver.LatestUpdateStatus","name":"latestStatus","type":"uint8"}],"internalType":"struct IWitPriceFeedsLegacySolver.Price","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4[]","name":"feedIds","type":"bytes4[]"}],"name":"latestPrices","outputs":[{"components":[{"internalType":"uint64","name":"value","type":"uint64"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"drTxHash","type":"bytes32"},{"internalType":"enum IWitPriceFeedsLegacySolver.LatestUpdateStatus","name":"latestStatus","type":"uint8"}],"internalType":"struct IWitPriceFeedsLegacySolver.Price[]","name":"_prices","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"latestUpdateQueryId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"latestUpdateQueryRequest","outputs":[{"components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint24","name":"callbackGas","type":"uint24"},{"internalType":"bytes","name":"radonBytecode","type":"bytes"},{"internalType":"Witnet.RadonHash","name":"radonHash","type":"bytes32"}],"internalType":"struct Witnet.QueryRequest","name":"_void","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"latestUpdateResponse","outputs":[{"components":[{"internalType":"address","name":"reporter","type":"address"},{"internalType":"Witnet.Timestamp","name":"resultTimestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"resultDrTxHash","type":"bytes32"},{"internalType":"bytes","name":"resultCborBytes","type":"bytes"},{"internalType":"address","name":"disputer","type":"address"}],"internalType":"struct Witnet.QueryResponse","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"latestUpdateResponseStatus","outputs":[{"internalType":"enum IWitOracleLegacy.QueryResponseStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"latestUpdateResultError","outputs":[{"components":[{"internalType":"uint8","name":"code","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"internalType":"struct IWitOracleLegacy.ResultError","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupCaption","outputs":[{"internalType":"string","name":"_caption","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupPriceSolver","outputs":[{"internalType":"address","name":"_solverAddress","type":"address"},{"internalType":"string[]","name":"_solverDeps","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupWitnetBytecode","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupWitnetRadHash","outputs":[{"internalType":"bytes32","name":"_void","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"feedId","type":"bytes4"}],"name":"lookupWitnetRetrievals","outputs":[{"components":[{"internalType":"uint8","name":"argsCount","type":"uint8"},{"internalType":"enum Witnet.RadonRetrievalMethods","name":"method","type":"uint8"},{"internalType":"enum Witnet.RadonDataTypes","name":"dataType","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"string","name":"body","type":"string"},{"internalType":"string[2][]","name":"headers","type":"string[2][]"},{"internalType":"bytes","name":"radonScript","type":"bytes"}],"internalType":"struct Witnet.RadonRetrieval[]","name":"_void","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IWitOracleRadonRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"requestUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"unitaryReward","type":"uint64"}],"internalType":"struct IWitPriceFeedsLegacy.RadonSLAv2","name":"","type":"tuple"}],"name":"requestUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"settleBaseFeeOverheadPercentage","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint8","name":"numWitnesses","type":"uint8"},{"internalType":"uint64","name":"unitaryReward","type":"uint64"}],"internalType":"struct IWitPriceFeedsLegacy.RadonSLAv2","name":"","type":"tuple"}],"name":"settleDefaultRadonSLA","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"settleFeedRequest","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"contract IWitOracleRequest","name":"","type":"address"}],"name":"settleFeedRequest","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"contract IWitOracleRequestTemplate","name":"","type":"address"},{"internalType":"string[][]","name":"","type":"string[][]"}],"name":"settleFeedRequest","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"string[]","name":"","type":"string[]"}],"name":"settleFeedSolver","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supportedFeeds","outputs":[{"internalType":"bytes4[]","name":"_ids","type":"bytes4[]"},{"internalType":"string[]","name":"_captions","type":"string[]"},{"internalType":"bytes32[]","name":"_solvers","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"caption","type":"string"}],"name":"supportsCaption","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"surrogate","outputs":[{"internalType":"contract IWitPriceFeeds","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"feedId","type":"bytes32"}],"name":"valueFor","outputs":[{"internalType":"int256","name":"","type":"int256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"witnet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}];
readonly bytecode: "0x6101806040523361010052348015610015575f5ffd5b506040516144c83803806144c8833981016040819052610034916102ef565b60408051808201909152601f81527f696f2e7769746e65742e70726f786961626c652e66656564732e70726963650060208201528190839082338061009357604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61009c816101f1565b5030608052151560c052600160025560e0919091528051602090910120610120525061010f6001600160a01b038416158015906100e257505f846001600160a01b03163b115b604080518082019091526011815270696e76616c696420737572726f6761746560781b602082015261020d565b6001600160a01b03831661014081905260408051631014d37560e01b81529051631014d375916004808201926020929091908290030181865afa158015610158573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017c9190610333565b6001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101db9190610333565b6001600160a01b031661016052506103ca915050565b600180546001600160a01b031916905561020a81610220565b50565b811561021c5761021c8161026f565b5050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152601b81527f576974507269636546656564734c6567616379427970617373563300000000006020820152816040516020016102b592919061036c565b60408051601f198184030181529082905262461bcd60e51b825261008a91600401610395565b6001600160a01b038116811461020a575f5ffd5b5f5f5f60608486031215610301575f5ffd5b835161030c816102db565b6020850151604086015191945092508015158114610328575f5ffd5b809150509250925092565b5f60208284031215610343575f5ffd5b815161034e816102db565b9392505050565b5f81518060208401855e5f93019283525090919050565b5f6103778285610355565b6101d160f51b815261038c6002820185610355565b95945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051613ffe6104ca5f395f81816106a9015281816113da015261180a01525f818161089f01528181610bee01528181610f4701528181610ff30152818161126b01528181611310015281816114d90152818161163501528181611740015281816119070152818161198901528181611aff01528181611bfb01528181611ca201528181611d6901528181611f2f01526120d401525f61050a01525f61099001525f61147b01525f818161053a01526115c601525f50505f81816104d50152818161079f0152818161110a0152818161117b015281816111c201526111e40152613ffe5ff3fe6080604052600436106102e3575f3560e01c80638da5cb5b1161018f578063d3471e34116100db578063ef1dff2b11610094578063f78eea831161006e578063f78eea8314610a7a578063f9f34bb614610ab4578063fae91a5114610ae0578063ff24fb4f146103c3576102e3565b8063ef1dff2b14610a15578063f14cb81214610a34578063f2fde38b14610a5b576102e3565b8063d3471e3414610960578063d5f394881461097f578063d6a3614f146109b2578063e1c9e3c0146109c6578063e30c3978146109da578063eb92b29b146109ee576102e3565b8063b8d38c9611610148578063c27ef34f11610122578063c27ef34f1461088e578063c3d98ea8146108c1578063c5010d17146108ed578063cfae69291461090c576102e3565b8063b8d38c9614610810578063bff852fa1461082f578063c064d37214610874576102e3565b80638da5cb5b146107565780638df3fdfd14610772578063a9e954b914610791578063abc86c6e146107c4578063ac82c608146107d7578063b411ee94146107f1576102e3565b806354fd4d501161024e578063715018a611610207578063806d7e8f116101e1578063806d7e8f146106cb57806384292f07146106f757806386ac03e0146107165780638a416ea914610735576102e3565b8063715018a61461067057806379ba5097146106845780637b10399914610698576102e3565b806354fd4d501461056a5780635be939841461036e5780635c0d9d801461057e5780636ab221f8146105aa5780636b58960a146105db5780636d1178e5146105fa576102e3565b806346d1d21a116102a057806346d1d21a1461044357806349492ef11461046f5780634efef9c01461049b5780635001f3b5146104c757806352d1902d146104f95780635479d9401461052c576102e3565b8063029db9581461036e5780630306732e146103a057806303f3813d146103c3578063384ac938146103e45780633e088e1214610411578063439fab9114610424575b3480156102ee575f5ffd5b506102fc5f3560f81c610afa565b61030c60ff5f3560f01c16610afa565b61031c60ff5f3560e81c16610afa565b61032c60ff5f3560e01c16610afa565b60405160200161033f9493929190612a9a565b60408051601f198184030181529082905262461bcd60e51b825261036591600401612b30565b60405180910390fd5b348015610379575f5ffd5b5061038d610388366004612b57565b505f90565b6040519081526020015b60405180910390f35b3480156103ab575f5ffd5b506103b4610be6565b60405161039793929190612bcc565b3480156103ce575f5ffd5b506103e26103dd366004612d01565b610f32565b005b3480156103ef575f5ffd5b506104036103fe366004612b57565b610f41565b604051610397929190612d81565b61038d61041f366004612b57565b611026565b34801561042f575f5ffd5b506103e261043e366004612e93565b611034565b34801561044e575f5ffd5b50610457611268565b6040516001600160a01b039091168152602001610397565b34801561047a575f5ffd5b5061048e610489366004612b57565b6112ee565b6040516103979190612ed7565b3480156104a6575f5ffd5b506104ba6104b5366004612b57565b61130b565b6040516103979190612b30565b3480156104d2575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610457565b348015610504575f5ffd5b5061038d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610537575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519015158152602001610397565b348015610575575f5ffd5b506104ba611474565b348015610589575f5ffd5b5061059d610598366004612b57565b61149f565b6040516103979190612efe565b3480156105b5575f5ffd5b506105c96105c4366004612b57565b6114d5565b60405160ff9091168152602001610397565b3480156105e6575f5ffd5b5061055a6105f5366004612f50565b6115af565b348015610605575f5ffd5b5061060e611608565b60405161039791905f60a08201905060ff835116825260ff60208401511660208301526001600160401b0360408401511660408301526001600160401b0360608401511660608301526001600160401b03608084015116608083015292915050565b34801561067b575f5ffd5b506103e2611720565b34801561068f575f5ffd5b506103e2611733565b3480156106a3575f5ffd5b506104577f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d6575f5ffd5b506106ea6106e5366004612b57565b61173b565b6040516103979190613020565b348015610702575f5ffd5b506103e2610711366004613111565b6118eb565b348015610721575f5ffd5b506103e2610730366004613158565b6118f8565b348015610740575f5ffd5b50610749611904565b6040516103979190613196565b348015610761575f5ffd5b505f546001600160a01b0316610457565b34801561077d575f5ffd5b5061038d61078c366004612b57565b611985565b34801561079c575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f61038d565b61038d6107d23660046131bb565b611a49565b3480156107e2575f5ffd5b506103e26107113660046131ef565b3480156107fc575f5ffd5b5061074961080b366004612e93565b611a58565b34801561081b575f5ffd5b506103e261082a366004613250565b611a66565b34801561083a575f5ffd5b5060408051808201909152601b81527f576974507269636546656564734c65676163794279706173735633000000000060208201526104ba565b34801561087f575f5ffd5b5061038d61038836600461326b565b348015610899575f5ffd5b506104577f000000000000000000000000000000000000000000000000000000000000000081565b3480156108cc575f5ffd5b506108e06108db366004612b57565b611a71565b60405161039791906132cc565b3480156108f8575f5ffd5b5061055a610907366004613158565b611be2565b348015610917575f5ffd5b50610953610926366004612b57565b506040805160a0810182525f80825260208201819052918101829052606080820152608081019190915290565b60405161039791906132da565b34801561096b575f5ffd5b5061095361097a366004612b57565b611c71565b34801561098a575f5ffd5b506104577f000000000000000000000000000000000000000000000000000000000000000081565b3480156109bd575f5ffd5b5061038d611c9f565b3480156109d1575f5ffd5b506103e2611d28565b3480156109e5575f5ffd5b50610457611d30565b3480156109f9575f5ffd5b50610a02611d43565b60405161ffff9091168152602001610397565b348015610a20575f5ffd5b506104ba610a2f366004612b57565b611d4f565b348015610a3f575f5ffd5b50610a4e61041f366004612b57565b6040516103979190613345565b348015610a66575f5ffd5b506103e2610a75366004612f50565b611eae565b348015610a85575f5ffd5b50610a99610a9436600461326b565b611ebf565b60408051938452602084019290925290820152606001610397565b348015610abf575f5ffd5b50610ad3610ace36600461335f565b611ffa565b6040516103979190613391565b348015610aeb575f5ffd5b506103e261082a3660046133de565b6040805160028082528183019092526060915f91906020820181803683370190505090505f610b2a601085613420565b610b35906030613441565b90505f610b4360108661345a565b610b4e906030613441565b905060398260ff161115610b6a57610b67600783613441565b91505b60398160ff161115610b8457610b81600782613441565b90505b8160f81b835f81518110610b9a57610b9a61347b565b60200101906001600160f81b03191690815f1a9053508060f81b83600181518110610bc757610bc761347b565b60200101906001600160f81b03191690815f1a90535091949350505050565b60608060605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633108e1b86040518163ffffffff1660e01b81526004015f60405180830381865afa158015610c47573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c6e9190810190613890565b905080516001600160401b03811115610c8957610c89612da4565b604051908082528060200260200182016040528015610cb2578160200160208202803683370190505b50935080516001600160401b03811115610cce57610cce612da4565b604051908082528060200260200182016040528015610d0157816020015b6060815260200190600190039081610cec5790505b50925080516001600160401b03811115610d1d57610d1d612da4565b604051908082528060200260200182016040528015610d46578160200160208202803683370190505b5091505f5b8151811015610f2b575f828281518110610d6757610d6761347b565b602090810291909101810151516001600160e01b03198082165f9081525f516020613fa95f395f51905f5290935260409092205490925060e01b1615610dd4576001600160e01b031981165f9081525f516020613fa95f395f51905f52602052604090205460e01b610dd6565b805b868381518110610de857610de861347b565b60200260200101906001600160e01b03191690816001600160e01b03191681525050828281518110610e1c57610e1c61347b565b602002602001015160400151858381518110610e3a57610e3a61347b565b60209081029190910101525f838381518110610e5857610e5861347b565b6020026020010151606001515f01516004811115610e7857610e78612f6b565b14610f22575f5f1b838381518110610e9257610e9261347b565b6020026020010151608001516040015103610ee057828281518110610eb957610eb961347b565b6020026020010151608001516020015160601b6bffffffffffffffffffffffff1916610f03565b828281518110610ef257610ef261347b565b602002602001015160800151604001515b848381518110610f1557610f1561347b565b6020026020010181815250505b50600101610d4b565b5050909192565b610f3a6120cf565b5050505050565b5f60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630683bcd2856040518263ffffffff1660e01b8152600401610f919190613196565b5f60405180830381865afa158015610fab573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fd2919081019061393f565b90505f6060820151516004811115610fec57610fec612f6b565b14611020577f0000000000000000000000000000000000000000000000000000000000000000925080606001516020015191505b50915091565b5f61102f6120cf565b919050565b5f546001600160a01b03168061106a57818060200190518101906110589190613970565b9250905061106581612178565b6110b2565b336001600160a01b038216146110b25760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b6044820152606401610365565b6110bb82612191565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe541580159061112c57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b156111795760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f646568617368000000006044820152606401610365565b7f00000000000000000000000000000000000000000000000000000000000000003f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600201557f00000000000000000000000000000000000000000000000000000000000000003f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661121d5f546001600160a01b031690565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f661124f611474565b60405161125c9190612b30565b60405180910390a45050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631014d3756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e991906139bd565b905090565b604080518082019091525f8152606060208201525b61102f6120cf565b60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630683bcd2846040518263ffffffff1660e01b815260040161135a9190613196565b5f60405180830381865afa158015611374573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261139b919081019061393f565b90505f60808201515160038111156113b5576113b5612f6b565b0361145557608081015160409081015190516322889dd960e21b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638a227764906024015f60405180830381865afa158015611426573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261144d91908101906139d8565b949350505050565b604080515f80825260208201909252905b509392505050565b50919050565b60606112e97f00000000000000000000000000000000000000000000000000000000000000006124dd565b61102f60405180608001604052805f6001600160a01b031681526020015f62ffffff168152602001606081526020015f81525090565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663274d45db846040518263ffffffff1660e01b81526004016115239190613196565b602060405180830381865afa15801561153e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115629190613a09565b905061159f5f825f0b1315604051806040016040528060148152602001731d5b98dbdb5c1b1a585b9d08195e1c1bdb995b9d60621b81525061257e565b6115a881613a22565b9392505050565b5f5f6115c25f546001600160a01b031690565b90507f000000000000000000000000000000000000000000000000000000000000000080156115a85750826001600160a01b0316816001600160a01b0316149392505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091525f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639190795f6040518163ffffffff1660e01b815260040160c060405180830381865afa15801561168f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b39190613a3e565b60a08082015160408051928301815260ff821680845260336020850152630bebc200918401829052939450909290919060608201906116f29084613a58565b6001600160401b0316815260200161170d60ff851684613a7a565b6001600160401b03169052949350505050565b61172861258d565b6117315f612178565b565b6117316125b9565b60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630683bcd2846040518263ffffffff1660e01b815260040161178a9190613196565b5f60405180830381865afa1580156117a4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117cb919081019061393f565b90505f60808201515160038111156117e5576117e5612f6b565b0361187d57608081015160409081015190516377c1125960e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906377c11259906024015f60405180830381865afa158015611856573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261144d9190810190613baa565b604080515f8082526020820190925290611466565b6118d16040805160e081019091525f808252602082019081526020015f8152602001606081526020016060815260200160608152602001606081525090565b815260200190600190039081611892579050509392505050565b6118f36120cf565b505050565b6119006120cf565b5050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638a416ea96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611961573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e99190613d40565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630683bcd2846040518263ffffffff1660e01b81526004016119d39190613196565b5f60405180830381865afa1580156119ed573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a14919081019061393f565b90505f6080820151516003811115611a2e57611a2e612f6b565b03611a4157608001516040015192915050565b505f92915050565b5f611a526120cf565b92915050565b805160208201205f90611a52565b611a6e6120cf565b50565b611a98604080516080810182525f8082526020820181905291810182905290606082015290565b6001600160e01b03198281165f9081525f516020613f895f395f51905f526020526040812054909160e09190911b16611ad15782611afa565b6001600160e01b031983165f9081525f516020613f895f395f51905f52602052604090205460e01b5b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166397445409836040518263ffffffff1660e01b8152600401611b499190613196565b60a060405180830381865afa158015611b64573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b889190613d5b565b9050604051806080016040528082602001516001600160401b0316815260200182606001516001600160401b031681526020018260800151815260200160026003811115611bd857611bd8612f6b565b9052949350505050565b60405163c5010d1760e01b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5010d1790611c329086908690600401613d75565b602060405180830381865afa158015611c4d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a89190613da3565b6040805160a0810182525f808252602082018190529181018290526060808201526080810191909152611303565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633108e1b86040518163ffffffff1660e01b81526004015f60405180830381865afa158015611cfb573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d229190810190613890565b51905090565b6117316120cf565b5f6112e96001546001600160a01b031690565b5f611d4c6120cf565b90565b604051631c4f621160e31b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e27b108890611d9e908590600401613196565b5f60405180830381865afa158015611db8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ddf91908101906139d8565b905080515f0361102f576001600160e01b031982165f9081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d201602052604090208054611e2b90613dbc565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5790613dbc565b8015611ea25780601f10611e7957610100808354040283529160200191611ea2565b820191905f5260205f20905b815481529060010190602001808311611e8557829003601f168201915b50505050509050919050565b611eb661258d565b611a6e81612634565b5f80808381805f516020613fa95f395f51905f526001600160e01b03198085165f90815260019290920160205260409091205460e01b1603611f015781611f2a565b6001600160e01b031982165f9081525f516020613f895f395f51905f52602052604090205460e01b5b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166397445409836040518263ffffffff1660e01b8152600401611f799190613196565b60a060405180830381865afa158015611f94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fb89190613d5b565b606081015160208201519192506001600160401b03169060070b818015611fe05760c8611fe4565b6101945b919850965061ffff169450505050509193909250565b6060816001600160401b0381111561201457612014612da4565b60405190808252806020026020018201604052801561206c57816020015b612059604080516080810182525f8082526020820181905291810182905290606082015290565b8152602001906001900390816120325790505b5090505f5b828110156120c8576120a384848381811061208e5761208e61347b565b90506020020160208101906108db9190612b57565b8282815181106120b5576120b561347b565b6020908102919091010152600101612071565b5092915050565b6117317f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bff852fa6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561212d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261215491908101906139d8565b6040516020016121649190613dee565b604051602081830303815290604052612665565b600180546001600160a01b0319169055611a6e816126ab565b7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d200545f5b818110156118f3575f7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d1ff60010182815481106121f3576121f361347b565b5f9182526020822060088204015460079091166004026101000a900460e01b915061223b7fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d1ff90565b6001600160e01b031983165f90815260029190910160205260409020805461226290613dbc565b80601f016020809104026020016040519081016040528092919081815260200182805461228e90613dbc565b80156122d95780601f106122b0576101008083540402835291602001916122d9565b820191905f5260205f20905b8154815290600101906020018083116122bc57829003601f168201915b505050505090505f612311826040805180820182525f8082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260018152602d60f81b6020808301918252835180850185525f8082529082018190528451808601909552925184528301529192509061235983836126fa565b612364906001613e0e565b6001600160401b0381111561237b5761237b612da4565b6040519080825280602002602001820160405280156123ae57816020015b60608152602001906001900390816123995790505b5090505f5b81518110156123f3576123ce6123c9858561278e565b6127ac565b8282815181106123e0576123e061347b565b60209081029190910101526001016123b3565b5060408051808201909152600781526621b93cb83a379760c91b602082015260015b825181101561246457818382815181106124315761243161347b565b602002602001015160405160200161244a929190613e21565b60408051601f198184030181529190529150600101612415565b5080516020918201206001600160e01b03198082165f9081525f516020613fa95f395f51905f5284526040808220805460e08c811c63ffffffff199283161790925593909a1682525f516020613f895f395f51905f529094529290922080549190971c91161790945550505060019190910190506121b5565b60605f6124e983612810565b6001600160401b0381111561250057612500612da4565b6040519080825280601f01601f19166020018201604052801561252a576020820181803683370190505b5090505f5b81518110156120c85783816020811061254a5761254a61347b565b1a60f81b8282815181106125605761256061347b565b60200101906001600160f81b03191690815f1a90535060010161252f565b81156119005761190081612665565b5f546001600160a01b031633146117315760405163118cdaa760e01b8152336004820152602401610365565b33806125c3611d30565b6001600160a01b03161461262b5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610365565b611a6e81612178565b61263c61258d565b6001600160a01b03811661262b57604051631e4fbdf760e01b81525f6004820152602401610365565b60408051808201909152601b81527f576974507269636546656564734c65676163794279706173735633000000000060208201528160405160200161033f929190613e2f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f825f015161271a855f01518660200151865f01518760200151612848565b6127249190613e0e565b90505b835160208501516127389190613e0e565b81116120c8578161274881613e58565b925050825f015161277d8560200151836127629190613e70565b865161276e9190613e70565b83865f01518760200151612848565b6127879190613e0e565b9050612727565b604080518082019091525f80825260208201526120c8838383612964565b60605f825f01516001600160401b038111156127ca576127ca612da4565b6040519080825280601f01601f1916602001820160405280156127f4576020820181803683370190505b5090505f6020820190506120c8818560200151865f0151612a0a565b5f5b602081101561102f5781816020811061282d5761282d61347b565b1a60f81b6001600160f81b0319161561102f57600101612812565b5f838186851161294f57602085116128ff575f851561289257600161286e876020613e70565b612879906008613e83565b612884906002613f7d565b61288e9190613e70565b1990505b845181165f876128a28b8b613e0e565b6128ac9190613e70565b855190915083165b8281146128f1578186106128d9576128cc8b8b613e0e565b965050505050505061144d565b856128e381613e58565b9650508386511690506128b4565b85965050505050505061144d565b508383205f905b6129108689613e70565b821161294d5785832080820361292c578394505050505061144d565b612937600185613e0e565b935050818061294590613e58565b925050612906565b505b6129598787613e0e565b979650505050505050565b604080518082019091525f80825260208201525f612992855f01518660200151865f01518760200151612848565b6020808701805191860191909152519091506129ae9082613e70565b8352845160208601516129c19190613e0e565b81036129cf575f8552612a01565b835183516129dd9190613e0e565b855186906129ec908390613e70565b90525083516129fb9082613e0e565b60208601525b50909392505050565b60208110612a425781518352612a21602084613e0e565b9250612a2e602083613e0e565b9150612a3b602082613e70565b9050612a0a565b5f198115612a70576001612a57836020613e70565b612a6390610100613f7d565b612a6d9190613e70565b90505b9151835183169219169190911790915250565b5f81518060208401855e5f93019283525090919050565b7f5769746e657455706772616461626c65426173653a206e6f7420696d706c656d8152680cadce8cac8744060f60bb1b60208201525f612af8612af2612aec612ae6602986018a612a83565b88612a83565b86612a83565b84612a83565b9695505050505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6115a86020830184612b02565b6001600160e01b031981168114611a6e575f5ffd5b5f60208284031215612b67575f5ffd5b81356115a881612b42565b5f82825180855260208501945060208160051b830101602085015f5b83811015612bc057601f19858403018852612baa838351612b02565b6020988901989093509190910190600101612b8e565b50909695505050505050565b606080825284519082018190525f9060208601906080840190835b81811015612c0f5783516001600160e01b031916835260209384019390920191600101612be7565b50508381036020850152612c238187612b72565b848103604086015285518082526020808801945090910191505f5b81811015612c5c578351835260209384019390920191600101612c3e565b5090979650505050505050565b5f5f83601f840112612c79575f5ffd5b5081356001600160401b03811115612c8f575f5ffd5b602083019150836020828501011115612ca6575f5ffd5b9250929050565b6001600160a01b0381168114611a6e575f5ffd5b5f5f83601f840112612cd1575f5ffd5b5081356001600160401b03811115612ce7575f5ffd5b6020830191508360208260051b8501011115612ca6575f5ffd5b5f5f5f5f5f60608688031215612d15575f5ffd5b85356001600160401b03811115612d2a575f5ffd5b612d3688828901612c69565b9096509450506020860135612d4a81612cad565b925060408601356001600160401b03811115612d64575f5ffd5b612d7088828901612cc1565b969995985093965092949392505050565b6001600160a01b03831681526040602082018190525f9061144d90830184612b72565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612dda57612dda612da4565b60405290565b60405160e081016001600160401b0381118282101715612dda57612dda612da4565b604051601f8201601f191681016001600160401b0381118282101715612e2a57612e2a612da4565b604052919050565b5f6001600160401b03821115612e4a57612e4a612da4565b50601f01601f191660200190565b5f612e6a612e6584612e32565b612e02565b9050828152838383011115612e7d575f5ffd5b828260208301375f602084830101529392505050565b5f60208284031215612ea3575f5ffd5b81356001600160401b03811115612eb8575f5ffd5b8201601f81018413612ec8575f5ffd5b61144d84823560208401612e58565b6020815260ff82511660208201525f602083015160408084015261144d6060840182612b02565b6020815260018060a01b03825116602082015262ffffff60208301511660408201525f604083015160806060840152612f3a60a0840182612b02565b9050606084015160808401528091505092915050565b5f60208284031215612f60575f5ffd5b81356115a881612cad565b634e487b7160e01b5f52602160045260245ffd5b60058110612f8f57612f8f612f6b565b9052565b60148110612f8f57612f8f612f6b565b5f82825180855260208501945060208160051b830101602085015f5b83811015612bc057848303601f19018852815183604081015f5b6002811015613007578682038352612ff2828551612b02565b60209485019493909301929150600101612fd9565b5060209a8b019a90955093909301925050600101612fbf565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561310557603f19878603018452815160ff815116865260208101516130726020880182612f7f565b5060408101516130856040880182612f93565b50606081015160e0606088015261309f60e0880182612b02565b9050608082015187820360808901526130b88282612b02565b91505060a082015187820360a08901526130d28282612fa3565b91505060c0820151915086810360c08801526130ee8183612b02565b965050506020938401939190910190600101613046565b50929695505050505050565b5f5f5f60408486031215613123575f5ffd5b83356001600160401b03811115613138575f5ffd5b61314486828701612c69565b909790965060209590950135949350505050565b5f5f60208385031215613169575f5ffd5b82356001600160401b0381111561317e575f5ffd5b61318a85828601612c69565b90969095509350505050565b6001600160e01b031991909116815260200190565b5f6040828403121561146e575f5ffd5b5f5f606083850312156131cc575f5ffd5b82356131d781612b42565b91506131e684602085016131ab565b90509250929050565b5f5f5f60408486031215613201575f5ffd5b83356001600160401b03811115613216575f5ffd5b61322286828701612c69565b909450925050602084013561323681612cad565b809150509250925092565b61ffff81168114611a6e575f5ffd5b5f60208284031215613260575f5ffd5b81356115a881613241565b5f6020828403121561327b575f5ffd5b5035919050565b6001600160401b0381511682526001600160401b036020820151166020830152604081015160408301526060810151600481106132c1576132c1612f6b565b806060840152505050565b60808101611a528284613282565b6020815260018060a01b0382511660208201526001600160401b036020830151166040820152604082015160608201525f606083015160a0608084015261332460c0840182612b02565b608094909401516001600160a01b031660a093909301929092525090919050565b602081016007831061335957613359612f6b565b91905290565b5f5f60208385031215613370575f5ffd5b82356001600160401b03811115613385575f5ffd5b61318a85828601612cc1565b602080825282518282018190525f918401906040840190835b818110156133d3576133bd838551613282565b60209390930192608092909201916001016133aa565b509095945050505050565b5f604082840312156133ee575f5ffd5b6115a883836131ab565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff831680613432576134326133f8565b8060ff84160491505092915050565b60ff8181168382160190811115611a5257611a5261340c565b5f60ff83168061346c5761346c6133f8565b8060ff84160691505092915050565b634e487b7160e01b5f52603260045260245ffd5b5f6001600160401b038211156134a7576134a7612da4565b5060051b60200190565b80515f81900b811461102f575f5ffd5b5f82601f8301126134d0575f5ffd5b8151602083015f6134e3612e6584612e32565b90508281528583830111156134f6575f5ffd5b8282602083015e5f92810160200192909252509392505050565b60058110611a6e575f5ffd5b805161102f81613510565b5f60408284031215613537575f5ffd5b61353f612db8565b9050815161354c81613510565b815260208201516001600160401b03811115613566575f5ffd5b8201601f81018413613576575f5ffd5b8051613584612e658261348f565b8082825260208201915060208360051b8501019250868311156135a5575f5ffd5b602084015b838110156135e55780516001600160401b038111156135c7575f5ffd5b6135d6896020838901016134c1565b845250602092830192016135aa565b5060208501525091949350505050565b5f60608284031215613605575f5ffd5b604051606081016001600160401b038111828210171561362757613627612da4565b806040525080915082516004811061363d575f5ffd5b8152602083015161364d81612cad565b6020820152604092830151920191909152919050565b805162ffffff8116811461102f575f5ffd5b8051801515811461102f575f5ffd5b5f60c08284031215613694575f5ffd5b60405160c081016001600160401b03811182821017156136b6576136b6612da4565b6040529050806136c583613663565b81526136d360208401613675565b60208201526136e460408401613663565b60408201526136f560608401613663565b6060820152608083015161370881613241565b608082015260a083015161371b81613241565b60a0919091015292915050565b6001600160401b0381168114611a6e575f5ffd5b5f60a0828403121561374c575f5ffd5b60405160a081016001600160401b038111828210171561376e5761376e612da4565b60405290508061377d836134b1565b8152602083015161378d81613728565b60208201526040830151600681900b81146137a6575f5ffd5b604082015260608301516137b981613728565b6060820152608092830151920191909152919050565b5f61024082840312156137e0575f5ffd5b6137e8612de0565b8251815290506137fa602083016134b1565b602082015260408201516001600160401b03811115613817575f5ffd5b613823848285016134c1565b60408301525060608201516001600160401b03811115613841575f5ffd5b61384d84828501613527565b60608301525061386083608084016135f5565b60808201526138728360e08401613684565b60a0820152613885836101a0840161373c565b60c082015292915050565b5f602082840312156138a0575f5ffd5b81516001600160401b038111156138b5575f5ffd5b8201601f810184136138c5575f5ffd5b80516138d3612e658261348f565b8082825260208201915060208360051b8501019250868311156138f4575f5ffd5b602084015b838110156139345780516001600160401b03811115613916575f5ffd5b613925896020838901016137cf565b845250602092830192016138f9565b509695505050505050565b5f6020828403121561394f575f5ffd5b81516001600160401b03811115613964575f5ffd5b61144d848285016137cf565b5f5f60408385031215613981575f5ffd5b825161398c81612cad565b60208401519092506001600160401b038111156139a7575f5ffd5b6139b3858286016134c1565b9150509250929050565b5f602082840312156139cd575f5ffd5b81516115a881612cad565b5f602082840312156139e8575f5ffd5b81516001600160401b038111156139fd575f5ffd5b61144d848285016134c1565b5f60208284031215613a19575f5ffd5b6115a8826134b1565b5f81810b60808101613a3657613a3661340c565b5f0392915050565b5f60c08284031215613a4e575f5ffd5b6115a88383613684565b6001600160401b0381811683821602908116908181146120c8576120c861340c565b5f6001600160401b03831680613a9257613a926133f8565b806001600160401b0384160491505092915050565b805160ff8116811461102f575f5ffd5b80516014811061102f575f5ffd5b5f82601f830112613ad4575f5ffd5b8151613ae2612e658261348f565b8082825260208201915060208360051b860101925085831115613b03575f5ffd5b602085015b83811015613ba05780516001600160401b03811115613b25575f5ffd5b8601603f81018813613b35575f5ffd5b613b3d612db8565b80606083018a811115613b4e575f5ffd5b602084015b81811015613b8e5780516001600160401b03811115613b70575f5ffd5b613b7f8d6020838901016134c1565b85525060209384019301613b53565b50508552505060209283019201613b08565b5095945050505050565b5f60208284031215613bba575f5ffd5b81516001600160401b03811115613bcf575f5ffd5b8201601f81018413613bdf575f5ffd5b8051613bed612e658261348f565b8082825260208201915060208360051b850101925086831115613c0e575f5ffd5b602084015b838110156139345780516001600160401b03811115613c30575f5ffd5b850160e0818a03601f19011215613c45575f5ffd5b613c4d612de0565b613c5960208301613aa7565b8152613c676040830161351c565b6020820152613c7860608301613ab7565b604082015260808201516001600160401b03811115613c95575f5ffd5b613ca48b6020838601016134c1565b60608301525060a08201516001600160401b03811115613cc2575f5ffd5b613cd18b6020838601016134c1565b60808301525060c08201516001600160401b03811115613cef575f5ffd5b613cfe8b602083860101613ac5565b60a08301525060e08201516001600160401b03811115613d1c575f5ffd5b613d2b8b6020838601016134c1565b60c08301525084525060209283019201613c13565b5f60208284031215613d50575f5ffd5b81516115a881612b42565b5f60a08284031215613d6b575f5ffd5b6115a8838361373c565b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b5f60208284031215613db3575f5ffd5b6115a882613675565b600181811c90821680613dd057607f821691505b60208210810361146e57634e487b7160e01b5f52602260045260245ffd5b6b0313cb830b9b9b2b2103a37960a51b81525f6115a8600c830184612a83565b80820180821115611a5257611a5261340c565b5f61144d612af28386612a83565b5f613e3a8285612a83565b6101d160f51b8152613e4f6002820185612a83565b95945050505050565b5f60018201613e6957613e6961340c565b5060010190565b81810381811115611a5257611a5261340c565b8082028115828204841417611a5257611a5261340c565b6001815b6001841115613ed557808504811115613eb957613eb961340c565b6001841615613ec757908102905b60019390931c928002613e9e565b935093915050565b5f82613eeb57506001611a52565b81613ef757505f611a52565b8160018114613f0d5760028114613f1757613f33565b6001915050611a52565b60ff841115613f2857613f2861340c565b50506001821b611a52565b5060208310610133831016604e8410600b8410161715613f56575081810a611a52565b613f625f198484613e9a565b805f1904821115613f7557613f7561340c565b029392505050565b5f6115a88383613edd56fec5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53901c5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53900a26469706673582212201bf73294eb4f604b39137a7bb7f065bffdd1d7410f4f76675d73cc499177d35664736f6c634300081e0033";
readonly deployedBytecode: "0x6080604052600436106102e3575f3560e01c806