UNPKG

@dolomite-exchange/dolomite-margin

Version:

Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol

5 lines 1.85 MB
{ "contractName": "OperationImpl", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"dYdX * Logic for processing actions\",\"methods\":{},\"title\":\"OperationImpl\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/OperationImpl.sol\":\"OperationImpl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/CallImpl.sol\":{\"keccak256\":\"0x868f8c2ed6dfdf4714505719fc12839df3010f4e83d14daa3b068013e4bd8cca\",\"urls\":[\"bzz-raw://1ad15cf77619f7f2830de1dc1e2278fd4184da7100937b5ad46903a08b1e4e94\",\"dweb:/ipfs/QmYaGB1xqfDLHbWQRASWR6Yt7CxKM2da3QkCU9NZwb1fhB\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/DepositImpl.sol\":{\"keccak256\":\"0x07eaed8d56d7b57a9b0ee9a76918a087d08ae10c999ffc12c7368ab5e8551fb4\",\"urls\":[\"bzz-raw://19f5a6045092355b4a2eca6a67118a737b2ff66f95e8ba816535c719b0479407\",\"dweb:/ipfs/QmZQVZKSCuk6C437jwnx8PX51xcDEZeM1aTJ5YcaViNQw4\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/LiquidateOrVaporizeImpl.sol\":{\"keccak256\":\"0xc05fd822f0991a652f6c9bc0328370bb15ff5eb3ba89cbc1d9140e4835004e7a\",\"urls\":[\"bzz-raw://842e9c896073941e69fbdc32b21b50f873a8bb57c38c810ef70e7b64ee0c3ff7\",\"dweb:/ipfs/QmRBY47DUJQ3KQ7yKvCimv6vstkk6i3fFUQPtWXfG2mXHg\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/OperationImpl.sol\":{\"keccak256\":\"0xbdd0cdd00dd22d00e26fe3bfea01bfe67ebfa960e50cfdd205dce6bbd988716e\",\"urls\":[\"bzz-raw://c3aa4b12cc57bb1766b97041440b8970f0f2d477f0333609f71e3a7ba864624b\",\"dweb:/ipfs/QmSCmEcnfEqPduWKNdSeNz5DVVXePDRrDQen7jUhBpHb1X\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/TradeImpl.sol\":{\"keccak256\":\"0xa4b8a68b42ce6d5294832f77f30a289f6068c89b2cb3601c2894bf62cf597e91\",\"urls\":[\"bzz-raw://c0474a10ef5e0376ba068e2773e9f7807ded4fd787a6e3db3948288bd43c6fc9\",\"dweb:/ipfs/QmSxWWkbB2Gem27V1Kpbevy8eurr9e1jeA4JaeRZ7sRwsr\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/TransferImpl.sol\":{\"keccak256\":\"0x21ca9d8697802f9e023ecabbce9e9c544c3dd1d6040f5eefb3466e672563b280\",\"urls\":[\"bzz-raw://3b773cb3b8334005070518d6044b555cec9ce79eb99fcc2cfb9d577ce6bf6def\",\"dweb:/ipfs/QmSnMbrerGz8h25Ms2K6pDNpaj8iVUCAGSjLhh6SqHU6zC\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/WithdrawalImpl.sol\":{\"keccak256\":\"0x74c7497bc89d75c0719f98181aed2a63719f6e1d9235679c0e6b5582a772bf8b\",\"urls\":[\"bzz-raw://dcf6492d9b36ded7e109823c126875f0f792c56b2138b088d1f12532e29b8957\",\"dweb:/ipfs/QmSQLsgjUgKqEYA975jV9WjUAEH342F9wtASmmBnE7NjE7\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IAccountRiskOverrideSetter.sol\":{\"keccak256\":\"0x5b9fde139ddfdaae7b650b3c3f6699e0e44605f0d9d3daadc1622eb06ad4c3f8\",\"urls\":[\"bzz-raw://2dfd5af24b6de63f94519c99fd8777a264d7cd11266fa2d525c7d72d96a9c7cf\",\"dweb:/ipfs/QmPg9fjhbnmBayZMh6yTG79xsK1PWSoAHA5pfwSXfnKKjF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IAutoTrader.sol\":{\"keccak256\":\"0x123b5d92696b180c60a838d3117a9fd571851911f37c78212969015e169e14fc\",\"urls\":[\"bzz-raw://cd5d9aeb5b4e3de18ac8a51a3b2320f3e7a247b959defa9c289ee6aaf2bfc348\",\"dweb:/ipfs/QmPdjeya5BDYHEUMuz6jiwZrKJa8p2uN1vumLAJ7nhG5cN\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/ICallee.sol\":{\"keccak256\":\"0x0b65209369307041e67c28634fc17a19e953199ac42a88198b76578f7fa9b0f8\",\"urls\":[\"bzz-raw://46618851882c2bc5a6212bb0a8ad095e0f38049f24ecf404163ad6b493c728a1\",\"dweb:/ipfs/QmRx4VabTaXTGSyMt8NCTZ7nMiWCHfrvqZjRaKNRir3zEe\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0x74799c3fac16738be41e270a70d3f7ad4f75d1dc7e5d8c58f0fe4c6128345112\",\"urls\":[\"bzz-raw://d9602af1001189d199736d17266d5fb34a32f71cd05fbcf4c0f97c0b3a642eee\",\"dweb:/ipfs/QmPto2DkZ1nKqicBMdMkaek7kGSSXqSKnf697h5zuthvsy\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IExternalCallback.sol\":{\"keccak256\":\"0xd8134eac006b0a59b71cbcca82dfce7ce092a57c13a8383ebf0e8bc90c0df3e7\",\"urls\":[\"bzz-raw://ccead8bdcc71402ae7b1d8fb9bc1527081a5eb14f98a5157f5c6f27f21f8ad31\",\"dweb:/ipfs/QmdnDvTiX3EDm93ahjnZabNNgoyQzGtKpfbQUNtJe7t8Ts\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IOracleSentinel.sol\":{\"keccak256\":\"0xa94499fda55ef112640daed2cb1d06062e72c51c7b925c323b4e0ffa9b456ce5\",\"urls\":[\"bzz-raw://18b4a16acac577590a57f34f7ec6583e3cb35f575c948abb928b308d29cac1ab\",\"dweb:/ipfs/QmR1jLkzj6w7SjrdZ7GVW4V2vofSdMJwzjTqKpeUKABvxu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x7b2fcf441c034952dd042b6c8b20b148359db771e7c9ac07d06369560a9f0301\",\"urls\":[\"bzz-raw://84665ee4a780360fe6160d197ba98f0bf0ab0d7c6ad87bfed6226bf2f88d8d30\",\"dweb:/ipfs/QmRDfRdAd8hSXeu4SAeeYKkKoXBhStu7n4uReYBce2JD5Z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2dd25e648c65f5d9e4949a57938e29ddc4c9dddefd74a9964aeef\",\"urls\":[\"bzz-raw://67e5a04ed4055faafbc100d6ccca9c54448ed378a1a8c71171562edda7bcbf7c\",\"dweb:/ipfs/QmYRikK3Xbgiq3UBJkgoo2zNUSSrShVabpRHmQj6iQHhrc\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0xe57c80a7621a77fcb2acb9f883fb5248e71a6dce03bc2db56df0db3fee332950\",\"urls\":[\"bzz-raw://28e221c04629674490b9a0041d4f9a5f15e669dc0cc192a5df6e2c701c36369f\",\"dweb:/ipfs/QmaL3oh8c7v9cx91pB175pyCEuzxnhNTab4UxmBMsDYfUx\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x41a3460e34b7b8635d936e35e6568ceb5354b638f53b884530e0d4875fa0f151\",\"urls\":[\"bzz-raw://d1a5ba866ee95d455afe5075dadd91fc71c2806371f2c1b358a1f67c632bb0df\",\"dweb:/ipfs/QmW4qCjmsG8J3UJv97GwDLDM7wt1K4yLDKAwzWMY7TFYi5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Events.sol\":{\"keccak256\":\"0x2345dcc1ebf53a3d5449dab083b1fb90b5362dae692f8ff3ad00078862894e9b\",\"urls\":[\"bzz-raw://ebd34c557c06caf0696774844f0ca9746412ecc452bdd978b3bca0fd71aefbde\",\"dweb:/ipfs/QmcwXXKgv77DqfhxABRg85WR6RBPTLmge5vJGp99o9kFf8\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/ExcessivelySafeCall.sol\":{\"keccak256\":\"0x9369468538c371057c907f84d438cec6b47673711fe289cc3779f8671314e06b\",\"urls\":[\"bzz-raw://0f59a670f4bc5cf1bd3dd58bdf6c31723d9d84d9da7d9283d6860cdf5f33b7c5\",\"dweb:/ipfs/QmTGuvD5WQD2z56GH35HoPJivKPeeEpbXidJVcbXZyT23C\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Exchange.sol\":{\"keccak256\":\"0x5952f2f78aa0adb88980d9eeec5626fecbec79103038841c3ad9e4f2c4ac556b\",\"urls\":[\"bzz-raw://2a358a8370fa8abba24db2a3337f5b397e51a686d84facaf70ced9cc32d65235\",\"dweb:/ipfs/QmY4vPNq3SMu176LL4XRxFPtDQf8QEztQNxerWvmoEALsR\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/SafeExternalCallback.sol\":{\"keccak256\":\"0xd308a1ab320de20780f7041ea5efd9568f8692e1ed6cf512b967ab63c791a8ff\",\"urls\":[\"bzz-raw://4a904b056f094be598396a90a5ba5297213934cfc2816848a494469ce249edd4\",\"dweb:/ipfs/QmcmeezMFPntDLNS1EY4j5THgRJUeyscgLv55WwxbFoiaY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9c27f3cd52af28c9b6bca18097b1793f114d08284d78417467d0d05f67e9e2a9\",\"urls\":[\"bzz-raw://d1ed0e7a7f76d59f30572996d4e164ab8fb5b2ec4bfca127983f9e936b904813\",\"dweb:/ipfs/QmePVYbgrY8Yw3Vf76pmEvE9pX916Jaa9we4kjM8tGM4J1\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0x095b5f8eb3665f6e246200311efc8a654fa3e90f9a1a522e27a4d089e8ab3917\",\"urls\":[\"bzz-raw://5db812b752a03d601d424e6e21be38153477082af0acf51b5c98eefa5553ed18\",\"dweb:/ipfs/QmbE549QUXYTurpx8hSMLBJvuBpfYqyNE6FBCgHJDY8PLf\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"@openzeppelin/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]}},\"version\":1}", "bytecode": "0x614c3a610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063bd76ecfd1461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004614073565b61005c565b005b6100646100ab565b61006e82826100e4565b6060806100796139a3565b610084868686610260565b92509250925061009686868684610610565b6100a38686858585610acb565b505050505050565b7f91b01baeee3a24b590d112613814d86801005c7ef9353e7fc1eaeaf33ccf83b0336040516100da9190614844565b60405180910390a1565b6101348251600014157f4f7065726174696f6e496d706c000000000000000000000000000000000000007f43616e6e6f742068617665207a65726f206163636f756e747300000000000000611137565b6101848151600014157f4f7065726174696f6e496d706c000000000000000000000000000000000000007f43616e6e6f742068617665207a65726f20616374696f6e730000000000000000611137565b815160005b8181101561025a57600181015b82811015610251576102496101d18684815181106101b057fe5b60200260200101518784815181106101c457fe5b60200260200101516111ed565b157f4f7065726174696f6e496d706c000000000000000000000000000000000000007f43616e6e6f74206475706c6963617465206163636f756e74730000000000000088868151811061022057fe5b60200260200101516000015189878151811061023857fe5b60200260200101516020015161122b565b600101610196565b50600101610189565b50505050565b60608061026b6139a3565b60608551604051908082528060200260200182016040528015610298578160200160208202803883390190505b509050606086516040519080825280602002602001820160405280156102c8578160200160208202803883390190505b5090506102d36139a3565b88546102de906112f6565b875190915060005b8181101561051e576102f66139cb565b89828151811061030257fe5b6020026020010151905060008160000151905060006103208261135e565b9050600061032d836113cb565b9050600081600281111561033d57fe5b1461043c576103998460c00151856020015114157f4f7065726174696f6e496d706c000000000000000000000000000000000000007f4475706c6963617465206163636f756e747320696e20616374696f6e0000000088611439565b60018160028111156103a757fe5b14156103d4576001898560c00151815181106103bf57fe5b9115156020928302919091019091015261043c565b61043c898560c00151815181106103e757fe5b6020026020010151157f4f7065726174696f6e496d706c000000000000000000000000000000000000007f5265717569726573206e6f6e2d7072696d617279206163636f756e74000000008760c00151611439565b60018985602001518151811061044e57fe5b91151560209283029190910190910152600182600281111561046c57fe5b1415610486576104818f8886606001516114d1565b61050f565b600282600281111561049457fe5b141561050f576104f18460800151856060015114157f4f7065726174696f6e496d706c000000000000000000000000000000000000007f4475706c6963617465206d61726b65747320696e20616374696f6e000000000088611439565b6105008f8886606001516114d1565b61050f8f8886608001516114d1565b505050508060010190506102e6565b50885160005b818110156105b15760606105548c838151811061053d57fe5b60200260200101518e61150e90919063ffffffff16565b90506000815190508087848151811061056957fe5b60200260200101818152505060005b818110156105a65761059e8f8885848151811061059157fe5b60200260200101516114d1565b600101610578565b505050600101610524565b506105c48b84600063ffffffff61155316565b60006105cf8461175c565b905060005b818110156105fc576105f46105ef868363ffffffff61176116565b6117dd565b6001016105d4565b50949b939a50919850919650505050505050565b815160005b818110156100a3576106256139cb565b84828151811061063157fe5b60209081029190910101518051909150600081600881111561064f57fe5b14156106f45761065d613a2a565b610667888461181d565b905073__DepositImpl___________________________63f3668ed08a8361069c85604001518b61188790919063ffffffff16565b60a001516040518463ffffffff1660e01b81526004016106be93929190614932565b60006040518083038186803b1580156106d657600080fd5b505af41580156106ea573d6000803e3d6000fd5b5050505050610ac1565b600181600881111561070257fe5b141561074f57610710613a2a565b61071a888461181d565b905073__WithdrawalImpl________________________63a134923a8a8361069c85604001518b61188790919063ffffffff16565b600281600881111561075d57fe5b14156107cc5761076b613a5e565b61077588846118f4565b905073__TransferImpl__________________________631183877e8a836107aa85606001518b61188790919063ffffffff16565b60a001516040518463ffffffff1660e01b81526004016106be939291906149ad565b60038160088111156107da57fe5b1415610864576107e8613a98565b6107f2888461195b565b905073__TradeImpl_____________________________63ebee3c7b8a8361082785606001518b61188790919063ffffffff16565b60a001516040860151610841908c9063ffffffff61188716565b60a001516040518563ffffffff1660e01b81526004016106be94939291906148d5565b600481600881111561087257fe5b14156108d957610880613a98565b61088a888461195b565b905073__TradeImpl_____________________________630f3449338a836108bf85604001518b61188790919063ffffffff16565b60a001516060860151610841908c9063ffffffff61188716565b60058160088111156108e757fe5b1415610972576108f5613af0565b6108ff88846119d9565b905073__TradeImpl_____________________________63ce0172758a8361093485608001518b61188790919063ffffffff16565b60a0015161094f8660a001518c61188790919063ffffffff16565b60a001516040518563ffffffff1660e01b81526004016106be949392919061498c565b600681600881111561098057fe5b14156109ff5773__LiquidateOrVaporizeImpl_______________637b846b6289876109ac8b87611a9b565b6040518463ffffffff1660e01b81526004016109ca9392919061495c565b60006040518083038186803b1580156109e257600080fd5b505af41580156109f6573d6000803e3d6000fd5b50505050610ac1565b6007816008811115610a0d57fe5b1415610a395773__LiquidateOrVaporizeImpl_______________63b0909ea089876109ac8b87611a9b565b6008816008811115610a4757fe5b14610a4e57fe5b73__CallImpl______________________________63907d6b9089610a738a86611b0c565b6040518363ffffffff1660e01b8152600401610a90929190614912565b60006040518083038186803b158015610aa857600080fd5b505af4158015610abc573d6000803e3d6000fd5b505050505b5050600101610615565b600c850154604080517f49aa2e81000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916349aa2e81916004808301926020929190829003018186803b158015610b3857600080fd5b505afa158015610b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b709190810190613fb5565b90506000610b7d8361175c565b905060005b81811015611019576000610b9c858363ffffffff61176116565b519050610ba7613b14565b610bb78a8363ffffffff611b6c16565b9050610bc1613b14565b610bc9613b14565b610be683610bdd8a8863ffffffff61176116565b60a00151611bcc565b91509150610bf2613b14565b610c028d8663ffffffff611c7616565b9050610c0c613b14565b610c1c8e8763ffffffff611cb416565b9050610c2e8a8863ffffffff61176116565b6040015115610cc657610cc1610c4a8b8963ffffffff61176116565b606001516fffffffffffffffffffffffffffffffff1686600001516fffffffffffffffffffffffffffffffff1611157f4f7065726174696f6e496d706c000000000000000000000000000000000000007f4d61726b657420697320636c6f73696e6700000000000000000000000000000089611439565b610e37565b88610d5557610cc1610cde8b8963ffffffff61176116565b606001516fffffffffffffffffffffffffffffffff1686600001516fffffffffffffffffffffffffffffffff1611157f4f7065726174696f6e496d706c000000000000000000000000000000000000007f426f72726f77696e672069732063757272656e746c792064697361626c65640089611439565b602082015115610e3757610d67613b14565b604080518082019091526000815260208101610d898d8b63ffffffff61176116565b606001516fffffffffffffffffffffffffffffffff1690529050610dab613b14565b610dc882610dbf8e8c63ffffffff61176116565b60a00151611cf2565b9050610e3484602001518660200151111580610dec57508160200151866020015111155b7f4f7065726174696f6e496d706c000000000000000000000000000000000000007f546f74616c20626f72726f772065786365656473206d617820626f72726f77008b611439565b50505b602081015115610f1057610e49613b14565b604080518082019091526001815260208101610e6b8d8b63ffffffff61176116565b608001516fffffffffffffffffffffffffffffffff1690529050610e8d613b14565b610ea182610dbf8e8c63ffffffff61176116565b9050610f0d83602001518760200151111580610ec557508160200151876020015111155b7f4f7065726174696f6e496d706c000000000000000000000000000000000000007f546f74616c20737570706c792065786365656473206d617820737570706c79008b611439565b50505b610f18613b2b565b8e600101600088815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8177dcf610f7f8a8e61176190919063ffffffff16565b60200151866020015188602001516040518463ffffffff1660e01b8152600401610fab93929190614852565b60206040518083038186803b158015610fc357600080fd5b505afa158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ffb9190810190614055565b90506110078782611da7565b50505050505050806001019050610b82565b50855160005b8181101561112c5761102f613b14565b88828151811061103b57fe5b602002602001015190506110638a8289858151811061105657fe5b6020026020010151611de3565b87828151811061106f57fe5b60200260200101516110815750611124565b60006110968b8389600163ffffffff611e5e16565b90506110ed817f4f7065726174696f6e496d706c000000000000000000000000000000000000007f556e646572636f6c6c61746572616c697a6564206163636f756e7400000000008560000151866020015161122b565b60006110ff8c8463ffffffff611f7516565b600281111561110a57fe5b14611121576111218b83600063ffffffff611fb416565b50505b60010161101f565b505050505050505050565b826111e85761114582612029565b7f3a2000000000000000000000000000000000000000000000000000000000000061116f83612029565b60405160200161118193929190614734565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526111df9160040161487a565b60405180910390fd5b505050565b8051825160009173ffffffffffffffffffffffffffffffffffffffff9182169116148015611222575081602001518360200151145b90505b92915050565b846112ef5761123984612029565b7f3a2000000000000000000000000000000000000000000000000000000000000061126385612029565b7f203c00000000000000000000000000000000000000000000000000000000000061128d86612101565b7f2c200000000000000000000000000000000000000000000000000000000000006112b787612278565b60405161118197969594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016147ba565b5050505050565b6112fe6139a3565b6040805160006080820181815260a0830190935290918291611336565b611323613b3e565b81526020019060019003908161131b5790505b5081526020016000815260200161134c84612387565b8152602001600081525090505b919050565b60008082600881111561136d57fe5b14806113845750600182600881111561138257fe5b145b8061139a5750600282600881111561139857fe5b145b156113a757506001611359565b60088260088111156113b557fe5b14156113c357506000611359565b506002919050565b600060028260088111156113db57fe5b14806113f2575060058260088111156113f057fe5b145b156113ff57506001611359565b600682600881111561140d57fe5b14806114245750600782600881111561142257fe5b145b1561143157506002611359565b506000919050565b8361025a5761144783612029565b7f3a2000000000000000000000000000000000000000000000000000000000000061147184612029565b7f203c00000000000000000000000000000000000000000000000000000000000061149b85612278565b6040516111819594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161475c565b6114e1828263ffffffff6123c116565b6111e8576114f5828263ffffffff6123d116565b6111e881611509858263ffffffff61243b16565b6125a2565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260038301602090815260408083208285015184529091529020606090611222906001016125d2565b816060015160405190808252806020026020018201604052801561159157816020015b61157e613b3e565b8152602001906001900390816115765790505b50825260408201515160005b8181101561174a576000846040015182815181106115b757fe5b602002602001015190505b801561172b5760006115d38261262e565b905060006115e18483612805565b905060006115f5898363ffffffff61281016565b90506115ff613b14565b61160f8a8463ffffffff611b6c16565b9050611619613b87565b6116298b8563ffffffff61283c16565b90506040518060e001604052808581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018c600101600087815260200190815260200160002060000160149054906101000a900460ff161515815260200183600001516fffffffffffffffffffffffffffffffff16815260200183602001516fffffffffffffffffffffffffffffffff1681526020018a6116c857826116d9565b6116d98d878563ffffffff6128c816565b81526020016116ef8d878763ffffffff61295816565b90528a5160208c018051600181019091528151811061170a57fe5b602002602001018190525061171f8686612a90565b955050505050506115c2565b846060015185602001511415611741575061174a565b5060010161159d565b50826020015183606001511461025a57fe5b515190565b611769613b3e565b8251516117bf90808410907f4361636865000000000000000000000000000000000000000000000000000000907f696e76616c696420696e64657800000000000000000000000000000000000000908690612a99565b82518051839081106117cd57fe5b6020026020010151905092915050565b805160c08201516040517f223e16b9e4703ea2acd14a8caa0fcbbf4a42d3e8b7a33234e841bd1808ee9ec091611812916148c7565b60405180910390a250565b611825613a2a565b6040518060800160405280836040015181526020018484602001518151811061184a57fe5b60200260200101518152602001836060015181526020018360a0015173ffffffffffffffffffffffffffffffffffffffff16815250905092915050565b61188f613b3e565b8251516118df9015157f43616368650000000000000000000000000000000000000000000000000000007f6e6f7420696e697469616c697a65640000000000000000000000000000000000611137565b61122283600001516000856060015185612afb565b6118fc613a5e565b6040518060800160405280836040015181526020018484602001518151811061192157fe5b60200260200101518152602001848460c001518151811061193e57fe5b602002602001015181526020018360600151815250905092915050565b611963613a98565b6040518060c00160405280836040015181526020018484602001518151811061198857fe5b6020026020010151815260200183606001518152602001836080015181526020018360a0015173ffffffffffffffffffffffffffffffffffffffff1681526020018360e00151815250905092915050565b6119e1613af0565b600060608360e001518060200190516119fd9190810190613fd3565b9150915060405180610100016040528085604001518152602001831515815260200186866020015181518110611a2f57fe5b60200260200101518152602001868660c0015181518110611a4c57fe5b6020026020010151815260200185606001518152602001856080015181526020018560a0015173ffffffffffffffffffffffffffffffffffffffff168152602001828152509250505092915050565b611aa3613ba7565b6040518060a001604052808360400151815260200184846020015181518110611ac857fe5b60200260200101518152602001848460c0015181518110611ae557fe5b60200260200101518152602001836060015181526020018360800151815250905092915050565b611b14613be8565b604051806060016040528084846020015181518110611b2f57fe5b602002602001015181526020018360a0015173ffffffffffffffffffffffffffffffffffffffff1681526020018360e00151815250905092915050565b611b74613b14565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b611bd4613b14565b611bdc613b14565b611be4613b14565b5060408051808201909152600181526020858101516fffffffffffffffffffffffffffffffff1690820152611c17613b14565b50604080518082019091526000815285516fffffffffffffffffffffffffffffffff166020820152611c47613b14565b611c518387611cf2565b9050611c5b613b14565b611c658388611cf2565b9195509093505050505b9250929050565b611c7e613b14565b50600090815260019190910160209081526040918290208251808401909352600981015460ff1615158352600a01549082015290565b611cbc613b14565b50600090815260019190910160209081526040918290208251808401909352600781015460ff1615158352600801549082015290565b611cfa613b14565b602083015183516fffffffffffffffffffffffffffffffff9091169015611d6857604080518082019091526001815260208481015190820190611d5d9084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff612bb616565b815250915050611225565b604080518082019091526000815283516020820190611d5d9084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff612bb616565b817f97c9b8866705111329b3d1b18589bf0add9e1f1c8a1ce4a9fbf3bd32dc2e6d4182604051611dd791906148c7565b60405180910390a25050565b6000611df5848463ffffffff612c5616565b905061025a8282111580611e0d5750600b8501548211155b7f4f7065726174696f6e496d706c000000000000000000000000000000000000007f546f6f206d616e79206e6f6e2d7a65726f2062616c616e6365730000000000008660000151876020015161122b565b6000611e70858563ffffffff612c9816565b611e7c57506001611f6d565b611e84613b2b565b611e8e8686612cdf565b509050611e99613b2b565b611ea1613b2b565b611eb588888860018763ffffffff612e6716565b915091508415611f1f57600a8801548151885160208a0151611f1f9390921015917f53746f7261676500000000000000000000000000000000000000000000000000917f426f72726f772076616c756520746f6f206c6f770000000000000000000000009161122b565b8251611f3a5760408051602081019091526007890154815292505b6000611f4a826000015185612fef565b8251909150611f5f908263ffffffff61300816565b836000015110159450505050505b949350505050565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526003929092016020908152604080842092820151845291905290205460ff1690565b815173ffffffffffffffffffffffffffffffffffffffff1660009081526003840160209081526040808320828601518452909152902080548291907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600281111561201f57fe5b0217905550505050565b6060808260405160200161203d919061471f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156120e65781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101908290829081106120a957fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156120e15760010181529050611359565b612070565b5060408051600080825260208201909252905b509392505050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061214d57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b8160018151811061218e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b60148110156120f957600281026121d9600f8516613047565b8382602903815181106121e857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061222a600f8516613047565b83826028038151811061223957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016121c0565b6060816122b9575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152611359565b8160005b81156122d157600101600a820491506122bd565b6060816040519080825280601f01601f1916602001820160405280156122fe576020820181803883390190505b508593509050815b801561237e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b82828151811061234457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350612306565b50949350505050565b606060016101008304016040519080825280602002602001820160405280156123ba578160200160208202803883390190505b5092915050565b6000611222836040015183613069565b81515161242090157f43616368650000000000000000000000000000000000000000000000000000007f616c726561647920696e697469616c697a656400000000000000000000000000611137565b61242e8260400151826130a7565b5060600180516001019052565b612443613b87565b61244b613b87565b61245b848463ffffffff61283c16565b90506124656130dd565b63ffffffff16816040015163ffffffff161415612483579050611225565b61249484848363ffffffff6128c816565b6000938452600194909401602090815260409384902085516002909101805487840151978701517fffffffffffffffffffffffffffffffffffff00000000000000000000000000009091166dffffffffffffffffffffffffffff938416177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000009884168902177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff9283168102919091179283905587516060810189528385168152988304909316938801939093520416928401929092525090919050565b817f247e2f5b851dd23ef755d9ad527e801ee202c4097acd70c21e82dc5602cdd87982604051611dd791906148ab565b60608160000180548060200260200160405190810160405280929190818152602001828054801561262257602002820191906000526020600020905b81548152602001906001019080831161260e575b50505050509050919050565b600060ff6fffffffffffffffffffffffffffffffff831615612671577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001612679565b608083901c92505b67ffffffffffffffff8316156126b0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0016126b8565b604083901c92505b63ffffffff8316156126eb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016126f3565b602083901c92505b61ffff831615612724577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00161272c565b601083901c92505b60ff83161561275c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff801612764565b600883901c92505b600f831615612794577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0161279c565b600483901c92505b60038316156127cc577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016127d4565b600283901c92505b6001831615611225577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6000908152600191909101602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b612844613b87565b506000908152600191909101602090815260409182902082516060810184526002909101546dffffffffffffffffffffffffffff80821683526e010000000000000000000000000000820416928201929092527c010000000000000000000000000000000000000000000000000000000090910463ffffffff169181019190915290565b6128d0613b87565b6128d8613b2b565b6128e985858563ffffffff6130ed16565b90506128f3613b2b565b5060008481526001860160209081526040918290208251918201909252600b9091015480825261293157506040805160208101909152600986015481525b61294c8483612946898963ffffffff611b6c16565b84613243565b925050505b9392505050565b612960613b2b565b600083815260018501602052604090206003015473ffffffffffffffffffffffffffffffffffffffff16612992613b2b565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906341976e09906129e4908790600401614836565b60206040518083038186803b1580156129fc57600080fd5b505afa158015612a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a349190810190614055565b8051909150612a879015157f53746f72616765000000000000000000000000000000000000000000000000007f50726963652063616e6e6f74206265207a65726f00000000000000000000000088611439565b95945050505050565b6001901b191690565b846112ef57612aa784612029565b7f3a20000000000000000000000000000000000000000000000000000000000000612ad185612029565b7f203c00000000000000000000000000000000000000000000000000000000000061128d86612278565b612b03613b3e565b838303801580612b355750806001148015612b35575082868681518110612b2657fe5b60200260200101516000015114155b15612b3c57fe5b6000600182901c860190506000878281518110612b5557fe5b602002602001015160000151905080851015612b8157612b7788888488612afb565b9350505050611f6d565b80851115612b9857612b7788836001018888612afb565b878281518110612ba457fe5b60200260200101519350505050611f6d565b6000831580612bc3575082155b15612bda57612bd36000836133a7565b9050612951565b6000612bec858563ffffffff6133e916565b9050612a87612c236001612c176002612c0b888463ffffffff61343d16565b9063ffffffff6133a716565b9063ffffffff61300816565b612c33838663ffffffff61347f16565b1015612c40576000612c43565b60015b60ff16612c17838663ffffffff6133a716565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260038301602090815260408083208285015184529091528120611222906001016134c1565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260039290920160209081526040808420928201518452919052902054610100900463ffffffff1690565b612ce7613b2b565b612cef613b2b565b825173ffffffffffffffffffffffffffffffffffffffff9081166000908152600f86016020526040902054168015612dd8576040517fca23542000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063ca23542090612d739087906004016148b9565b604080518083038186803b158015612d8a57600080fd5b505afa158015612d9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612dc29190810190614025565b9093509150612dd28584846134c5565b50611c6f565b50600e84015473ffffffffffffffffffffffffffffffffffffffff168015612e4c576040517fca23542000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063ca23542090612d739087906004016148b9565b612e54613650565b9250612e5e613650565b9150611c6f9050565b612e6f613b2b565b612e77613b2b565b612e7f613b2b565b612e87613b2b565b858015612e9357508451155b95506000612ea08861175c565b905060005b81811015612fdf57612eb5613b14565b612eed8b612ec98c8563ffffffff61176116565b51612eda8d8663ffffffff61176116565b60a001518f92919063ffffffff61366b16565b9050612ef8816136c0565b15612f035750612fd7565b612f0b613b2b565b612f136136c8565b90508915612f5e57612f5b60018e016000612f348e8763ffffffff61176116565b518152602080820192909252604090810160002081519283019091526005015481526136ea565b90505b6000612f89612f738d8663ffffffff61176116565b60c001515160208501519063ffffffff6133e916565b835190915015612fb557612fae612fa08284613721565b88519063ffffffff61300816565b8752612fd3565b612fd0612fc28284612fef565b87519063ffffffff61300816565b86525b5050505b600101612ea5565b5091999098509650505050505050565b6000611222838360000151670de0b6b3a7640000613736565b600082820183811015611222576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df9061488b565b6000600a82101561305f57506030810160f81b611359565b5060570160f81b90565b600080610100830490506000610100840690506000816001901b86848151811061308f57fe5b60209081029190910101511615159695505050505050565b815161010082049060ff8316906001821b908590849081106130c557fe5b60200260200101818151179150818152505050505050565b60006130e84261374c565b905090565b6130f5613b2b565b6130fd613b14565b61310d858563ffffffff611b6c16565b9050613117613b14565b61311f613b14565b6131298386611bcc565b91509150613135613b2b565b600087815260018901602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1663e8177dcf6131748a8a63ffffffff61281016565b846020015186602001516040518463ffffffff1660e01b815260040161319c93929190614852565b60206040518083038186803b1580156131b457600080fd5b505afa1580156131c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131ec9190810190614055565b601189015481519192506801000000000000000090046bffffffffffffffffffffffff1610156132385760118801546801000000000000000090046bffffffffffffffffffffffff1681525b979650505050505050565b61324b613b87565b613253613b14565b61325b613b14565b6132658588611bcc565b9150915060006132736130dd565b905060006132ab61329d8a6040015163ffffffff168463ffffffff1661343d90919063ffffffff16565b89519063ffffffff6133e916565b905060006132b8856136c0565b156132c5575060006132f7565b6132cf8288612fef565b90508460200151846020015110156132f7576132f48185602001518760200151613736565b90505b8181111561330157fe5b60408051606081019091528a5181906133409061333b906dffffffffffffffffffffffffffff16612c178188670de0b6b3a7640000613736565b6137a3565b6dffffffffffffffffffffffffffff908116825260208d8101519201916133799161333b9116612c178187670de0b6b3a7640000613736565b6dffffffffffffffffffffffffffff1681526020018463ffffffff1681525095505050505050949350505050565b600061122283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613804565b6000826133f857506000611225565b8282028284828161340557fe5b0414611222576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df9061489b565b600061122283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613855565b600061122283836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f000000000000000081525061389b565b5490565b601083015482516135239167ffffffffffffffff1610157f53746f72616765000000000000000000000000000000000000000000000000007f526174696f20746f6f2068696768000000000000000000000000000000000000611137565b6010830154815161358d9168010000000000000000900467ffffffffffffffff1610157f53746f72616765000000000000000000000000000000000000000000000000007f53707265616420746f6f20686967680000000000000000000000000000000000611137565b81511580159061359d5750805115155b156135f757815181516135f291117f53746f72616765000000000000000000000000000000000000000000000000007f5370726561642063616e6e6f74206265203e3d20726174696f00000000000000611137565b6111e8565b80516111e89015801561360957508251155b7f53746f72616765000000000000000000000000000000000000000000000000007f53707265616420616e6420726174696f206d75737420626f7468206265203000611137565b613658613b2b565b5060408051602081019091526000815290565b613673613b14565b61367b613b14565b61368c86868663ffffffff6138e916565b905061369781613969565b156136ac576136a4613983565b915050611f6d565b6136b68184611cf2565b9695505050505050565b602001511590565b6136d0613b2b565b506040805160208101909152670de0b6b3a7640000815290565b6136f2613b2b565b60408051602081019091528251819061371990670de0b6b3a764000063ffffffff61300816565b905292915050565b600061122283670de0b6b3a764000084600001515b6000611f6d82612c0b868663ffffffff6133e916565b60008161122563ffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e743332000000000000000000000084611439565b6000816112256dffffffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e743131320000000000000000000084611439565b6000818361383f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df919061487a565b50600083858161384b57fe5b0495945050505050565b60008184841115613893576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df919061487a565b505050900390565b600081836138d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df919061487a565b508284816138e057fe5b06949350505050565b6138f1613b14565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526003938401602090815260408083209482015183529381528382209282529190930181529181902081518083019092525460ff81161515825261010090046fffffffffffffffffffffffffffffffff169181019190915290565b602001516fffffffffffffffffffffffffffffffff161590565b61398b613b14565b50604080518082019091526000808252602082015290565b6040518060800160405280606081526020016000815260200160608152602001600081525090565b6040805161010081018252600080825260208201529081016139eb613c0f565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b6040518060800160405280613a3d613c0f565b8152602001613a4a613b14565b815260006020820181905260409091015290565b6040518060800160405280613a71613c0f565b8152602001613a7e613b14565b8152602001613a8b613b14565b8152602001600081525090565b6040518060c00160405280613aab613c0f565b8152602001613ab8613b14565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b604051806101000160405280613b04613c0f565b815260006020820152604001613aab5b604080518082019091526000808252602082015290565b6040518060200160405280600081525090565b6040805160e08101825260008082526020820181905291810182905260608101829052608081019190915260a08101613b75613b87565b8152602001613b82613b2b565b905290565b604080516060810182526000808252602082018190529181019190915290565b6040518060a00160405280613bba613c0f565b8152602001613bc7613b14565b8152602001613bd4613b14565b815260200160008152602001600081525090565b6040518060600160405280613bfb613b14565b815260006020820152606060409091015290565b60408051608081019091526000808252602082019081526020016000613a8b565b803561122581614bb7565b600082601f830112613c4c57600080fd5b8135613c5f613c5a826149fe565b6149d7565b81815260209384019390925082018360005b83811015613c9d5781358601613c878882613dda565b8452506020928301929190910190600101613c71565b5050505092915050565b600082601f830112613cb857600080fd5b8135613cc6613c5a826149fe565b91508181835260208401935060208101905083856040840282011115613ceb57600080fd5b60005b83811015613c9d5781613d018882613f58565b84525060209092019160409190910190600101613cee565b803561122581614bcb565b805161122581614bcb565b600082601f830112613d4057600080fd5b8135613d4e613c5a82614a1f565b91508082526020830160208301858383011115613d6a57600080fd5b613d75838284614b4a565b50505092915050565b600082601f830112613d8f57600080fd5b8151613d9d613c5a82614a1f565b91508082526020830160208301858383011115613db957600080fd5b613d75838284614b56565b803561122581614bd4565b803561122581614be1565b60006101608284031215613ded57600080fd5b613df86101006149d7565b90506000613e068484613dc4565b8252506020613e1784848301613f9f565b6020830152506040613e2b84828501613eb6565b60408301525060c0613e3f84828501613f9f565b60608301525060e0613e5384828501613f9f565b608083015250610100613e6884828501613c30565b60a083015250610120613e7d84828501613f9f565b60c08301525061014082013567ffffffffffffffff811115613e9e57600080fd5b613eaa84828501613d2f565b60e08301525092915050565b600060808284031215613ec857600080fd5b613ed260806149d7565b90506000613ee08484613d19565b8252506020613ef184848301613dcf565b6020830152506040613f0584828501613dcf565b6040830152506060613f1984828501613f9f565b60608301525092915050565b600060208284031215613f3757600080fd5b613f4160206149d7565b90506000613f4f8484613faa565b82525092915050565b600060408284031215613f6a57600080fd5b613f7460406149d7565b90506000613f828484613c30565b8252506020613f9384848301613f9f565b60208301525092915050565b803561122581614bee565b805161122581614bee565b600060208284031215613fc757600080fd5b6000611f6d8484613d24565b60008060408385031215613fe657600080fd5b6000613ff28585613d24565b925050602083015167ffffffffffffffff81111561400f57600080fd5b61401b85828601613d7e565b9150509250929050565b6000806040838503121561403857600080fd5b60006140448585613f25565b925050602061401b85828601613f25565b60006020828403121561406757600080fd5b6000611f6d8484613f25565b60008060006060848603121561408857600080fd5b60006140948686613f9f565b935050602084013567ffffffffffffffff8111156140b157600080fd5b6140bd86828701613ca7565b925050604084013567ffffffffffffffff8111156140da57600080fd5b6140e686828701613c3b565b9150509250925092565b60006140fc8383614576565b50506101200190565b6000614111838361470d565b505060200190565b61412281614b29565b82525050565b61412281614a78565b600061413c82614a6b565b6141468185614a6f565b935061415183614a65565b8060005b8381101561417f57815161416988826140f0565b975061417483614a65565b925050600101614155565b509495945050505050565b600061419582614a6b565b61419f8185614a6f565b93506141aa83614a65565b8060005b8381101561417f5781516141c28882614105565b97506141cd83614a65565b9250506001016141ae565b61412281614a83565b6141226141ed82614a88565b614ad2565b6141226141ed82614aad565b6141226141ed82614ad2565b600061421582614a6b565b61421f8185611359565b935061422f818560208601614b56565b9290920192915050565b600061424482614a6b565b61424e8185614a6f565b935061425e818560208601614b56565b61426781614b82565b9093019392505050565b61412281614b34565b6000614287601b83614a6f565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006142c0602183614a6f565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051608083019061432384826141d8565b5060208201516143366020850182614271565b5060408201516143496040850182614271565b50606082015161025a606085018261470d565b80516000906101408401906143718582614312565b5060208301516143846080860182614498565b50604083015161439760c086018261470d565b5060608301516143aa60e086018261470d565b5060808301516143be610100860182614128565b5060a0830151848203610120860152612a878282614239565b805160009060808401906143eb8582614498565b5060208301516143fe6040860182614128565b5060408301518482036060860152612a878282614239565b80516101008301906144288482614312565b50602082015161443b6080850182614498565b50604082015161444e60c085018261470d565b50606082015161025a60e0850182614128565b8051606083019061447284826146fb565b50602082015161448560208501826146fb565b50604082015161025a6040850182614716565b805160408301906144a98482614128565b50602082015161025a602085018261470d565b80516101408301906144ce8482614312565b5060208201516144e16080850182614498565b5060408201516144f460c0850182614498565b50606082015161450861010085018261470d565b50608082015161025a61012085018261470d565b80516080808452600091908401906145348282614131565b9150506020830151614549602086018261470d565b5060408301518482036040860152614561828261418a565b91505060608301516120f9606086018261470d565b8051610120830190614588848261470d565b50602082015161459b6020850182614128565b5060408201516145ae60408501826141d8565b5060608201516145c16060850182614704565b5060808201516145d46080850182614704565b5060a08201516145e760a0850182614461565b5060c082015161025a6101008501825b8051602083019061025a848261470d565b9052565b80516000906101a08401906146218582614312565b50602083015161463460808601826141d8565b50604083015161464760a0860182614498565b50606083015161465a60e0860182614498565b50608083015161466e61012086018261470d565b5060a083015161468261014086018261470d565b5060c0830151614696610160860182614128565b5060e0830151848203610180860152612a878282614239565b80516101208301906146c18482614312565b5060208201516146d46080850182614498565b5060408201516146e760c0850182614498565b50606082015161025a61010085018261470d565b61412281614adf565b61412281614af2565b61412281614ad2565b61412281614b20565b600061472b82846141fe565b50602001919050565b6000614740828661420a565b915061474c82856141f2565b600282019150612a87828461420a565b6000614768828961420a565b915061477482886141f2565b600282019150614784828761420a565b915061479082866141f2565b6002820191506147a0828561420a565b91506147ac82846141e1565b506001019695505050505050565b60006147c6828b61420a565b91506147d2828a6141f2565b6002820191506147e2828961420a565b91506147ee82886141f2565b6002820191506147fe828761420a565b915061480a82866141f2565b60028201915061481a828561420a565b915061482682846141e1565b5060010198975050505050505050565b602081016112258284614128565b602081016112258284614119565b606081016148608