Source Code
Overview
XDAI Balance
XDAI Value
$0.00View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Loading...
Loading
Heuristics suggest this may be a proxy contract. Verify using the Proxy Contract Checker
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"_message","type":"bytes32"}],"name":"numMessagesSigned","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalBurntCoins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_hash","type":"bytes32"},{"name":"_index","type":"uint256"}],"name":"signature","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HASHI_IS_MANDATORY","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_blockReward","type":"address"}],"name":"setBlockRewardContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_fee","type":"uint256"}],"name":"setForeignFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_day","type":"uint256"}],"name":"totalSpentPerDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_fee","type":"uint256"}],"name":"setHomeFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isInitialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dailyLimit","type":"uint256"}],"name":"setExecutionDailyLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"requiredBlockConfirmations","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBridgeMode","outputs":[{"name":"_data","type":"bytes4"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"executionDailyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_hash","type":"bytes32"}],"name":"message","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_day","type":"uint256"}],"name":"totalExecutedPerDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blockRewardContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"relayTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_feeManager","type":"address"}],"name":"setFeeManagerContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"signature","type":"bytes"},{"name":"message","type":"bytes"}],"name":"submitSignature","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dailyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_withdrawal","type":"bytes32"}],"name":"numAffirmationsSigned","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_withdrawal","type":"bytes32"}],"name":"affirmationsSigned","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"resendDataWithHashi","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hashiManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_validatorContract","type":"address"},{"name":"_dailyLimitMaxPerTxMinPerTxArray","type":"uint256[3]"},{"name":"_homeGasPrice","type":"uint256"},{"name":"_requiredBlockConfirmations","type":"uint256"},{"name":"_blockReward","type":"address"},{"name":"_foreignDailyLimitForeignMaxPerTxArray","type":"uint256[2]"},{"name":"_owner","type":"address"},{"name":"_decimalShift","type":"int256"}],"name":"initialize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withinExecutionLimit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"executionMaxPerTx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HASHI_IS_ENABLED","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"requiredSignatures","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"hashMsg","type":"bytes32"}],"name":"isApprovedByHashi","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_message","type":"bytes32"}],"name":"messagesSigned","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_value","type":"uint256"}],"name":"getAmountToBurn","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getHomeFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxAvailablePerTx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"validatorContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"bytes32"}],"name":"executeAffirmation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deployedAtBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBridgeInterfacesVersion","outputs":[{"name":"major","type":"uint64"},{"name":"minor","type":"uint64"},{"name":"patch","type":"uint64"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"outOfLimitAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minPerTx","type":"uint256"}],"name":"setMinPerTx","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"hashMsg","type":"bytes32"},{"name":"unlockOnForeign","type":"bool"},{"name":"valueToUnlock","type":"uint256"}],"name":"fixAssetsAboveLimits","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_blockConfirmations","type":"uint256"}],"name":"setRequiredBlockConfirmations","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nonce","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dailyLimit","type":"uint256"}],"name":"setDailyLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_hashiManager","type":"address"}],"name":"setHashiManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_gasPrice","type":"uint256"}],"name":"setGasPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxPerTx","type":"uint256"}],"name":"setMaxPerTx","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint256"},{"name":"chainId","type":"uint256"},{"name":"sender","type":"address"},{"name":"threshold","type":"uint256"},{"name":"adapters","type":"address[]"},{"name":"data","type":"bytes"}],"name":"onMessage","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimalShift","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeManagerContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minPerTx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_validatorContract","type":"address"},{"name":"_dailyLimitMaxPerTxMinPerTxArray","type":"uint256[3]"},{"name":"_homeGasPrice","type":"uint256"},{"name":"_requiredBlockConfirmations","type":"uint256"},{"name":"_blockReward","type":"address"},{"name":"_foreignDailyLimitForeignMaxPerTxArray","type":"uint256[2]"},{"name":"_owner","type":"address"},{"name":"_feeManager","type":"address"},{"name":"_homeFeeForeignFeeArray","type":"uint256[2]"},{"name":"_decimalShift","type":"int256"}],"name":"rewardableInitialize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withinLimit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxPerTx","type":"uint256"}],"name":"setExecutionMaxPerTx","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getFeeManagerMode","outputs":[{"name":"mode","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxPerTx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gasPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_number","type":"uint256"}],"name":"isAlreadyProcessed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getForeignFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"nonce","type":"bytes32"}],"name":"UserRequestForSignature","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"nonce","type":"bytes32"}],"name":"AffirmationCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"signer","type":"address"},{"indexed":false,"name":"messageHash","type":"bytes32"}],"name":"SignedForUserRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"signer","type":"address"},{"indexed":false,"name":"nonce","type":"bytes32"}],"name":"SignedForAffirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"authorityResponsibleForRelay","type":"address"},{"indexed":false,"name":"messageHash","type":"bytes32"},{"indexed":false,"name":"NumberOfCollectedSignatures","type":"uint256"}],"name":"CollectedSignatures","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newLimit","type":"uint256"}],"name":"DailyLimitChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newLimit","type":"uint256"}],"name":"ExecutionDailyLimitChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"gasPrice","type":"uint256"}],"name":"GasPriceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"requiredBlockConfirmations","type":"uint256"}],"name":"RequiredBlockConfirmationChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeAmount","type":"uint256"},{"indexed":true,"name":"transactionHash","type":"bytes32"}],"name":"FeeDistributedFromAffirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeAmount","type":"uint256"},{"indexed":true,"name":"transactionHash","type":"bytes32"}],"name":"FeeDistributedFromSignatures","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"messageId","type":"bytes32"}],"name":"MediatorAmountLimitExceeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"transactionHash","type":"bytes32"},{"indexed":false,"name":"messageId","type":"bytes32"}],"name":"AmountLimitExceeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"messageId","type":"bytes32"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"remaining","type":"uint256"}],"name":"AssetAboveLimitsFixed","type":"event"}]Contract Creation Code
608060405234801561001057600080fd5b50615b0080620000216000396000f3006080604052600436106102d15763ffffffff60e060020a6000350416630cbf060181146102e75780630e8162ba146103115780631812d996146103265780631ded8468146103b657806327a3e16b146103df578063286c4066146104005780632bd0bb051461041857806334a9e14814610430578063392e53cd146104485780633dd95d1b1461045d5780633e6968b6146104755780633f0a9f651461048a578063437764df1461049f57806343b37dd3146104d1578063490a32c6146104e65780634fb3fef7146104fe57806356b54bae146105165780635d1e93071461054757806360756f7c1461055b578063630cea8e1461057c57806367eeba0c146105a857806369ffa08a146105bd5780636ae1a976146105e45780637698da24146105fc578063785b15d5146106145780637ea5f8d414610634578063865c802814610649578063879ce676146106895780638aa1949a146106a15780638b94e255146106b65780638d068043146106cb5780638da5cb5b146106e05780638dc8cf87146106f55780638f4b4b981461070d578063916850e91461072557806394da17cd1461073d57806395e54a17146107525780639943908914610767578063995b2cff1461077c5780639a454b99146107a35780639cb7595a146107b8578063a0189345146107f9578063a2a6ca271461080e578063a7444c0d14610826578063acf5c68914610846578063affed0e01461085e578063b20d30a914610873578063bec9fa7c1461088b578063bf1fe420146108ac578063c6f6f216146108c4578063d496af24146108dc578063dae5f0fd14610921578063dbe03a8b14610936578063df25f3f01461094b578063e13d3c7914610960578063ea9f4968146109aa578063f20151e1146109c2578063f2ba9561146109da578063f2fde38b146109ef578063f968adbe14610a10578063fe173b9714610a25578063ffd19e8c14610a3a578063ffd6619614610a52575b36156102dc57600080fd5b6102e533610a67565b005b3480156102f357600080fd5b506102ff600435610c15565b60408051918252519081900360200190f35b34801561031d57600080fd5b506102ff610cda565b34801561033257600080fd5b50610341600435602435610d29565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561037b578181015183820152602001610363565b50505050905090810190601f1680156103a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103c257600080fd5b506103cb610f06565b604080519115158252519081900360200190f35b3480156103eb57600080fd5b506102e5600160a060020a0360043516610f0b565b34801561040c57600080fd5b506102e5600435610f33565b34801561042457600080fd5b506102ff600435610f6f565b34801561043c57600080fd5b506102e5600435610fea565b34801561045457600080fd5b506103cb611026565b34801561046957600080fd5b506102e5600435611077565b34801561048157600080fd5b506102ff611113565b34801561049657600080fd5b506102ff61111c565b3480156104ab57600080fd5b506104b461116a565b60408051600160e060020a03199092168252519081900360200190f35b3480156104dd57600080fd5b506102ff61118e565b3480156104f257600080fd5b506103416004356111b8565b34801561050a57600080fd5b506102ff600435611320565b34801561052257600080fd5b5061052b61139b565b60408051600160a060020a039092168252519081900360200190f35b6102e5600160a060020a03600435166113aa565b34801561056757600080fd5b506102e5600160a060020a03600435166113b3565b34801561058857600080fd5b506102e5602460048035828101929082013591813591820191013561143a565b3480156105b457600080fd5b506102ff61183f565b3480156105c957600080fd5b506102e5600160a060020a0360043581169060243516611869565b3480156105f057600080fd5b506102ff6004356118f5565b34801561060857600080fd5b506103cb600435611978565b34801561062057600080fd5b506102e56004803560248101910135611a41565b34801561064057600080fd5b5061052b611b47565b34801561065557600080fd5b506103cb600160a060020a036004358116906024906084359060a4359060c43581169060e490610124351661014435611b9e565b34801561069557600080fd5b506103cb600435611d38565b3480156106ad57600080fd5b506102ff611d82565b3480156106c257600080fd5b506103cb611dac565b3480156106d757600080fd5b506102ff611db1565b3480156106ec57600080fd5b5061052b611e29565b34801561070157600080fd5b506103cb600435611e80565b34801561071957600080fd5b506103cb600435611f04565b34801561073157600080fd5b506102ff600435611f88565b34801561074957600080fd5b506102ff612018565b34801561075e57600080fd5b506102ff612031565b34801561077357600080fd5b5061052b61208b565b34801561078857600080fd5b506102e5600160a060020a03600435166024356044356120e2565b3480156107af57600080fd5b506102ff612357565b3480156107c457600080fd5b506107cd6123a5565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561080557600080fd5b506102ff6123b0565b34801561081a57600080fd5b506102e56004356123fe565b34801561083257600080fd5b506102e56004356024351515604435612476565b34801561085257600080fd5b506102e560043561264c565b34801561086a57600080fd5b506102ff612671565b34801561087f57600080fd5b506102e56004356126bf565b34801561089757600080fd5b506102e5600160a060020a036004351661275b565b3480156108b857600080fd5b506102e56004356127e1565b3480156108d057600080fd5b506102e5600435612806565b3480156108e857600080fd5b5061034160048035906024803591600160a060020a0360443516916064359160843580830192908201359160a43591820191013561287a565b34801561092d57600080fd5b506102ff612901565b34801561094257600080fd5b5061052b61294f565b34801561095757600080fd5b506102ff612982565b34801561096c57600080fd5b506103cb600160a060020a036004358116906024906084359060a4359060c43581169060e4906101243581169061014435166101646101a4356129ac565b3480156109b657600080fd5b506103cb600435612bd9565b3480156109ce57600080fd5b506102e5600435612c24565b3480156109e657600080fd5b506104b4612c7c565b3480156109fb57600080fd5b506102e5600160a060020a0360043516612cf2565b348015610a1c57600080fd5b506102ff612d17565b348015610a3157600080fd5b506102ff612d41565b348015610a4657600080fd5b506103cb600435612d8f565b348015610a5e57600080fd5b506102ff612d9b565b6000808080808080348110610a7b57600080fd5b610a8434612bd9565b1515610a8f57600080fd5b610a9761139b565b604080517fb4a523e80000000000000000000000000000000000000000000000000000000081523060048201529051919850600160a060020a0389169163b4a523e8916024808201926020929091908290030181600087803b158015610afc57600080fd5b505af1158015610b10573d6000803e3d6000fd5b505050506040513d6020811015610b2657600080fd5b50519550610b32610cda565b9450610b44868663ffffffff612db416565b341115610b5057600080fd5b610b61610b5b611113565b34612dcb565b349350610b6c61294f565b9250349150600160a060020a03831615610bbb57610b9b846000856000805160206159b5833981519152612e94565b9050610bad848263ffffffff612db416565b9350610bb882611f88565b91505b610bd3610bce868463ffffffff612f2516565b612f32565b60405160009083156108fc0290849083818181858288f19350505050158015610c00573d6000803e3d6000fd5b50610c0b8885612f7f565b5050505050505050565b60008060008360405160200180807f6e756d4d657373616765735369676e656400000000000000000000000000000081525060110182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610c995780518252601f199092019160209182019101610c7a565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b7f17f187b2e5d1f8770602b32c1159b85c9600859277fae1eaa9982e9bcf63384c60009081526020527fdb09a09557fcb6a80beaaeeb5e8935e3bc5b43e4685b36cbc7f7f31d3b0a9763545b90565b604080516020808201859052818301849052825180830384018152606092830193849052805192936000939192909182918401908083835b60208310610d805780518252601f199092019160209182019101610d61565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f7369676e6174757265730000000000000000000000000000000000000000000083830152602a80840182905285518085039091018152604a9093019485905282519097506003965060009550919392508291908401908083835b60208310610e215780518252601f199092019160209182019101610e02565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef85780601f10610ecd57610100808354040283529160200191610ef8565b820191906000526020600020905b815481529060010190602001808311610edb57829003601f168201915b505050505091505092915050565b600081565b610f13611e29565b600160a060020a03163314610f2757600080fd5b610f3081613031565b50565b610f3b611e29565b600160a060020a03163314610f4f57600080fd5b610f30610f5a61294f565b826000805160206158d5833981519152613259565b60008060008360405160200180807f746f74616c5370656e745065724461790000000000000000000000000000000081525060100182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610c995780518252601f199092019160209182019101610c7a565b610ff2611e29565b600160a060020a0316331461100657600080fd5b610f3061101161294f565b826000805160206159b5833981519152613259565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b61107f611e29565b600160a060020a0316331461109357600080fd5b61109b611d82565b8111806110a6575080155b15156110b157600080fd5b600080516020615955833981519152600090815260209081526000805160206159f58339815191528290556040805183815290517f9bebf928b90863f24cc31f726a3a7545efd409f1dcf552301b1ee3710da70d3b929181900390910190a150565b62015180420490565b7f916daedf6915000ff68ced2f0b6773fe6f2582237f92c3c95bb4d7940723007160009081526020527fd2ea0feb732edb0ffe32efd33a6b9d24d46b16eb34a4d07ce256537b6f131e425490565b7f18762d460000000000000000000000000000000000000000000000000000000090565b60008051602061595583398151915260009081526020526000805160206159f58339815191525490565b6060600360008360405160200180807f6d6573736167657300000000000000000000000000000000000000000000000081525060080182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831061123d5780518252601f19909201916020918201910161121e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113145780601f106112e957610100808354040283529160200191611314565b820191906000526020600020905b8154815290600101906020018083116112f757829003601f168201915b50505050509050919050565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610c995780518252601f199092019160209182019101610c7a565b60006113a56133b0565b905090565b610f3081610a67565b6113bb611e29565b600160a060020a031633146113cf57600080fd5b600160a060020a03811615806113e957506113e9816133e3565b15156113f457600080fd5b60008051602061593583398151915260005260026020526000805160206159d58339815191528054600160a060020a031916600160a060020a0392909216919091179055565b600080600080600061144a6133eb565b61148387878080601f01602080910402602001604051908101604052809392919081815260200183838082843750613486945050505050565b151561148e57600080fd5b6114f889898080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8f018190048102820181019092528d815294508d93508c92508291508401838280828437506000945061348d9350505050565b600160a060020a0316331461150c57600080fd5b8686604051602001808383808284378201915050925050506040516020818303038152906040526040518082805190602001908083835b602083106115625780518252601f199092019160209182019101611543565b51815160209384036101000a600019018019909216911617905260408051929094018290038220336c0100000000000000000000000002838301526034808401829052855180850390910181526054909301948590528251909b509195509293508392850191508083835b602083106115ec5780518252601f1990920191602091820191016115cd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020935061162485610c15565b925061162f83612d8f565b1561163957600080fd5b60019283019283111561165e5761164f84611f04565b1561165957600080fd5b611698565b6116988588888080601f0160208091040260200160405190810160405280939291908181526020018383808284375061358c945050505050565b6116a384600161365e565b604080516020808201889052600019860182840152825180830384018152606090920192839052815191929182918401908083835b602083106116f75780518252601f1990920191602091820191016116d8565b51815160209384036101000a600019018019909216911617905260408051929094018290038220601f8f018290048202830182019094528d82529296506117589450869350918d91508c908190840183828082843750613730945050505050565b61176285846137b3565b60408051868152905133917fbf06885f40778f5ccfb64497d3f92ce568ddaedb7e2fb4487f72690418cf8e4c919081900360200190a26117a0611db1565b9050808310611834576117bb856117b685613835565b6137b3565b604080513381526020810187905280820183905290517f415557404d88a0c0b8e3b16967cafffc511213fd9c465c16832ee17ed57d72379181900360600190a161183487878080601f0160208091040260200160405190810160405280939291908181526020018383808284375061383e945050505050565b505050505050505050565b6000805160206159958339815191526000908152602052600080516020615ab58339815191525490565b30600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118a757600080fd5b505af11580156118bb573d6000803e3d6000fd5b505050506040513d60208110156118d157600080fd5b5051600160a060020a031633146118e757600080fd5b6118f18282613897565b5050565b60008060008360405160200180807f6e756d41666669726d6174696f6e735369676e65640000000000000000000000815250601501826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310610c995780518252601f199092019160209182019101610c7a565b6000600460008360405160200180807f61666669726d6174696f6e735369676e6564000000000000000000000000000081525060120182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106119fd5780518252601f1990920191602091820191016119de565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b60046000838360405160200180807f6461746153656e745769746848617368690000000000000000000000000000008152506011018383808284378201915050925050506040516020818303038152906040526040518082805190602001908083835b60208310611ac35780518252601f199092019160209182019101611aa4565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1615159250611b0e91505057600080fd5b6118f182828080601f016020809104026020016040519081016040528093929190818152602001838380828437506138d5945050505050565b7f660d8ed18395a9aa930e304e0bb5e6e51957af1fa215b11db48bfda3dd38d51160005260026020527fb1578d368dec034f5de4adb7567061a469e92e7039fd319ab435573139ccbcc654600160a060020a031690565b6040805160048152602481018252602081018051600160e060020a031660e160020a6337ef4101021781529151815160009330939291829190808383895b83811015611bf4578181015183820152602001611bdc565b50505050905090810190601f168015611c215780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af19150501580611cb3575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b505050506040513d6020811015611ca557600080fd5b5051600160a060020a031633145b80611cbd57503330145b1515611cc857600080fd5b611d1b8989600380602002604051908101604052809291908260036020028082843750506040805180820182528e94508d93508c9250908b90600290839083908082843782019150505050508989613e12565b611d23613f58565b611d2b611026565b9998505050505050505050565b600080611d5b83611d4f611d4a611113565b611320565b9063ffffffff612f2516565b905080611d6661118e565b10158015611d7b5750611d77611d82565b8311155b9392505050565b600080516020615a7583398151915260009081526020526000805160206158f58339815191525490565b600181565b6000611dbb61208b565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611df857600080fd5b505af1158015611e0c573d6000803e3d6000fd5b505050506040513d6020811015611e2257600080fd5b5051905090565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e54600160a060020a031690565b6000600460008360405160200180807f6d65737361676573417070726f766564427948617368690000000000000000008152506017018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106119fd5780518252601f1990920191602091820191016119de565b6000600460008360405160200180807f6d657373616765735369676e6564000000000000000000000000000000000000815250600e018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106119fd5780518252601f1990920191602091820191016119de565b604080516024808201849052825180830390910181526044909101909152602081018051600160e060020a03167f916850e90000000000000000000000000000000000000000000000000000000017905260009081611fe561294f565b9050602060008351602085016000855af28060203d14166001811461200957600080fd5b60005194505b50505050919050565b60006113a56000805160206159b5833981519152613faf565b6000806000806000612041612d17565b935061204b61183f565b925061205d612058611113565b610f6f565b915081831161206d576000612071565b8183035b90508084106120805780612082565b835b94505050505090565b7f5a74bb7e202fb8e4bf311841c7d64ec19df195fee77d7e7ae749b27921b6ddfe60005260026020527fab54f3fbbe62c59b7876a9bf9bd5e0c22dbae93f4d8ee0438f7ce62b198eb0e054600160a060020a031690565b60008060006120ef6133eb565b604080516c01000000000000000000000000600160a060020a0389160260208083019190915260348201889052605480830188905283518084039091018152607490920192839052815191929182918401908083835b602083106121645780518252601f199092019160209182019101612145565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925061219c85611d38565b1561234357604080516c010000000000000000000000003302602080830191909152603480830187905283518084039091018152605490920192839052815191929182918401908083835b602083106122065780518252601f1990920191602091820191016121e7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915061223e82611978565b1561224857600080fd5b6122538260016140a9565b61225c836118f5565b905061226781612d8f565b1561227157600080fd5b60010161227e838261412c565b60408051858152905133917f5df9cc3eb93d8a9a481857a3b70a8ca966e6b80b25cf0ee2cce180ec5afa80a1919081900360200190a26122bc611db1565b811061233e576122d4836122cf83613835565b61412c565b60008511156122f4576122e9868686866141ae565b15156122f457600080fd5b60408051600160a060020a03881681526020810187905280820186905290517f6fc115a803b8703117d9a3956c5a15401cb42401f91630f015eb6b043fa762539181900360600190a15b61234f565b61234f868686866142d9565b505050505050565b7fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b060009081526020527fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b5490565b600660016000909192565b7f145286dc85799b6fb9fe322391ba2d95683077b2adf34dd576dedc437e537ba760009081526020527fba10c7a68bf463c41368d64adcf7df23c0de931ea3b09f061e2dfec302fef95f5490565b612406611e29565b600160a060020a0316331461241a57600080fd5b600081118015612430575061242d61183f565b81105b8015612442575061243f612d17565b81105b151561244d57600080fd5b6000805160206159758339815191526000908152602052600080516020615a5583398151915255565b600080600080600080600030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124bf57600080fd5b505af11580156124d3573d6000803e3d6000fd5b505050506040513d60208110156124e957600080fd5b5051600160a060020a031633146124ff57600080fd5b6125088a6118f5565b965061251387612d8f565b1561251d57600080fd5b6125268a614378565b9096509450600160a060020a038616158015906125435750600085115b801561254f5750878510155b151561255a57600080fd5b61257a612575896125696123b0565b9063ffffffff612db416565b6144ff565b61258a858963ffffffff612db416565b9350612596848b61454c565b604080518981526020810186905281518c927f5bcec6564fe8d2cbb4e4eb8237510ceb6b291a5c2ee2e429948d25e9c924c1fa928290030190a28815612640576125de612d17565b8811156125ea57600080fd5b6125f261294f565b9250879150600160a060020a0383161561263657612621886000856000805160206159b5833981519152612e94565b9050612633888263ffffffff612db416565b91505b6126408683612f7f565b50505050505050505050565b612654611e29565b600160a060020a0316331461266857600080fd5b610f30816145ce565b7f8fe4c9f18420598a0f0a5c996b969714f39cc770f1900e60d2697139e137749b60009081526020527f8ba1484e8bf7939787444e92eb98a67eb881960295fd73460f6d5e6df6d34d1f5490565b6126c7611e29565b600160a060020a031633146126db57600080fd5b6126e3612d17565b8111806126ee575080155b15156126f957600080fd5b60008051602061599583398151915260009081526020908152600080516020615ab58339815191528290556040805183815290517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c929181900390910190a150565b612763611e29565b600160a060020a0316331461277757600080fd5b7f660d8ed18395a9aa930e304e0bb5e6e51957af1fa215b11db48bfda3dd38d51160005260026020527fb1578d368dec034f5de4adb7567061a469e92e7039fd319ab435573139ccbcc68054600160a060020a031916600160a060020a0392909216919091179055565b6127e9611e29565b600160a060020a031633146127fd57600080fd5b610f3081614661565b61280e611e29565b600160a060020a0316331461282257600080fd5b8015806128465750612832612982565b81118015612846575061284361183f565b81105b151561285157600080fd5b6000805160206159158339815191526000908152602052600080516020615a1583398151915255565b606060006128b789888a898980806020026020016040519081016040528093929190818152602001838360200280828437506146e7945050505050565b838360405180838380828437820191505092505050604051809103902090506128df81611e80565b156128e957600080fd5b6128f48160016149f9565b5098975050505050505050565b7f1e8ecaafaddea96ed9ac6d2642dcdfe1bebe58a930b1085842d8fc122b371ee560009081526020527fd5c78dd9468716ca9bb96be25d56436811b20aab3523a9904b12deef1cab239d5490565b60008051602061593583398151915260005260026020526000805160206159d583398151915254600160a060020a031690565b6000805160206159758339815191526000908152602052600080516020615a558339815191525490565b6040805160048152602481018252602081018051600160e060020a031660e160020a6337ef4101021781529151815160009330939291829190808383895b83811015612a025781810151838201526020016129ea565b50505050905090810190601f168015612a2f5780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af19150501580612ac1575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612a8957600080fd5b505af1158015612a9d573d6000803e3d6000fd5b505050506040513d6020811015612ab357600080fd5b5051600160a060020a031633145b80612acb57503330145b1515612ad657600080fd5b612b308b8b600380602002604051908101604052809291908260036020028082843782019150505050508b8b8b8b600280602002604051908101604052809291908260026020028082843782019150505050508b89613e12565b612b39846133e3565b1515612b4457600080fd5b60008051602061593583398151915260005260026020526000805160206159d58339815191528054600160a060020a031916600160a060020a038616179055612b9d8484356000805160206159b5833981519152613259565b612bba8460208501356000805160206158d5833981519152613259565b612bc2613f58565b612bca611026565b9b9a5050505050505050505050565b600080612beb83611d4f612058611113565b905080612bf661183f565b10158015612c0b5750612c07612d17565b8311155b8015611d7b5750612c1a612982565b9092101592915050565b612c2c611e29565b600160a060020a03163314612c4057600080fd5b612c4861118e565b8110612c5357600080fd5b600080516020615a7583398151915260009081526020526000805160206158f583398151915255565b604080516004815260248101909152602081018051600160e060020a03167ff2ba95610000000000000000000000000000000000000000000000000000000017905260009081612cca61294f565b9050600460008351602085016000855af28060203d141615612cec5760005193505b50505090565b612cfa611e29565b600160a060020a03163314612d0e57600080fd5b610f3081614a7c565b6000805160206159158339815191526000908152602052600080516020615a158339815191525490565b7f55b3774520b5993024893d303890baa4e84b1244a43c60034d1ced2d3cf2b04b60009081526020527ff7d5eefab3776d7f0450bd0193564bcb4f832ce313ff2836c450fc63a4b944195490565b60ff60020a9081161490565b60006113a56000805160206158d5833981519152613faf565b600082821115612dc057fe5b508082035b92915050565b612dd881611d4f84610f6f565b6000808460405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310612e525780518252601f199092019160209182019101612e33565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555050505050565b60408051602481018690528415156044820152606480820184905282518083039091018152608490910190915260208181018051600160e060020a03167f9862f26f000000000000000000000000000000000000000000000000000000001781528251600093929184919082885af28060203d141660018114612f1657600080fd5b50506000519695505050505050565b81810182811015612dc557fe5b7f17f187b2e5d1f8770602b32c1159b85c9600859277fae1eaa9982e9bcf63384c60009081526020527fdb09a09557fcb6a80beaaeeb5e8935e3bc5b43e4685b36cbc7f7f31d3b0a976355565b6000612f89612671565b9050612f9781600101614b46565b60408051600160a060020a03851681526020810184905280820183905290517fbcb4ebd89690a7455d6ec096a6bfc4a8a891ac741ffe4e678ea26148532486589181900360600190a1604080516c01000000000000000000000000600160a060020a03861602602082015260348101849052605480820184905282518083039091018152607490910190915261302c90614b93565b505050565b600061303c826133e3565b151561304757600080fd5b6000905081600160a060020a0316632ee57f8d60e060020a0260e060020a90046040518163ffffffff1660e060020a0281526004016000604051808303816000875af1925050501561314f5760405180807f626c6f636b526577617264000000000000000000000000000000000000000000815250600b0190506040518091039020600160e060020a03191682600160a060020a0316632ee57f8d6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561311157600080fd5b505af1158015613125573d6000803e3d6000fd5b505050506040513d602081101561313b57600080fd5b5051600160e060020a031916149050613206565b81600160a060020a03166310f2ee7c60e060020a0260e060020a90046040518163ffffffff1660e060020a0281526004016000604051808303816000875af192505050156132065781600160a060020a03166310f2ee7c6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156131d557600080fd5b505af11580156131e9573d6000803e3d6000fd5b505050506040513d60208110156131ff57600080fd5b5051151590505b80151561321257600080fd5b50600080516020615a358339815191526000526002602052600080516020615a958339815191528054600160a060020a031916600160a060020a0392909216919091179055565b6000816000805160206159b583398151915281148061328557506000805160206158d583398151915281145b151561329057600080fd5b6000805160206159b583398151915283146132cb577f286c4066000000000000000000000000000000000000000000000000000000006132ed565b7f34a9e148000000000000000000000000000000000000000000000000000000005b6040805160248082018890528251808303909101815260449091018252602081018051600160e060020a0316600160e060020a0319851617815291518151939550600160a060020a038916939192909182919080838360005b8381101561335e578181015183820152602001613346565b50505050905090810190601f16801561338b5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af491505015156133a957600080fd5b5050505050565b600080516020615a358339815191526000526002602052600080516020615a9583398151915254600160a060020a031690565b6000903b1190565b6133f361208b565b600160a060020a031663facd743b336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561344d57600080fd5b505af1158015613461573d6000803e3d6000fd5b505050506040513d602081101561347757600080fd5b5051151561348457600080fd5b565b5160681490565b600080600080865160411415156134a357600080fd5b505050602084015160408501516060860151601b60ff60f860020a83041614806134d65750601c60ff60f860020a830416145b15156134e157600080fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561350e57600080fd5b600161351a8787614cac565b60408051600080825260208083018085529490945260ff60f860020a870416828401526060820188905260808201879052915160a08083019493601f198301938390039091019190865af1158015613576573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b80600360008460405160200180807f6d6573736167657300000000000000000000000000000000000000000000000081525060080182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106136105780518252601f1990920191602091820191016135f1565b51815160001960209485036101000a0190811690199190911617905260408051949092018490039093208652858301969096525092909301600020845161302c95919450920191905061580c565b80600460008460405160200180807f6d657373616765735369676e6564000000000000000000000000000000000000815250600e0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106136e25780518252601f1990920191602091820191016136c3565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b80600360008460405160200180807f7369676e61747572657300000000000000000000000000000000000000000000815250600a018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106136105780518252601f1990920191602091820191016135f1565b806000808460405160200180807f6e756d4d657373616765735369676e6564000000000000000000000000000000815250601101826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310612e525780518252601f199092019160209182019101612e33565b60ff60020a1790565b60008060008061384c61294f565b9350600160a060020a038416156133a95761386685614ec6565b50935093505061388a836001866000805160206159b5833981519152600102612e94565b90506133a9818584614f01565b80600160a060020a03811615156138ad57600080fd5b600160a060020a03831615156138cb576138c68261500f565b61302c565b61302c838361501b565b60006138df611b47565b905080600160a060020a031663ee4937ba6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561391f57600080fd5b505af1158015613933573d6000803e3d6000fd5b505050506040513d602081101561394957600080fd5b5051604080517f146ffb260000000000000000000000000000000000000000000000000000000081529051600160a060020a03928316926339d0bf63929085169163146ffb26916004808201926020929091908290030181600087803b1580156139b257600080fd5b505af11580156139c6573d6000803e3d6000fd5b505050506040513d60208110156139dc57600080fd5b5051604080517f42cde4e80000000000000000000000000000000000000000000000000000000081529051600160a060020a038616916342cde4e89160048083019260209291908290030181600087803b158015613a3957600080fd5b505af1158015613a4d573d6000803e3d6000fd5b505050506040513d6020811015613a6357600080fd5b5051604080517f5210eb560000000000000000000000000000000000000000000000000000000081529051600160a060020a03871691635210eb569160048083019260209291908290030181600087803b158015613ac057600080fd5b505af1158015613ad4573d6000803e3d6000fd5b505050506040513d6020811015613aea57600080fd5b5051604080517ff144d48600000000000000000000000000000000000000000000000000000000815290518891600160a060020a0389169163f144d4869160048082019260009290919082900301818387803b158015613b4957600080fd5b505af1158015613b5d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613b8657600080fd5b810190808051640100000000811115613b9e57600080fd5b82016020810184811115613bb157600080fd5b8151856020820283011164010000000082111715613bce57600080fd5b505092919050505087600160a060020a0316636b6e93d56040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015613c1457600080fd5b505af1158015613c28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613c5157600080fd5b810190808051640100000000811115613c6957600080fd5b82016020810184811115613c7c57600080fd5b8151856020820283011164010000000082111715613c9957600080fd5b505060405160e060020a63ffffffff8c16028152600481018a8152602482018a9052600160a060020a038916604483015260c060648301908152885160c484015288519396509094509250608481019160a482019160e40190602089019080838360005b83811015613d15578181015183820152602001613cfd565b50505050905090810190601f168015613d425780820380516001836020036101000a031916815260200191505b508481038352865181528651602091820191808901910280838360005b83811015613d77578181015183820152602001613d5f565b50505050905001848103825285818151815260200191508051906020019060200280838360005b83811015613db6578181015183820152602001613d9e565b505050509050019950505050505050505050602060405180830381600087803b158015613de257600080fd5b505af1158015613df6573d6000803e3d6000fd5b505050506040513d6020811015613e0c57600080fd5b50505050565b613e1a611026565b15613e2457600080fd5b613e2d886133e3565b1515613e3857600080fd5b600160a060020a0384161580613e525750613e52846133e3565b1515613e5d57600080fd5b7fab54f3fbbe62c59b7876a9bf9bd5e0c22dbae93f4d8ee0438f7ce62b198eb0e08054600160a060020a031916600160a060020a038a161790557fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b06000908152602052437fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b55613eec876150c8565b613ef586614661565b613efe856145ce565b600080516020615a358339815191526000526002602052600080516020615a958339815191528054600160a060020a031916600160a060020a038616179055613f46836151b9565b613f4f81615246565b610c0b82614a7c565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff19166001179055565b600080806060846000805160206159b5833981519152811480613fdf57506000805160206158d583398151915281145b1515613fea57600080fd5b613ff261294f565b93506000805160206159b5833981519152861461402f577fffd6619600000000000000000000000000000000000000000000000000000000614051565b7f94da17cd000000000000000000000000000000000000000000000000000000005b60408051600481526024810190915260208082018051600160e060020a0316600160e060020a0319851617815282519396509194509160009182885af28060203d14161561409f5760005195505b5050505050919050565b80600460008460405160200180807f61666669726d6174696f6e735369676e656400000000000000000000000000008152506012018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106136e25780518252601f1990920191602091820191016136c3565b806000808460405160200180807f6e756d41666669726d6174696f6e735369676e65640000000000000000000000815250601501826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310612e525780518252601f199092019160209182019101612e33565b60008060008060006141c086896152af565b6141d16141cb611113565b896152f6565b6141d961139b565b9350600160a060020a03841615156141f057600080fd5b6141f98861537c565b925061420361294f565b9150600160a060020a0382161561424f5761422f836000846000805160206158d5833981519152612e94565b905061423c81838961538f565b61424c838263ffffffff612db416565b92505b83600160a060020a031663aa9fa274848b6040518363ffffffff1660e060020a0281526004018083815260200182600160a060020a0316600160a060020a0316815260200192505050600060405180830381600087803b1580156142b257600080fd5b505af11580156142c6573d6000803e3d6000fd5b5060019c9b505050505050505050505050565b6000806142e583614378565b9092509050600160a060020a0382161580156142ff575080155b151561430a57600080fd5b61431961257586611d4f6123b0565b61432486868561549d565b60408051600160a060020a038816815260208101879052808201859052905185917f26c0a209907d8e06e55b84dfc43d1429e22a3bab2b4f9cfd49d5f7f447a42c4f919081900360600190a2505050505050565b600080600260008460405160200180807f74784f75744f664c696d6974526563697069656e74000000000000000000000081525060150182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106143fe5780518252601f1990920191602091820191016143df565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652858101969096525092830160009081205484517f74784f75744f664c696d697456616c75650000000000000000000000000000008188015260318082018b9052865180830390910181526051909101958690528051600160a060020a0390921698509195869592945091925082918401908083835b602083106144bc5780518252601f19909201916020918201910161449d565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949694955050505050565b7f145286dc85799b6fb9fe322391ba2d95683077b2adf34dd576dedc437e537ba760009081526020527fba10c7a68bf463c41368d64adcf7df23c0de931ea3b09f061e2dfec302fef95f55565b816000808360405160200180807f74784f75744f664c696d697456616c7565000000000000000000000000000000815250601101826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310612e525780518252601f199092019160209182019101612e33565b600081116145db57600080fd5b7f916daedf6915000ff68ced2f0b6773fe6f2582237f92c3c95bb4d79407230071600090815260209081527fd2ea0feb732edb0ffe32efd33a6b9d24d46b16eb34a4d07ce256537b6f131e428290556040805183815290517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb929181900390910190a150565b7f55b3774520b5993024893d303890baa4e84b1244a43c60034d1ced2d3cf2b04b600090815260209081527ff7d5eefab3776d7f0450bd0193564bcb4f832ce313ff2836c450fc63a4b944198290556040805183815290517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e929181900390910190a150565b60006146f1611b47565b905080600160a060020a031663789b11d76040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561473157600080fd5b505af1158015614745573d6000803e3d6000fd5b505050506040513d602081101561475b57600080fd5b5051600160a060020a0316331480156147dc575080600160a060020a031663146ffb266040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156147ad57600080fd5b505af11580156147c1573d6000803e3d6000fd5b505050506040513d60208110156147d757600080fd5b505185145b801561485c575080600160a060020a0316635210eb566040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561482157600080fd5b505af1158015614835573d6000803e3d6000fd5b505050506040513d602081101561484b57600080fd5b5051600160a060020a038481169116145b80156148d0575080600160a060020a0316632690ff8b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156148a157600080fd5b505af11580156148b5573d6000803e3d6000fd5b505050506040513d60208110156148cb57600080fd5b505184145b80156149ee575080600160a060020a031663f238ca266040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561491557600080fd5b505af1158015614929573d6000803e3d6000fd5b505050506040513d602081101561493f57600080fd5b5051604051835184916020908101918291848101910280838360005b8381101561497357818101518382015260200161495b565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106149bb5780518252601f19909201916020918201910161499c565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916145b15156133a957600080fd5b80600460008460405160200180807f6d65737361676573417070726f766564427948617368690000000000000000008152506017018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106136e25780518252601f1990920191602091820191016136c3565b600160a060020a0381161515614a9157600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0614aba611e29565b60408051600160a060020a03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e8054600160a060020a031916600160a060020a0392909216919091179055565b7f8fe4c9f18420598a0f0a5c996b969714f39cc770f1900e60d2697139e137749b60009081526020527f8ba1484e8bf7939787444e92eb98a67eb881960295fd73460f6d5e6df6d34d1f55565b6001600460008360405160200180807f6461746153656e7457697468486173686900000000000000000000000000000081525060110182805190602001908083835b60208310614bf45780518252601f199092019160209182019101614bd5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614c575780518252601f199092019160209182019101614c38565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550610f3091508290506138d5565b60408051808201909152601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602082015260009060608315614e525781614cf68651615586565b866040516020018084805190602001908083835b60208310614d295780518252601f199092019160209182019101614d0a565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310614d715780518252601f199092019160209182019101614d52565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310614db95780518252601f199092019160209182019101614d9a565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310614e1e5780518252601f199092019160209182019101614dff565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250614ebe565b6040805190810160405280600381526020017f3130340000000000000000000000000000000000000000000000000000000000815250905081818660405160200180848051906020019080838360208310614d295780518252601f199092019160209182019101614d0a565b505092915050565b600080600080614ed585613486565b1515614ee057600080fd5b50505050601481015160348201516054830151606890930151919390929190565b600083111561302c576040805160248082018690528251808303909101815260449091018252602081018051600160e060020a03167f59d784640000000000000000000000000000000000000000000000000000000017815291518151600160a060020a03861693829180838360005b83811015614f89578181015183820152602001614f71565b50505050905090810190601f168015614fb65780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af49150501515614fd457600080fd5b60408051848152905182917f858abdcd5efcaebb936e8e8516f0cfe9a0ef5157ff99d16cdabb6db625be90d0919081900360200190a2505050565b30316118f1828261568d565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561508057600080fd5b505af1158015615094573d6000803e3d6000fd5b505050506040513d60208110156150aa57600080fd5b50519050613e0c600160a060020a038516848363ffffffff6156ee16565b604081015160001080156150e3575060408101516020820151115b80156150f3575060208101518151115b15156150fe57600080fd5b805160008051602061599583398151915260009081526020818152600080516020615ab583398151915292909255908201516000805160206159158339815191528252600080516020615a158339815191525560408201516000805160206159758339815191528252600080516020615a55833981519152557fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9082905b60200201516040518082815260200191505060405180910390a150565b80516020820151106151ca57600080fd5b8051600080516020615955833981519152600090815260208181526000805160206159f58339815191529290925590820151600080516020615a7583398151915282526000805160206158f5833981519152557f9bebf928b90863f24cc31f726a3a7545efd409f1dcf552301b1ee3710da70d3b90829061519c565b604c19811380156152575750604d81125b151561526257600080fd5b7f1e8ecaafaddea96ed9ac6d2642dcdfe1bebe58a930b1085842d8fc122b371ee560009081526020527fd5c78dd9468716ca9bb96be25d56436811b20aab3523a9904b12deef1cab239d55565b6000806152bb84614378565b9092509050600160a060020a03821615613e0c578083146152db57600080fd5b6152e76000808661549d565b613e0c612575846125696123b0565b61530381611d4f84611320565b6000808460405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310612e525780518252601f199092019160209182019101612e33565b6000612dc58261538a612901565b615783565b600083111561302c576040805160248082018690528251808303909101815260449091018252602081018051600160e060020a03167f054d46ec0000000000000000000000000000000000000000000000000000000017815291518151600160a060020a03861693829180838360005b838110156154175781810151838201526020016153ff565b50505050905090810190601f1680156154445780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561546257600080fd5b60408051848152905182917fa52d3c9cbc541772e4edd92e2e4e2a3865ab73630f25deed8a6c8de41ff0f65c919081900360200190a2505050565b82600260008360405160200180807f74784f75744f664c696d6974526563697069656e74000000000000000000000081525060150182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106155215780518252601f199092019160209182019101615502565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054600160a060020a031916600160a060020a0395909516949094179093555061302c91508390508261454c565b606060008082818515156155cf5760408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152945061200f565b8593505b83156155ea57600190920191600a840493506155d3565b826040519080825280601f01601f191660200182016040528015615618578160200160208202803883390190505b5091505060001982015b851561568457815160001982019160f860020a6030600a8a06010291849190811061564957fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a86049550615622565b50949350505050565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015156118f15780826156c261588a565b600160a060020a039091168152604051908190036020019082f0801580156133a9573d6000803e3d6000fd5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561575157600080fd5b505af1158015615765573d6000803e3d6000fd5b505050503d1561302c5760206000803e600051151561302c57600080fd5b6000811515615793575081612dc5565b60008213156157b7576157b083600a84900a63ffffffff6157ce16565b9050612dc5565b611d7b836000849003600a0a63ffffffff6157f716565b60008215156157df57506000612dc5565b508181028183828115156157ef57fe5b0414612dc557fe5b6000818381151561580457fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061584d57805160ff191683800117855561587a565b8280016001018555821561587a579182015b8281111561587a57825182559160200191906001019061585f565b50615886929150615899565b5090565b6040516021806158b483390190565b610d2691905b80821115615886576000815560010161589f5600608060405260405160208060218339810160405251600160a060020a038116ff00deb7f3adca07d6d1f708c1774389db532a2b2f18fd05a62b957e4089f4696ed5f8e983ee86e5e377e9e34c9131b266382c3f04113d20de077f9e12663c7a646b0f8803acad17c63ee38bf2de71e1888bc7a079a6f73658e274b08018bea4e29c779a349c5bee7817f04c960f525ee3e2f2516078c38c68a3149787976ee837e521dbcab260e413c20dc13c28b7db95e2b423d1135f42bb8b7d5214a92270d237bbb088c505d18e049d114c7c91f11724e69c55ad6c5397e2b929e68b41fa05d14a6a899679f26b73530d8cf1001e83b6f7702e04b6fdb98f3c62dc7e47e041a589d93e5e92f7e37e490c25f0e50f7f4aad7cc94b308a566553280967be38bcf1c155b21a14c4592b97825e495fbe0d2705fb46420018cac5bfa7a09c43fae517add938dbd083a16bae12238cd914fca0afc7a30edb55b1cd5c7f1823f1b0e4219de0f81379b4d8e60fe509315d071b56e7b732abaf193e74e0d15808b0951d0920ae0b8a761b32f3124efb075f427dd6ca669e88ae7747fec9fd1ad688699f328df5c48c6b6e11d97548adc824ba0c99103ec09830fa5d53a179984085e6eaa0c0ed44c192c86d1cc1ba51340b032c2766b4a2b0041031de13c46dd7104888d5d76793c705b076d97d490f0c1e5a620caae2c4973213dc37ef69a1be2a5ec0701ab29a5cca988aee50edccdd61c5bcaa7ad4b29a03b7ee50f298ceccfe14cc4ea165627a7a7230582037af5de22b32af9e7890df507cb968992374e69329f25f143978115918f7aca70029
Deployed Bytecode
0x6080604052600436106102d15763ffffffff60e060020a6000350416630cbf060181146102e75780630e8162ba146103115780631812d996146103265780631ded8468146103b657806327a3e16b146103df578063286c4066146104005780632bd0bb051461041857806334a9e14814610430578063392e53cd146104485780633dd95d1b1461045d5780633e6968b6146104755780633f0a9f651461048a578063437764df1461049f57806343b37dd3146104d1578063490a32c6146104e65780634fb3fef7146104fe57806356b54bae146105165780635d1e93071461054757806360756f7c1461055b578063630cea8e1461057c57806367eeba0c146105a857806369ffa08a146105bd5780636ae1a976146105e45780637698da24146105fc578063785b15d5146106145780637ea5f8d414610634578063865c802814610649578063879ce676146106895780638aa1949a146106a15780638b94e255146106b65780638d068043146106cb5780638da5cb5b146106e05780638dc8cf87146106f55780638f4b4b981461070d578063916850e91461072557806394da17cd1461073d57806395e54a17146107525780639943908914610767578063995b2cff1461077c5780639a454b99146107a35780639cb7595a146107b8578063a0189345146107f9578063a2a6ca271461080e578063a7444c0d14610826578063acf5c68914610846578063affed0e01461085e578063b20d30a914610873578063bec9fa7c1461088b578063bf1fe420146108ac578063c6f6f216146108c4578063d496af24146108dc578063dae5f0fd14610921578063dbe03a8b14610936578063df25f3f01461094b578063e13d3c7914610960578063ea9f4968146109aa578063f20151e1146109c2578063f2ba9561146109da578063f2fde38b146109ef578063f968adbe14610a10578063fe173b9714610a25578063ffd19e8c14610a3a578063ffd6619614610a52575b36156102dc57600080fd5b6102e533610a67565b005b3480156102f357600080fd5b506102ff600435610c15565b60408051918252519081900360200190f35b34801561031d57600080fd5b506102ff610cda565b34801561033257600080fd5b50610341600435602435610d29565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561037b578181015183820152602001610363565b50505050905090810190601f1680156103a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103c257600080fd5b506103cb610f06565b604080519115158252519081900360200190f35b3480156103eb57600080fd5b506102e5600160a060020a0360043516610f0b565b34801561040c57600080fd5b506102e5600435610f33565b34801561042457600080fd5b506102ff600435610f6f565b34801561043c57600080fd5b506102e5600435610fea565b34801561045457600080fd5b506103cb611026565b34801561046957600080fd5b506102e5600435611077565b34801561048157600080fd5b506102ff611113565b34801561049657600080fd5b506102ff61111c565b3480156104ab57600080fd5b506104b461116a565b60408051600160e060020a03199092168252519081900360200190f35b3480156104dd57600080fd5b506102ff61118e565b3480156104f257600080fd5b506103416004356111b8565b34801561050a57600080fd5b506102ff600435611320565b34801561052257600080fd5b5061052b61139b565b60408051600160a060020a039092168252519081900360200190f35b6102e5600160a060020a03600435166113aa565b34801561056757600080fd5b506102e5600160a060020a03600435166113b3565b34801561058857600080fd5b506102e5602460048035828101929082013591813591820191013561143a565b3480156105b457600080fd5b506102ff61183f565b3480156105c957600080fd5b506102e5600160a060020a0360043581169060243516611869565b3480156105f057600080fd5b506102ff6004356118f5565b34801561060857600080fd5b506103cb600435611978565b34801561062057600080fd5b506102e56004803560248101910135611a41565b34801561064057600080fd5b5061052b611b47565b34801561065557600080fd5b506103cb600160a060020a036004358116906024906084359060a4359060c43581169060e490610124351661014435611b9e565b34801561069557600080fd5b506103cb600435611d38565b3480156106ad57600080fd5b506102ff611d82565b3480156106c257600080fd5b506103cb611dac565b3480156106d757600080fd5b506102ff611db1565b3480156106ec57600080fd5b5061052b611e29565b34801561070157600080fd5b506103cb600435611e80565b34801561071957600080fd5b506103cb600435611f04565b34801561073157600080fd5b506102ff600435611f88565b34801561074957600080fd5b506102ff612018565b34801561075e57600080fd5b506102ff612031565b34801561077357600080fd5b5061052b61208b565b34801561078857600080fd5b506102e5600160a060020a03600435166024356044356120e2565b3480156107af57600080fd5b506102ff612357565b3480156107c457600080fd5b506107cd6123a5565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561080557600080fd5b506102ff6123b0565b34801561081a57600080fd5b506102e56004356123fe565b34801561083257600080fd5b506102e56004356024351515604435612476565b34801561085257600080fd5b506102e560043561264c565b34801561086a57600080fd5b506102ff612671565b34801561087f57600080fd5b506102e56004356126bf565b34801561089757600080fd5b506102e5600160a060020a036004351661275b565b3480156108b857600080fd5b506102e56004356127e1565b3480156108d057600080fd5b506102e5600435612806565b3480156108e857600080fd5b5061034160048035906024803591600160a060020a0360443516916064359160843580830192908201359160a43591820191013561287a565b34801561092d57600080fd5b506102ff612901565b34801561094257600080fd5b5061052b61294f565b34801561095757600080fd5b506102ff612982565b34801561096c57600080fd5b506103cb600160a060020a036004358116906024906084359060a4359060c43581169060e4906101243581169061014435166101646101a4356129ac565b3480156109b657600080fd5b506103cb600435612bd9565b3480156109ce57600080fd5b506102e5600435612c24565b3480156109e657600080fd5b506104b4612c7c565b3480156109fb57600080fd5b506102e5600160a060020a0360043516612cf2565b348015610a1c57600080fd5b506102ff612d17565b348015610a3157600080fd5b506102ff612d41565b348015610a4657600080fd5b506103cb600435612d8f565b348015610a5e57600080fd5b506102ff612d9b565b6000808080808080348110610a7b57600080fd5b610a8434612bd9565b1515610a8f57600080fd5b610a9761139b565b604080517fb4a523e80000000000000000000000000000000000000000000000000000000081523060048201529051919850600160a060020a0389169163b4a523e8916024808201926020929091908290030181600087803b158015610afc57600080fd5b505af1158015610b10573d6000803e3d6000fd5b505050506040513d6020811015610b2657600080fd5b50519550610b32610cda565b9450610b44868663ffffffff612db416565b341115610b5057600080fd5b610b61610b5b611113565b34612dcb565b349350610b6c61294f565b9250349150600160a060020a03831615610bbb57610b9b846000856000805160206159b5833981519152612e94565b9050610bad848263ffffffff612db416565b9350610bb882611f88565b91505b610bd3610bce868463ffffffff612f2516565b612f32565b60405160009083156108fc0290849083818181858288f19350505050158015610c00573d6000803e3d6000fd5b50610c0b8885612f7f565b5050505050505050565b60008060008360405160200180807f6e756d4d657373616765735369676e656400000000000000000000000000000081525060110182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610c995780518252601f199092019160209182019101610c7a565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b7f17f187b2e5d1f8770602b32c1159b85c9600859277fae1eaa9982e9bcf63384c60009081526020527fdb09a09557fcb6a80beaaeeb5e8935e3bc5b43e4685b36cbc7f7f31d3b0a9763545b90565b604080516020808201859052818301849052825180830384018152606092830193849052805192936000939192909182918401908083835b60208310610d805780518252601f199092019160209182019101610d61565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f7369676e6174757265730000000000000000000000000000000000000000000083830152602a80840182905285518085039091018152604a9093019485905282519097506003965060009550919392508291908401908083835b60208310610e215780518252601f199092019160209182019101610e02565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef85780601f10610ecd57610100808354040283529160200191610ef8565b820191906000526020600020905b815481529060010190602001808311610edb57829003601f168201915b505050505091505092915050565b600081565b610f13611e29565b600160a060020a03163314610f2757600080fd5b610f3081613031565b50565b610f3b611e29565b600160a060020a03163314610f4f57600080fd5b610f30610f5a61294f565b826000805160206158d5833981519152613259565b60008060008360405160200180807f746f74616c5370656e745065724461790000000000000000000000000000000081525060100182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610c995780518252601f199092019160209182019101610c7a565b610ff2611e29565b600160a060020a0316331461100657600080fd5b610f3061101161294f565b826000805160206159b5833981519152613259565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b61107f611e29565b600160a060020a0316331461109357600080fd5b61109b611d82565b8111806110a6575080155b15156110b157600080fd5b600080516020615955833981519152600090815260209081526000805160206159f58339815191528290556040805183815290517f9bebf928b90863f24cc31f726a3a7545efd409f1dcf552301b1ee3710da70d3b929181900390910190a150565b62015180420490565b7f916daedf6915000ff68ced2f0b6773fe6f2582237f92c3c95bb4d7940723007160009081526020527fd2ea0feb732edb0ffe32efd33a6b9d24d46b16eb34a4d07ce256537b6f131e425490565b7f18762d460000000000000000000000000000000000000000000000000000000090565b60008051602061595583398151915260009081526020526000805160206159f58339815191525490565b6060600360008360405160200180807f6d6573736167657300000000000000000000000000000000000000000000000081525060080182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831061123d5780518252601f19909201916020918201910161121e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113145780601f106112e957610100808354040283529160200191611314565b820191906000526020600020905b8154815290600101906020018083116112f757829003601f168201915b50505050509050919050565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610c995780518252601f199092019160209182019101610c7a565b60006113a56133b0565b905090565b610f3081610a67565b6113bb611e29565b600160a060020a031633146113cf57600080fd5b600160a060020a03811615806113e957506113e9816133e3565b15156113f457600080fd5b60008051602061593583398151915260005260026020526000805160206159d58339815191528054600160a060020a031916600160a060020a0392909216919091179055565b600080600080600061144a6133eb565b61148387878080601f01602080910402602001604051908101604052809392919081815260200183838082843750613486945050505050565b151561148e57600080fd5b6114f889898080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8f018190048102820181019092528d815294508d93508c92508291508401838280828437506000945061348d9350505050565b600160a060020a0316331461150c57600080fd5b8686604051602001808383808284378201915050925050506040516020818303038152906040526040518082805190602001908083835b602083106115625780518252601f199092019160209182019101611543565b51815160209384036101000a600019018019909216911617905260408051929094018290038220336c0100000000000000000000000002838301526034808401829052855180850390910181526054909301948590528251909b509195509293508392850191508083835b602083106115ec5780518252601f1990920191602091820191016115cd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020935061162485610c15565b925061162f83612d8f565b1561163957600080fd5b60019283019283111561165e5761164f84611f04565b1561165957600080fd5b611698565b6116988588888080601f0160208091040260200160405190810160405280939291908181526020018383808284375061358c945050505050565b6116a384600161365e565b604080516020808201889052600019860182840152825180830384018152606090920192839052815191929182918401908083835b602083106116f75780518252601f1990920191602091820191016116d8565b51815160209384036101000a600019018019909216911617905260408051929094018290038220601f8f018290048202830182019094528d82529296506117589450869350918d91508c908190840183828082843750613730945050505050565b61176285846137b3565b60408051868152905133917fbf06885f40778f5ccfb64497d3f92ce568ddaedb7e2fb4487f72690418cf8e4c919081900360200190a26117a0611db1565b9050808310611834576117bb856117b685613835565b6137b3565b604080513381526020810187905280820183905290517f415557404d88a0c0b8e3b16967cafffc511213fd9c465c16832ee17ed57d72379181900360600190a161183487878080601f0160208091040260200160405190810160405280939291908181526020018383808284375061383e945050505050565b505050505050505050565b6000805160206159958339815191526000908152602052600080516020615ab58339815191525490565b30600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118a757600080fd5b505af11580156118bb573d6000803e3d6000fd5b505050506040513d60208110156118d157600080fd5b5051600160a060020a031633146118e757600080fd5b6118f18282613897565b5050565b60008060008360405160200180807f6e756d41666669726d6174696f6e735369676e65640000000000000000000000815250601501826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310610c995780518252601f199092019160209182019101610c7a565b6000600460008360405160200180807f61666669726d6174696f6e735369676e6564000000000000000000000000000081525060120182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106119fd5780518252601f1990920191602091820191016119de565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b60046000838360405160200180807f6461746153656e745769746848617368690000000000000000000000000000008152506011018383808284378201915050925050506040516020818303038152906040526040518082805190602001908083835b60208310611ac35780518252601f199092019160209182019101611aa4565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1615159250611b0e91505057600080fd5b6118f182828080601f016020809104026020016040519081016040528093929190818152602001838380828437506138d5945050505050565b7f660d8ed18395a9aa930e304e0bb5e6e51957af1fa215b11db48bfda3dd38d51160005260026020527fb1578d368dec034f5de4adb7567061a469e92e7039fd319ab435573139ccbcc654600160a060020a031690565b6040805160048152602481018252602081018051600160e060020a031660e160020a6337ef4101021781529151815160009330939291829190808383895b83811015611bf4578181015183820152602001611bdc565b50505050905090810190601f168015611c215780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af19150501580611cb3575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b505050506040513d6020811015611ca557600080fd5b5051600160a060020a031633145b80611cbd57503330145b1515611cc857600080fd5b611d1b8989600380602002604051908101604052809291908260036020028082843750506040805180820182528e94508d93508c9250908b90600290839083908082843782019150505050508989613e12565b611d23613f58565b611d2b611026565b9998505050505050505050565b600080611d5b83611d4f611d4a611113565b611320565b9063ffffffff612f2516565b905080611d6661118e565b10158015611d7b5750611d77611d82565b8311155b9392505050565b600080516020615a7583398151915260009081526020526000805160206158f58339815191525490565b600181565b6000611dbb61208b565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611df857600080fd5b505af1158015611e0c573d6000803e3d6000fd5b505050506040513d6020811015611e2257600080fd5b5051905090565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e54600160a060020a031690565b6000600460008360405160200180807f6d65737361676573417070726f766564427948617368690000000000000000008152506017018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106119fd5780518252601f1990920191602091820191016119de565b6000600460008360405160200180807f6d657373616765735369676e6564000000000000000000000000000000000000815250600e018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106119fd5780518252601f1990920191602091820191016119de565b604080516024808201849052825180830390910181526044909101909152602081018051600160e060020a03167f916850e90000000000000000000000000000000000000000000000000000000017905260009081611fe561294f565b9050602060008351602085016000855af28060203d14166001811461200957600080fd5b60005194505b50505050919050565b60006113a56000805160206159b5833981519152613faf565b6000806000806000612041612d17565b935061204b61183f565b925061205d612058611113565b610f6f565b915081831161206d576000612071565b8183035b90508084106120805780612082565b835b94505050505090565b7f5a74bb7e202fb8e4bf311841c7d64ec19df195fee77d7e7ae749b27921b6ddfe60005260026020527fab54f3fbbe62c59b7876a9bf9bd5e0c22dbae93f4d8ee0438f7ce62b198eb0e054600160a060020a031690565b60008060006120ef6133eb565b604080516c01000000000000000000000000600160a060020a0389160260208083019190915260348201889052605480830188905283518084039091018152607490920192839052815191929182918401908083835b602083106121645780518252601f199092019160209182019101612145565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925061219c85611d38565b1561234357604080516c010000000000000000000000003302602080830191909152603480830187905283518084039091018152605490920192839052815191929182918401908083835b602083106122065780518252601f1990920191602091820191016121e7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915061223e82611978565b1561224857600080fd5b6122538260016140a9565b61225c836118f5565b905061226781612d8f565b1561227157600080fd5b60010161227e838261412c565b60408051858152905133917f5df9cc3eb93d8a9a481857a3b70a8ca966e6b80b25cf0ee2cce180ec5afa80a1919081900360200190a26122bc611db1565b811061233e576122d4836122cf83613835565b61412c565b60008511156122f4576122e9868686866141ae565b15156122f457600080fd5b60408051600160a060020a03881681526020810187905280820186905290517f6fc115a803b8703117d9a3956c5a15401cb42401f91630f015eb6b043fa762539181900360600190a15b61234f565b61234f868686866142d9565b505050505050565b7fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b060009081526020527fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b5490565b600660016000909192565b7f145286dc85799b6fb9fe322391ba2d95683077b2adf34dd576dedc437e537ba760009081526020527fba10c7a68bf463c41368d64adcf7df23c0de931ea3b09f061e2dfec302fef95f5490565b612406611e29565b600160a060020a0316331461241a57600080fd5b600081118015612430575061242d61183f565b81105b8015612442575061243f612d17565b81105b151561244d57600080fd5b6000805160206159758339815191526000908152602052600080516020615a5583398151915255565b600080600080600080600030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124bf57600080fd5b505af11580156124d3573d6000803e3d6000fd5b505050506040513d60208110156124e957600080fd5b5051600160a060020a031633146124ff57600080fd5b6125088a6118f5565b965061251387612d8f565b1561251d57600080fd5b6125268a614378565b9096509450600160a060020a038616158015906125435750600085115b801561254f5750878510155b151561255a57600080fd5b61257a612575896125696123b0565b9063ffffffff612db416565b6144ff565b61258a858963ffffffff612db416565b9350612596848b61454c565b604080518981526020810186905281518c927f5bcec6564fe8d2cbb4e4eb8237510ceb6b291a5c2ee2e429948d25e9c924c1fa928290030190a28815612640576125de612d17565b8811156125ea57600080fd5b6125f261294f565b9250879150600160a060020a0383161561263657612621886000856000805160206159b5833981519152612e94565b9050612633888263ffffffff612db416565b91505b6126408683612f7f565b50505050505050505050565b612654611e29565b600160a060020a0316331461266857600080fd5b610f30816145ce565b7f8fe4c9f18420598a0f0a5c996b969714f39cc770f1900e60d2697139e137749b60009081526020527f8ba1484e8bf7939787444e92eb98a67eb881960295fd73460f6d5e6df6d34d1f5490565b6126c7611e29565b600160a060020a031633146126db57600080fd5b6126e3612d17565b8111806126ee575080155b15156126f957600080fd5b60008051602061599583398151915260009081526020908152600080516020615ab58339815191528290556040805183815290517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c929181900390910190a150565b612763611e29565b600160a060020a0316331461277757600080fd5b7f660d8ed18395a9aa930e304e0bb5e6e51957af1fa215b11db48bfda3dd38d51160005260026020527fb1578d368dec034f5de4adb7567061a469e92e7039fd319ab435573139ccbcc68054600160a060020a031916600160a060020a0392909216919091179055565b6127e9611e29565b600160a060020a031633146127fd57600080fd5b610f3081614661565b61280e611e29565b600160a060020a0316331461282257600080fd5b8015806128465750612832612982565b81118015612846575061284361183f565b81105b151561285157600080fd5b6000805160206159158339815191526000908152602052600080516020615a1583398151915255565b606060006128b789888a898980806020026020016040519081016040528093929190818152602001838360200280828437506146e7945050505050565b838360405180838380828437820191505092505050604051809103902090506128df81611e80565b156128e957600080fd5b6128f48160016149f9565b5098975050505050505050565b7f1e8ecaafaddea96ed9ac6d2642dcdfe1bebe58a930b1085842d8fc122b371ee560009081526020527fd5c78dd9468716ca9bb96be25d56436811b20aab3523a9904b12deef1cab239d5490565b60008051602061593583398151915260005260026020526000805160206159d583398151915254600160a060020a031690565b6000805160206159758339815191526000908152602052600080516020615a558339815191525490565b6040805160048152602481018252602081018051600160e060020a031660e160020a6337ef4101021781529151815160009330939291829190808383895b83811015612a025781810151838201526020016129ea565b50505050905090810190601f168015612a2f5780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af19150501580612ac1575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612a8957600080fd5b505af1158015612a9d573d6000803e3d6000fd5b505050506040513d6020811015612ab357600080fd5b5051600160a060020a031633145b80612acb57503330145b1515612ad657600080fd5b612b308b8b600380602002604051908101604052809291908260036020028082843782019150505050508b8b8b8b600280602002604051908101604052809291908260026020028082843782019150505050508b89613e12565b612b39846133e3565b1515612b4457600080fd5b60008051602061593583398151915260005260026020526000805160206159d58339815191528054600160a060020a031916600160a060020a038616179055612b9d8484356000805160206159b5833981519152613259565b612bba8460208501356000805160206158d5833981519152613259565b612bc2613f58565b612bca611026565b9b9a5050505050505050505050565b600080612beb83611d4f612058611113565b905080612bf661183f565b10158015612c0b5750612c07612d17565b8311155b8015611d7b5750612c1a612982565b9092101592915050565b612c2c611e29565b600160a060020a03163314612c4057600080fd5b612c4861118e565b8110612c5357600080fd5b600080516020615a7583398151915260009081526020526000805160206158f583398151915255565b604080516004815260248101909152602081018051600160e060020a03167ff2ba95610000000000000000000000000000000000000000000000000000000017905260009081612cca61294f565b9050600460008351602085016000855af28060203d141615612cec5760005193505b50505090565b612cfa611e29565b600160a060020a03163314612d0e57600080fd5b610f3081614a7c565b6000805160206159158339815191526000908152602052600080516020615a158339815191525490565b7f55b3774520b5993024893d303890baa4e84b1244a43c60034d1ced2d3cf2b04b60009081526020527ff7d5eefab3776d7f0450bd0193564bcb4f832ce313ff2836c450fc63a4b944195490565b60ff60020a9081161490565b60006113a56000805160206158d5833981519152613faf565b600082821115612dc057fe5b508082035b92915050565b612dd881611d4f84610f6f565b6000808460405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310612e525780518252601f199092019160209182019101612e33565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555050505050565b60408051602481018690528415156044820152606480820184905282518083039091018152608490910190915260208181018051600160e060020a03167f9862f26f000000000000000000000000000000000000000000000000000000001781528251600093929184919082885af28060203d141660018114612f1657600080fd5b50506000519695505050505050565b81810182811015612dc557fe5b7f17f187b2e5d1f8770602b32c1159b85c9600859277fae1eaa9982e9bcf63384c60009081526020527fdb09a09557fcb6a80beaaeeb5e8935e3bc5b43e4685b36cbc7f7f31d3b0a976355565b6000612f89612671565b9050612f9781600101614b46565b60408051600160a060020a03851681526020810184905280820183905290517fbcb4ebd89690a7455d6ec096a6bfc4a8a891ac741ffe4e678ea26148532486589181900360600190a1604080516c01000000000000000000000000600160a060020a03861602602082015260348101849052605480820184905282518083039091018152607490910190915261302c90614b93565b505050565b600061303c826133e3565b151561304757600080fd5b6000905081600160a060020a0316632ee57f8d60e060020a0260e060020a90046040518163ffffffff1660e060020a0281526004016000604051808303816000875af1925050501561314f5760405180807f626c6f636b526577617264000000000000000000000000000000000000000000815250600b0190506040518091039020600160e060020a03191682600160a060020a0316632ee57f8d6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561311157600080fd5b505af1158015613125573d6000803e3d6000fd5b505050506040513d602081101561313b57600080fd5b5051600160e060020a031916149050613206565b81600160a060020a03166310f2ee7c60e060020a0260e060020a90046040518163ffffffff1660e060020a0281526004016000604051808303816000875af192505050156132065781600160a060020a03166310f2ee7c6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156131d557600080fd5b505af11580156131e9573d6000803e3d6000fd5b505050506040513d60208110156131ff57600080fd5b5051151590505b80151561321257600080fd5b50600080516020615a358339815191526000526002602052600080516020615a958339815191528054600160a060020a031916600160a060020a0392909216919091179055565b6000816000805160206159b583398151915281148061328557506000805160206158d583398151915281145b151561329057600080fd5b6000805160206159b583398151915283146132cb577f286c4066000000000000000000000000000000000000000000000000000000006132ed565b7f34a9e148000000000000000000000000000000000000000000000000000000005b6040805160248082018890528251808303909101815260449091018252602081018051600160e060020a0316600160e060020a0319851617815291518151939550600160a060020a038916939192909182919080838360005b8381101561335e578181015183820152602001613346565b50505050905090810190601f16801561338b5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af491505015156133a957600080fd5b5050505050565b600080516020615a358339815191526000526002602052600080516020615a9583398151915254600160a060020a031690565b6000903b1190565b6133f361208b565b600160a060020a031663facd743b336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561344d57600080fd5b505af1158015613461573d6000803e3d6000fd5b505050506040513d602081101561347757600080fd5b5051151561348457600080fd5b565b5160681490565b600080600080865160411415156134a357600080fd5b505050602084015160408501516060860151601b60ff60f860020a83041614806134d65750601c60ff60f860020a830416145b15156134e157600080fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561350e57600080fd5b600161351a8787614cac565b60408051600080825260208083018085529490945260ff60f860020a870416828401526060820188905260808201879052915160a08083019493601f198301938390039091019190865af1158015613576573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b80600360008460405160200180807f6d6573736167657300000000000000000000000000000000000000000000000081525060080182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106136105780518252601f1990920191602091820191016135f1565b51815160001960209485036101000a0190811690199190911617905260408051949092018490039093208652858301969096525092909301600020845161302c95919450920191905061580c565b80600460008460405160200180807f6d657373616765735369676e6564000000000000000000000000000000000000815250600e0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106136e25780518252601f1990920191602091820191016136c3565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b80600360008460405160200180807f7369676e61747572657300000000000000000000000000000000000000000000815250600a018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106136105780518252601f1990920191602091820191016135f1565b806000808460405160200180807f6e756d4d657373616765735369676e6564000000000000000000000000000000815250601101826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310612e525780518252601f199092019160209182019101612e33565b60ff60020a1790565b60008060008061384c61294f565b9350600160a060020a038416156133a95761386685614ec6565b50935093505061388a836001866000805160206159b5833981519152600102612e94565b90506133a9818584614f01565b80600160a060020a03811615156138ad57600080fd5b600160a060020a03831615156138cb576138c68261500f565b61302c565b61302c838361501b565b60006138df611b47565b905080600160a060020a031663ee4937ba6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561391f57600080fd5b505af1158015613933573d6000803e3d6000fd5b505050506040513d602081101561394957600080fd5b5051604080517f146ffb260000000000000000000000000000000000000000000000000000000081529051600160a060020a03928316926339d0bf63929085169163146ffb26916004808201926020929091908290030181600087803b1580156139b257600080fd5b505af11580156139c6573d6000803e3d6000fd5b505050506040513d60208110156139dc57600080fd5b5051604080517f42cde4e80000000000000000000000000000000000000000000000000000000081529051600160a060020a038616916342cde4e89160048083019260209291908290030181600087803b158015613a3957600080fd5b505af1158015613a4d573d6000803e3d6000fd5b505050506040513d6020811015613a6357600080fd5b5051604080517f5210eb560000000000000000000000000000000000000000000000000000000081529051600160a060020a03871691635210eb569160048083019260209291908290030181600087803b158015613ac057600080fd5b505af1158015613ad4573d6000803e3d6000fd5b505050506040513d6020811015613aea57600080fd5b5051604080517ff144d48600000000000000000000000000000000000000000000000000000000815290518891600160a060020a0389169163f144d4869160048082019260009290919082900301818387803b158015613b4957600080fd5b505af1158015613b5d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613b8657600080fd5b810190808051640100000000811115613b9e57600080fd5b82016020810184811115613bb157600080fd5b8151856020820283011164010000000082111715613bce57600080fd5b505092919050505087600160a060020a0316636b6e93d56040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015613c1457600080fd5b505af1158015613c28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613c5157600080fd5b810190808051640100000000811115613c6957600080fd5b82016020810184811115613c7c57600080fd5b8151856020820283011164010000000082111715613c9957600080fd5b505060405160e060020a63ffffffff8c16028152600481018a8152602482018a9052600160a060020a038916604483015260c060648301908152885160c484015288519396509094509250608481019160a482019160e40190602089019080838360005b83811015613d15578181015183820152602001613cfd565b50505050905090810190601f168015613d425780820380516001836020036101000a031916815260200191505b508481038352865181528651602091820191808901910280838360005b83811015613d77578181015183820152602001613d5f565b50505050905001848103825285818151815260200191508051906020019060200280838360005b83811015613db6578181015183820152602001613d9e565b505050509050019950505050505050505050602060405180830381600087803b158015613de257600080fd5b505af1158015613df6573d6000803e3d6000fd5b505050506040513d6020811015613e0c57600080fd5b50505050565b613e1a611026565b15613e2457600080fd5b613e2d886133e3565b1515613e3857600080fd5b600160a060020a0384161580613e525750613e52846133e3565b1515613e5d57600080fd5b7fab54f3fbbe62c59b7876a9bf9bd5e0c22dbae93f4d8ee0438f7ce62b198eb0e08054600160a060020a031916600160a060020a038a161790557fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b06000908152602052437fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b55613eec876150c8565b613ef586614661565b613efe856145ce565b600080516020615a358339815191526000526002602052600080516020615a958339815191528054600160a060020a031916600160a060020a038616179055613f46836151b9565b613f4f81615246565b610c0b82614a7c565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff19166001179055565b600080806060846000805160206159b5833981519152811480613fdf57506000805160206158d583398151915281145b1515613fea57600080fd5b613ff261294f565b93506000805160206159b5833981519152861461402f577fffd6619600000000000000000000000000000000000000000000000000000000614051565b7f94da17cd000000000000000000000000000000000000000000000000000000005b60408051600481526024810190915260208082018051600160e060020a0316600160e060020a0319851617815282519396509194509160009182885af28060203d14161561409f5760005195505b5050505050919050565b80600460008460405160200180807f61666669726d6174696f6e735369676e656400000000000000000000000000008152506012018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106136e25780518252601f1990920191602091820191016136c3565b806000808460405160200180807f6e756d41666669726d6174696f6e735369676e65640000000000000000000000815250601501826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310612e525780518252601f199092019160209182019101612e33565b60008060008060006141c086896152af565b6141d16141cb611113565b896152f6565b6141d961139b565b9350600160a060020a03841615156141f057600080fd5b6141f98861537c565b925061420361294f565b9150600160a060020a0382161561424f5761422f836000846000805160206158d5833981519152612e94565b905061423c81838961538f565b61424c838263ffffffff612db416565b92505b83600160a060020a031663aa9fa274848b6040518363ffffffff1660e060020a0281526004018083815260200182600160a060020a0316600160a060020a0316815260200192505050600060405180830381600087803b1580156142b257600080fd5b505af11580156142c6573d6000803e3d6000fd5b5060019c9b505050505050505050505050565b6000806142e583614378565b9092509050600160a060020a0382161580156142ff575080155b151561430a57600080fd5b61431961257586611d4f6123b0565b61432486868561549d565b60408051600160a060020a038816815260208101879052808201859052905185917f26c0a209907d8e06e55b84dfc43d1429e22a3bab2b4f9cfd49d5f7f447a42c4f919081900360600190a2505050505050565b600080600260008460405160200180807f74784f75744f664c696d6974526563697069656e74000000000000000000000081525060150182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106143fe5780518252601f1990920191602091820191016143df565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652858101969096525092830160009081205484517f74784f75744f664c696d697456616c75650000000000000000000000000000008188015260318082018b9052865180830390910181526051909101958690528051600160a060020a0390921698509195869592945091925082918401908083835b602083106144bc5780518252601f19909201916020918201910161449d565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949694955050505050565b7f145286dc85799b6fb9fe322391ba2d95683077b2adf34dd576dedc437e537ba760009081526020527fba10c7a68bf463c41368d64adcf7df23c0de931ea3b09f061e2dfec302fef95f55565b816000808360405160200180807f74784f75744f664c696d697456616c7565000000000000000000000000000000815250601101826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310612e525780518252601f199092019160209182019101612e33565b600081116145db57600080fd5b7f916daedf6915000ff68ced2f0b6773fe6f2582237f92c3c95bb4d79407230071600090815260209081527fd2ea0feb732edb0ffe32efd33a6b9d24d46b16eb34a4d07ce256537b6f131e428290556040805183815290517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb929181900390910190a150565b7f55b3774520b5993024893d303890baa4e84b1244a43c60034d1ced2d3cf2b04b600090815260209081527ff7d5eefab3776d7f0450bd0193564bcb4f832ce313ff2836c450fc63a4b944198290556040805183815290517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e929181900390910190a150565b60006146f1611b47565b905080600160a060020a031663789b11d76040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561473157600080fd5b505af1158015614745573d6000803e3d6000fd5b505050506040513d602081101561475b57600080fd5b5051600160a060020a0316331480156147dc575080600160a060020a031663146ffb266040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156147ad57600080fd5b505af11580156147c1573d6000803e3d6000fd5b505050506040513d60208110156147d757600080fd5b505185145b801561485c575080600160a060020a0316635210eb566040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561482157600080fd5b505af1158015614835573d6000803e3d6000fd5b505050506040513d602081101561484b57600080fd5b5051600160a060020a038481169116145b80156148d0575080600160a060020a0316632690ff8b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156148a157600080fd5b505af11580156148b5573d6000803e3d6000fd5b505050506040513d60208110156148cb57600080fd5b505184145b80156149ee575080600160a060020a031663f238ca266040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561491557600080fd5b505af1158015614929573d6000803e3d6000fd5b505050506040513d602081101561493f57600080fd5b5051604051835184916020908101918291848101910280838360005b8381101561497357818101518382015260200161495b565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106149bb5780518252601f19909201916020918201910161499c565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916145b15156133a957600080fd5b80600460008460405160200180807f6d65737361676573417070726f766564427948617368690000000000000000008152506017018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106136e25780518252601f1990920191602091820191016136c3565b600160a060020a0381161515614a9157600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0614aba611e29565b60408051600160a060020a03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e8054600160a060020a031916600160a060020a0392909216919091179055565b7f8fe4c9f18420598a0f0a5c996b969714f39cc770f1900e60d2697139e137749b60009081526020527f8ba1484e8bf7939787444e92eb98a67eb881960295fd73460f6d5e6df6d34d1f55565b6001600460008360405160200180807f6461746153656e7457697468486173686900000000000000000000000000000081525060110182805190602001908083835b60208310614bf45780518252601f199092019160209182019101614bd5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614c575780518252601f199092019160209182019101614c38565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550610f3091508290506138d5565b60408051808201909152601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602082015260009060608315614e525781614cf68651615586565b866040516020018084805190602001908083835b60208310614d295780518252601f199092019160209182019101614d0a565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310614d715780518252601f199092019160209182019101614d52565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310614db95780518252601f199092019160209182019101614d9a565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310614e1e5780518252601f199092019160209182019101614dff565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250614ebe565b6040805190810160405280600381526020017f3130340000000000000000000000000000000000000000000000000000000000815250905081818660405160200180848051906020019080838360208310614d295780518252601f199092019160209182019101614d0a565b505092915050565b600080600080614ed585613486565b1515614ee057600080fd5b50505050601481015160348201516054830151606890930151919390929190565b600083111561302c576040805160248082018690528251808303909101815260449091018252602081018051600160e060020a03167f59d784640000000000000000000000000000000000000000000000000000000017815291518151600160a060020a03861693829180838360005b83811015614f89578181015183820152602001614f71565b50505050905090810190601f168015614fb65780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af49150501515614fd457600080fd5b60408051848152905182917f858abdcd5efcaebb936e8e8516f0cfe9a0ef5157ff99d16cdabb6db625be90d0919081900360200190a2505050565b30316118f1828261568d565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561508057600080fd5b505af1158015615094573d6000803e3d6000fd5b505050506040513d60208110156150aa57600080fd5b50519050613e0c600160a060020a038516848363ffffffff6156ee16565b604081015160001080156150e3575060408101516020820151115b80156150f3575060208101518151115b15156150fe57600080fd5b805160008051602061599583398151915260009081526020818152600080516020615ab583398151915292909255908201516000805160206159158339815191528252600080516020615a158339815191525560408201516000805160206159758339815191528252600080516020615a55833981519152557fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9082905b60200201516040518082815260200191505060405180910390a150565b80516020820151106151ca57600080fd5b8051600080516020615955833981519152600090815260208181526000805160206159f58339815191529290925590820151600080516020615a7583398151915282526000805160206158f5833981519152557f9bebf928b90863f24cc31f726a3a7545efd409f1dcf552301b1ee3710da70d3b90829061519c565b604c19811380156152575750604d81125b151561526257600080fd5b7f1e8ecaafaddea96ed9ac6d2642dcdfe1bebe58a930b1085842d8fc122b371ee560009081526020527fd5c78dd9468716ca9bb96be25d56436811b20aab3523a9904b12deef1cab239d55565b6000806152bb84614378565b9092509050600160a060020a03821615613e0c578083146152db57600080fd5b6152e76000808661549d565b613e0c612575846125696123b0565b61530381611d4f84611320565b6000808460405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310612e525780518252601f199092019160209182019101612e33565b6000612dc58261538a612901565b615783565b600083111561302c576040805160248082018690528251808303909101815260449091018252602081018051600160e060020a03167f054d46ec0000000000000000000000000000000000000000000000000000000017815291518151600160a060020a03861693829180838360005b838110156154175781810151838201526020016153ff565b50505050905090810190601f1680156154445780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561546257600080fd5b60408051848152905182917fa52d3c9cbc541772e4edd92e2e4e2a3865ab73630f25deed8a6c8de41ff0f65c919081900360200190a2505050565b82600260008360405160200180807f74784f75744f664c696d6974526563697069656e74000000000000000000000081525060150182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106155215780518252601f199092019160209182019101615502565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054600160a060020a031916600160a060020a0395909516949094179093555061302c91508390508261454c565b606060008082818515156155cf5760408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152945061200f565b8593505b83156155ea57600190920191600a840493506155d3565b826040519080825280601f01601f191660200182016040528015615618578160200160208202803883390190505b5091505060001982015b851561568457815160001982019160f860020a6030600a8a06010291849190811061564957fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a86049550615622565b50949350505050565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015156118f15780826156c261588a565b600160a060020a039091168152604051908190036020019082f0801580156133a9573d6000803e3d6000fd5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561575157600080fd5b505af1158015615765573d6000803e3d6000fd5b505050503d1561302c5760206000803e600051151561302c57600080fd5b6000811515615793575081612dc5565b60008213156157b7576157b083600a84900a63ffffffff6157ce16565b9050612dc5565b611d7b836000849003600a0a63ffffffff6157f716565b60008215156157df57506000612dc5565b508181028183828115156157ef57fe5b0414612dc557fe5b6000818381151561580457fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061584d57805160ff191683800117855561587a565b8280016001018555821561587a579182015b8281111561587a57825182559160200191906001019061585f565b50615886929150615899565b5090565b6040516021806158b483390190565b610d2691905b80821115615886576000815560010161589f5600608060405260405160208060218339810160405251600160a060020a038116ff00deb7f3adca07d6d1f708c1774389db532a2b2f18fd05a62b957e4089f4696ed5f8e983ee86e5e377e9e34c9131b266382c3f04113d20de077f9e12663c7a646b0f8803acad17c63ee38bf2de71e1888bc7a079a6f73658e274b08018bea4e29c779a349c5bee7817f04c960f525ee3e2f2516078c38c68a3149787976ee837e521dbcab260e413c20dc13c28b7db95e2b423d1135f42bb8b7d5214a92270d237bbb088c505d18e049d114c7c91f11724e69c55ad6c5397e2b929e68b41fa05d14a6a899679f26b73530d8cf1001e83b6f7702e04b6fdb98f3c62dc7e47e041a589d93e5e92f7e37e490c25f0e50f7f4aad7cc94b308a566553280967be38bcf1c155b21a14c4592b97825e495fbe0d2705fb46420018cac5bfa7a09c43fae517add938dbd083a16bae12238cd914fca0afc7a30edb55b1cd5c7f1823f1b0e4219de0f81379b4d8e60fe509315d071b56e7b732abaf193e74e0d15808b0951d0920ae0b8a761b32f3124efb075f427dd6ca669e88ae7747fec9fd1ad688699f328df5c48c6b6e11d97548adc824ba0c99103ec09830fa5d53a179984085e6eaa0c0ed44c192c86d1cc1ba51340b032c2766b4a2b0041031de13c46dd7104888d5d76793c705b076d97d490f0c1e5a620caae2c4973213dc37ef69a1be2a5ec0701ab29a5cca988aee50edccdd61c5bcaa7ad4b29a03b7ee50f298ceccfe14cc4ea165627a7a7230582037af5de22b32af9e7890df507cb968992374e69329f25f143978115918f7aca70029
🤖 Code Reader Beta
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in XDAI
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

