UNPKG

@dolomite-exchange/dolomite-margin

Version:

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

6 lines 1.27 MB
{ "contractName": "LiquidateOrVaporizeImpl", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"A library that combines shares code for executing Liquidation or Vaporization actions.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/impl/LiquidateOrVaporizeImpl.sol\":\"LiquidateOrVaporizeImpl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/impl/LiquidateOrVaporizeImpl.sol\":{\"keccak256\":\"0xc05fd822f0991a652f6c9bc0328370bb15ff5eb3ba89cbc1d9140e4835004e7a\",\"urls\":[\"bzz-raw://842e9c896073941e69fbdc32b21b50f873a8bb57c38c810ef70e7b64ee0c3ff7\",\"dweb:/ipfs/QmRBY47DUJQ3KQ7yKvCimv6vstkk6i3fFUQPtWXfG2mXHg\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IAccountRiskOverrideSetter.sol\":{\"keccak256\":\"0x5b9fde139ddfdaae7b650b3c3f6699e0e44605f0d9d3daadc1622eb06ad4c3f8\",\"urls\":[\"bzz-raw://2dfd5af24b6de63f94519c99fd8777a264d7cd11266fa2d525c7d72d96a9c7cf\",\"dweb:/ipfs/QmPg9fjhbnmBayZMh6yTG79xsK1PWSoAHA5pfwSXfnKKjF\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IExternalCallback.sol\":{\"keccak256\":\"0xd8134eac006b0a59b71cbcca82dfce7ce092a57c13a8383ebf0e8bc90c0df3e7\",\"urls\":[\"bzz-raw://ccead8bdcc71402ae7b1d8fb9bc1527081a5eb14f98a5157f5c6f27f21f8ad31\",\"dweb:/ipfs/QmdnDvTiX3EDm93ahjnZabNNgoyQzGtKpfbQUNtJe7t8Ts\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IOracleSentinel.sol\":{\"keccak256\":\"0xa94499fda55ef112640daed2cb1d06062e72c51c7b925c323b4e0ffa9b456ce5\",\"urls\":[\"bzz-raw://18b4a16acac577590a57f34f7ec6583e3cb35f575c948abb928b308d29cac1ab\",\"dweb:/ipfs/QmR1jLkzj6w7SjrdZ7GVW4V2vofSdMJwzjTqKpeUKABvxu\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x7b2fcf441c034952dd042b6c8b20b148359db771e7c9ac07d06369560a9f0301\",\"urls\":[\"bzz-raw://84665ee4a780360fe6160d197ba98f0bf0ab0d7c6ad87bfed6226bf2f88d8d30\",\"dweb:/ipfs/QmRDfRdAd8hSXeu4SAeeYKkKoXBhStu7n4uReYBce2JD5Z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2dd25e648c65f5d9e4949a57938e29ddc4c9dddefd74a9964aeef\",\"urls\":[\"bzz-raw://67e5a04ed4055faafbc100d6ccca9c54448ed378a1a8c71171562edda7bcbf7c\",\"dweb:/ipfs/QmYRikK3Xbgiq3UBJkgoo2zNUSSrShVabpRHmQj6iQHhrc\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0xe57c80a7621a77fcb2acb9f883fb5248e71a6dce03bc2db56df0db3fee332950\",\"urls\":[\"bzz-raw://28e221c04629674490b9a0041d4f9a5f15e669dc0cc192a5df6e2c701c36369f\",\"dweb:/ipfs/QmaL3oh8c7v9cx91pB175pyCEuzxnhNTab4UxmBMsDYfUx\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x41a3460e34b7b8635d936e35e6568ceb5354b638f53b884530e0d4875fa0f151\",\"urls\":[\"bzz-raw://d1a5ba866ee95d455afe5075dadd91fc71c2806371f2c1b358a1f67c632bb0df\",\"dweb:/ipfs/QmW4qCjmsG8J3UJv97GwDLDM7wt1K4yLDKAwzWMY7TFYi5\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Events.sol\":{\"keccak256\":\"0x2345dcc1ebf53a3d5449dab083b1fb90b5362dae692f8ff3ad00078862894e9b\",\"urls\":[\"bzz-raw://ebd34c557c06caf0696774844f0ca9746412ecc452bdd978b3bca0fd71aefbde\",\"dweb:/ipfs/QmcwXXKgv77DqfhxABRg85WR6RBPTLmge5vJGp99o9kFf8\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/ExcessivelySafeCall.sol\":{\"keccak256\":\"0x9369468538c371057c907f84d438cec6b47673711fe289cc3779f8671314e06b\",\"urls\":[\"bzz-raw://0f59a670f4bc5cf1bd3dd58bdf6c31723d9d84d9da7d9283d6860cdf5f33b7c5\",\"dweb:/ipfs/QmTGuvD5WQD2z56GH35HoPJivKPeeEpbXidJVcbXZyT23C\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/SafeExternalCallback.sol\":{\"keccak256\":\"0xd308a1ab320de20780f7041ea5efd9568f8692e1ed6cf512b967ab63c791a8ff\",\"urls\":[\"bzz-raw://4a904b056f094be598396a90a5ba5297213934cfc2816848a494469ce249edd4\",\"dweb:/ipfs/QmcmeezMFPntDLNS1EY4j5THgRJUeyscgLv55WwxbFoiaY\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9c27f3cd52af28c9b6bca18097b1793f114d08284d78417467d0d05f67e9e2a9\",\"urls\":[\"bzz-raw://d1ed0e7a7f76d59f30572996d4e164ab8fb5b2ec4bfca127983f9e936b904813\",\"dweb:/ipfs/QmePVYbgrY8Yw3Vf76pmEvE9pX916Jaa9we4kjM8tGM4J1\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0x095b5f8eb3665f6e246200311efc8a654fa3e90f9a1a522e27a4d089e8ab3917\",\"urls\":[\"bzz-raw://5db812b752a03d601d424e6e21be38153477082af0acf51b5c98eefa5553ed18\",\"dweb:/ipfs/QmbE549QUXYTurpx8hSMLBJvuBpfYqyNE6FBCgHJDY8PLf\"]},\"/home/cdc218/projects/dolomite/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": "0x61457c610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c80637b846b6214610045578063b0909ea014610067575b600080fd5b81801561005157600080fd5b50610065610060366004613e3a565b610087565b005b81801561007357600080fd5b50610065610082366004613e3a565b6104e8565b610097833363ffffffff61086616565b600c830154604080517f7a5d20ea00000000000000000000000000000000000000000000000000000000815290516101849273ffffffffffffffffffffffffffffffffffffffff1691637a5d20ea916004808301926020929190829003018186803b15801561010557600080fd5b505afa158015610119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061013d9190810190613dad565b7f4c69717569646174654f725661706f72697a65496d706c0000000000000000007f4c69717569646174696f6e73206172652064697361626c6564000000000000006108c6565b604081015161019a90849063ffffffff61097716565b60028111156101a557fe5b60011461023b576040810151610223906101c990859085600063ffffffff6109b816565b157f4c69717569646174654f725661706f72697a65496d706c0000000000000000007f556e6c6971756964617461626c65206163636f756e7400000000000000000000846040015160000151856040015160200151610acf565b604081015161023b908490600163ffffffff610b9a16565b61024361383a565b604082015160808301516102759190610262868263ffffffff610c0f16565b60a001518792919063ffffffff610c8316565b90506102d061028382610cd8565b157f4c69717569646174654f725661706f72697a65496d706c0000000000000000007f436f6c6c61746572616c2063616e6e6f74206265206e656761746976650000008560800151610cf5565b6102d8613851565b60608301516102ee90859063ffffffff610c0f16565b60a0015190506102fc613851565b608084015161031290869063ffffffff610c0f16565b60a00151905061032061383a565b61032861383a565b604086015160608701518751610349928b929091889063ffffffff610d9316565b91509150610355613871565b61035d613871565b6103768a8a8a604001518b608001518c60600151610f3f565b9150915061038261383a565b61038d848484610fd8565b90508760200151816020015111156103fd576103a888611015565b90506103b581848461103c565b93506103db89604001518a608001516103cc61106f565b8e92919063ffffffff61108f16565b604089015160608a01516103f8918d918a8863ffffffff61156d16565b610436565b604089015160608a0151610419918d918863ffffffff61108f16565b604089015160808a0151610436918d91898563ffffffff61156d16565b61045d89602001518a606001518961044d88611015565b8f9392919063ffffffff61156d16565b61047489602001518a608001518861044d85611015565b60008b60070160060154905061049f8a604001518b602001518c60800151858e606001518a876115e6565b6104ce8a602001518b604001518c608001516104ba86611015565b8e606001516104c88b611015565b876115e6565b6104da8c8b8488611851565b505050505050505050505050565b60208101516104ff9084903363ffffffff61197916565b604081015161051590849063ffffffff61097716565b600281111561052057fe5b6002146105b0576040810151610598906105429085908563ffffffff611a2c16565b604083015180516020909101517f4c69717569646174654f725661706f72697a65496d706c000000000000000000917f556e7661706f72697a61626c65206163636f756e74000000000000000000000091610acf565b60408101516105b0908490600263ffffffff610b9a16565b60006105ba61383a565b6105df85846105d6866060015188610c0f90919063ffffffff16565b60a00151611ab4565b91509150811561060b5761060485846105f661106f565b6105fe61106f565b85611b97565b5050610861565b61061361383a565b608084015161062990879063ffffffff611c9416565b905061068461063782610cd8565b157f4c69717569646174654f725661706f72697a65496d706c0000000000000000007f4578636573732063616e6e6f74206265206e65676174697665000000000000008760800151610cf5565b61068c61383a565b61069461383a565b604086015160608701516106c991906106b38a8263ffffffff610c0f16565b60a0015189518c9392919063ffffffff610d9316565b915091506106d5613871565b6106dd613871565b61071e8a8a6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152508b608001518c60600151610f3f565b9150915061072a61383a565b610735848484610fd8565b90508560200151816020015111156107975761075086611015565b905061075d81848461103c565b60408a015160608b01519195506107929161077e8d8263ffffffff610c0f16565b60a001518e9291908863ffffffff61156d16565b6107b3565b604089015160608a01516107b3918d918863ffffffff61108f16565b602089015160608a01516107df91906107d28d8263ffffffff610c0f16565b60a0015161044d88611015565b602089015160808a015161080b91906107fe8d8263ffffffff610c0f16565b60a0015161044d85611015565b600d8b015460408a015160208b015160808c015161083992919061082d61106f565b8e606001518a876115e6565b6108548a602001518b604001518c608001516104ba86611015565b6104da8c8b84888c611b97565b505050565b6000610878838363ffffffff611def16565b9050610861817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d697373696f6e656420676c6f62616c206f70657261746f72000085611e1e565b82610861576108d482611e80565b7f3a200000000000000000000000000000000000000000000000000000000000006108fe83611e80565b604051602001610910939291906140a2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261096e916004016141b2565b60405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff166000908152600383016020908152604080832082850151845290915290205460ff165b92915050565b60006109ca858563ffffffff611f5816565b6109d657506001610ac7565b6109de613871565b6109e88686611f9f565b5090506109f3613871565b6109fb613871565b610a0f88888860018763ffffffff61212e16565b915091508415610a7957600a8801548151885160208a0151610a799390921015917f53746f7261676500000000000000000000000000000000000000000000000000917f426f72726f772076616c756520746f6f206c6f7700000000000000000000000091610acf565b8251610a945760408051602081019091526007890154815292505b6000610aa48260000151856122b6565b8251909150610ab9908263ffffffff6122cf16565b836000015110159450505050505b949350505050565b84610b9357610add84611e80565b7f3a20000000000000000000000000000000000000000000000000000000000000610b0785611e80565b7f203c000000000000000000000000000000000000000000000000000000000000610b318661230e565b7f2c20000000000000000000000000000000000000000000000000000000000000610b5b87612485565b60405161091097969594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001614128565b5050505050565b815173ffffffffffffffffffffffffffffffffffffffff1660009081526003840160209081526040808320828601518452909152902080548291907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836002811115610c0557fe5b0217905550505050565b610c17613884565b825151610c679015157f43616368650000000000000000000000000000000000000000000000000000007f6e6f7420696e697469616c697a656400000000000000000000000000000000006108c6565b610c7c83600001516000856060015185612594565b9392505050565b610c8b61383a565b610c9361383a565b610ca486868663ffffffff61264f16565b9050610caf816126cf565b15610cc457610cbc61106f565b915050610ac7565b610cce81846126e9565b9695505050505050565b8051600090158015610ced5750602082015115155b90505b919050565b83610d8d57610d0383611e80565b7f3a20000000000000000000000000000000000000000000000000000000000000610d2d84611e80565b7f203c000000000000000000000000000000000000000000000000000000000000610d5785612485565b6040516109109594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016140ca565b50505050565b610d9b61383a565b610da361383a565b610dab61383a565b610dbc88888863ffffffff61264f16565b9050610e1c610dca8261279e565b157f53746f72616765000000000000000000000000000000000000000000000000007f4f7765642062616c616e63652063616e6e6f7420626520706f736974697665008a600001518b60200151610acf565b610e2461383a565b610e2c61383a565b610e3f8a8a8a8a8a63ffffffff6127c616565b91509150610e4c8261279e565b15610e7857610e5961106f565b9150610e75610e708b8b8b8b63ffffffff610c8316565b611015565b90505b610f0e610e8482610cd8565b158015610ebd575082602001516fffffffffffffffffffffffffffffffff1684602001516fffffffffffffffffffffffffffffffff1610155b7f53746f72616765000000000000000000000000000000000000000000000000007f4f7765642062616c616e63652063616e6e6f7420696e637265617365000000008c600001518d60200151610acf565b610f1e838363ffffffff61295416565b15610f2e57610f2b61106f565b90505b9093509150505b9550959350505050565b610f47613871565b610f4f613871565b6000610f61878563ffffffff610c0f16565b60c00151519050610f70613871565b610f828988888863ffffffff6129c616565b9050610f8c613871565b6040518060200160405280610fb1610fa486866122b6565b869063ffffffff6122cf16565b90529050610fc5898863ffffffff610c0f16565b60c001519a909950975050505050505050565b610fe061383a565b604051806040016040528060001515815260200161100b866020015185600001518760000151612a84565b9052949350505050565b61101d61383a565b5060408051808201909152815115815260208083015190820152919050565b61104461383a565b604051806040016040528060011515815260200161100b866020015186600001518660000151612aa6565b61107761383a565b50604080518082019091526000808252602082015290565b61109761383a565b6110a885858563ffffffff61264f16565b90506110b48183612954565b156110bf5750610d8d565b6110c761383a565b6110d7868563ffffffff612aff16565b8251909150156111445761112861112383602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff16612b5f90919063ffffffff16565b612ba1565b6fffffffffffffffffffffffffffffffff166020820152611189565b6020820151815161117491611123916fffffffffffffffffffffffffffffffff908116911663ffffffff612b5f16565b6fffffffffffffffffffffffffffffffff1681525b8251156111ee576111d261112384602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff166122cf90919063ffffffff16565b6fffffffffffffffffffffffffffffffff166020820152611233565b6020830151815161121e91611123916fffffffffffffffffffffffffffffffff908116911663ffffffff6122cf16565b6fffffffffffffffffffffffffffffffff1681525b61123c82612c04565b801561124c575061124c83612c2e565b156112e957845173ffffffffffffffffffffffffffffffffffffffff1660009081526003870160209081526040808320828901518452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61010080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff90911617905561137b565b6112f282612c2e565b8015611302575061130283612c04565b1561137b57845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020805463ffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790555b611384836126cf565b80156113965750611394826126cf565b155b156113ea57845173ffffffffffffffffffffffffffffffffffffffff166000908152600387016020908152604080832082890151845290915290206113e4906001018563ffffffff612c4416565b50611454565b6113f3836126cf565b1580156114045750611404826126cf565b1561145457845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020611452906001018563ffffffff612d2a16565b505b6000848152600180880160209081526040808420855193018054958301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029481167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090971696909617861693909317909255875173ffffffffffffffffffffffffffffffffffffffff1683526003808a018252828420898301518552825282842088855201815291208451815492860151909316610100027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff9315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090931692909217929092161790555050505050565b61157681612d74565b1561158057610b93565b61158861383a565b61159a8686868663ffffffff610c8316565b90506115a461383a565b6115b4828463ffffffff612d7c16565b90506115be61383a565b6115c88286612e0e565b90506115dc8888888463ffffffff61108f16565b5050505050505050565b8015801590611611575086516116119073ffffffffffffffffffffffffffffffffffffffff16612ed5565b15611848576101006000606061171061162a5a86612f0e565b60208c015160405186917fdcd3f52e000000000000000000000000000000000000000000000000000000009161166d91908f908f908f908f908f9060240161421f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091528d5173ffffffffffffffffffffffffffffffffffffffff1692919063ffffffff612f2416565b91509150811561177557896000015173ffffffffffffffffffffffffffffffffffffffff167fdf30e54991e6c9ca0d354a3eec6c41160a3957d6a6a1e045b61cb4fa78a881588b6020015160405161176891906141f1565b60405180910390a2611844565b60448151101561179457506040805160208101909152600081526117eb565b60448101516004909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc84018111156117d3576044840360408301525b818060200190516117e79190810190613dcb565b9150505b896000015173ffffffffffffffffffffffffffffffffffffffff167f80286932449c34f135af231b834d24382a883e1ae7e17796d9f842ffec060bc28b602001518360405161183b9291906141ff565b60405180910390a25b5050505b50505050505050565b6118596138cd565b611875858560200151866080015161187087611015565b612f97565b905061187f6138cd565b611896868660200151876060015161187087611015565b90506118a06138cd565b6118b4878760400151886080015188612f97565b90506118be6138cd565b6118d2888860400151896060015188612f97565b905086604001516000015173ffffffffffffffffffffffffffffffffffffffff1687602001516000015173ffffffffffffffffffffffffffffffffffffffff167f1b9e65b359b871d74b1af1fc8b13b11635bfb097c4631b091eb762fda7e67dc78960200151602001518a60400151602001518b608001518c606001518a8a8a8a6040516119679897969594939291906142e5565b60405180910390a35050505050505050565b6000826000015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806119c457506119c4848363ffffffff611def16565b806119de575082516119de9085908463ffffffff612fcc16565b9050610d8d817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d697373696f6e6564206f70657261746f7200000000000000000085611e1e565b60008080611a3984613009565b905060005b81811015611aa957611a4e61383a565b611a7187611a62888563ffffffff61300e16565b518a919063ffffffff61264f16565b9050611a7c816126cf565b15611a875750611aa1565b805115611a9b576000945050505050610c7c565b60019350505b600101611a3e565b509095945050505050565b6000611abe61383a565b611ac661383a565b6060850151611adc90879063ffffffff611c9416565b9050611ae78161308a565b611aff576000611af561106f565b9250925050611b8f565b611b0761383a565b60408601516060870151611b239189918863ffffffff610c8316565b600181526020808201519084015191925011611b6a57611b5d86604001518760600151611b4e61106f565b8a92919063ffffffff61108f16565b600193509150611b8f9050565b60408601516060870151611b87918991888663ffffffff61156d16565b506000925090505b935093915050565b611b9f6138cd565b611bb6868660200151876080015161187088611015565b9050611bc06138cd565b611bd7878760200151886060015161187088611015565b9050611be16138cd565b60408701516060880151611c01918a91611870898963ffffffff612d7c16565b905086604001516000015173ffffffffffffffffffffffffffffffffffffffff1687602001516000015173ffffffffffffffffffffffffffffffffffffffff167fefdcfda4e0be180f29bfeebc4bcb6de1e950d70b41e9ee813bff9882ee16ca918960200151602001518a60400151602001518b608001518c60600151898989604051611967979695949392919061427a565b611c9c61383a565b611ca4613851565b611cb4848463ffffffff6130a016565b9050611cbe61383a565b611cce858563ffffffff612aff16565b90506000611ce2868663ffffffff61312c16565b9050611cec61383a565b6040805180820182526001815290517f70a08231000000000000000000000000000000000000000000000000000000008152602082019073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190611d4f9030906004016141a4565b60206040518083038186803b158015611d6757600080fd5b505afa158015611d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d9f9190810190613ea0565b90529050611dab61383a565b611db361383a565b611dbd8587613158565b9092509050611de282611dd6858463ffffffff61320016565b9063ffffffff61320016565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff166000908152600591909101602052604090205460011490565b83610d8d57611e2c83611e80565b7f3a20000000000000000000000000000000000000000000000000000000000000611e5684611e80565b7f203c000000000000000000000000000000000000000000000000000000000000610d578561230e565b60608082604051602001611e94919061408d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b8015611f3d5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110611f0057fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615611f385760010181529050610cf0565b611ec7565b5060408051600080825260208201909252905b509392505050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260039290920160209081526040808420928201518452919052902054610100900463ffffffff1690565b611fa7613871565b611faf613871565b825173ffffffffffffffffffffffffffffffffffffffff9081166000908152600f86016020526040902054168015612098576040517fca23542000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063ca235420906120339087906004016141e3565b604080518083038186803b15801561204a57600080fd5b505afa15801561205e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120829190810190613e00565b909350915061209285848461321a565b50612127565b50600e84015473ffffffffffffffffffffffffffffffffffffffff16801561210c576040517fca23542000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063ca235420906120339087906004016141e3565b6121146133a5565b925061211e6133a5565b91506121279050565b9250929050565b612136613871565b61213e613871565b612146613871565b61214e613871565b85801561215a57508451155b9550600061216788613009565b905060005b818110156122a65761217c61383a565b6121b48b6121908c8563ffffffff61300e16565b516121a18d8663ffffffff61300e16565b60a001518f92919063ffffffff610c8316565b90506121bf81612d74565b156121ca575061229e565b6121d2613871565b6121da6133c0565b905089156122255761222260018e0160006121fb8e8763ffffffff61300e16565b518152602080820192909252604090810160002081519283019091526005015481526133e2565b90505b600061225061223a8d8663ffffffff61300e16565b60c001515160208501519063ffffffff61341916565b83519091501561227c57612275612267828461346d565b88519063ffffffff6122cf16565b875261229a565b61229761228982846122b6565b87519063ffffffff6122cf16565b86525b5050505b60010161216c565b5091999098509650505050505050565b6000610c7c838360000151670de0b6b3a7640000612a84565b600082820183811015610c7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e906141c3565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061235a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b8160018151811061239b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015611f5057600281026123e6600f8516613486565b8382602903815181106123f557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c9350612437600f8516613486565b83826028038151811061244657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016123cd565b6060816124c6575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf0565b8160005b81156124de57600101600a820491506124ca565b6060816040519080825280601f01601f19166020018201604052801561250b576020820181803883390190505b508593509050815b801561258b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b82828151811061255157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350612513565b50949350505050565b61259c613884565b8383038015806125ce57508060011480156125ce5750828686815181106125bf57fe5b60200260200101516000015114155b156125d557fe5b6000600182901c8601905060008782815181106125ee57fe5b60200260200101516000015190508085101561261a5761261088888488612594565b9350505050610ac7565b808511156126315761261088836001018888612594565b87828151811061263d57fe5b60200260200101519350505050610ac7565b61265761383a565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526003938401602090815260408083209482015183529381528382209282529190930181529181902081518083019092525460ff81161515825261010090046fffffffffffffffffffffffffffffffff169181019190915290565b602001516fffffffffffffffffffffffffffffffff161590565b6126f161383a565b602083015183516fffffffffffffffffffffffffffffffff909116901561275f576040805180820190915260018152602084810151908201906127549084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6134a816565b8152509150506109b2565b6040805180820190915260008152835160208201906127549084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6134a816565b80516000908015610ced575050602001516fffffffffffffffffffffffffffffffff16151590565b6127ce61383a565b6127d661383a565b6127de61383a565b6127ef88888863ffffffff61264f16565b905083606001516000148015612814575060008460400151600181111561281257fe5b145b1561282c578061282261106f565b9250925050610f35565b61283461383a565b61283e82876126e9565b905061284861383a565b61285061383a565b60008760200151600181111561286257fe5b14156128ce5750604080518082019091528651151581526060870151602082015260018760400151600181111561289557fe5b14156128ae576128ab818463ffffffff61320016565b90505b6128c76128c1848363ffffffff612d7c16565b89612e0e565b9150612944565b60405180604001604052808860000151151581526020016128f28960600151612ba1565b6fffffffffffffffffffffffffffffffff169052915060008760400151600181111561291a57fe5b141561293357612930848363ffffffff61353216565b91505b61294183611dd6848b6126e9565b90505b909a909950975050505050505050565b600081602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff1614156129bd5760208301516fffffffffffffffffffffffffffffffff166129ad575060016109b2565b50805182511515901515146109b2565b50600092915050565b6129ce613871565b6129d6613871565b6129e08686611f9f565b80519092501590506129f3579050610ac7565b6008860154600085815260018801602090815260409182902082519182019092526006909101548152612a30908290612a2b906133e2565b6122b6565b9050612a6b81612a2b8960010160008881526020019081526020016000206006016040518060200160405290816000820154815250506133e2565b6040805160208101909152908152979650505050505050565b6000610ac782612a9a868663ffffffff61341916565b9063ffffffff61365716565b6000831580612ab3575082155b15612aca57612ac3600083613657565b9050610c7c565b610ac76001612af384612a9a83612ae78a8a63ffffffff61341916565b9063ffffffff612b5f16565b9063ffffffff6122cf16565b612b0761383a565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b6000610c7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613699565b600081610ced6fffffffffffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e743132380000000000000000000084610cf5565b600081602001516fffffffffffffffffffffffffffffffff16600014158015610ced575050511590565b6000612c39826126cf565b80610ced5750505190565b60008181526001830160205260408120548015612d205783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8083019101808214612cda576000866000018281548110612c9b57fe5b9060005260206000200154905080876000018481548110612cb857fe5b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612ce557fe5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506109b2565b60009150506109b2565b6000612d3683836136df565b612d6c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109b2565b5060006109b2565b602001511590565b612d8461383a565b612d8c61383a565b8251845115159015151415612dbf5783511515815260208085015190840151612db591906122cf565b6020820152610c7c565b8260200151846020015110612de85783511515815260208085015190840151612db59190612b5f565b82511515815260208084015190850151612e029190612b5f565b60208201529392505050565b612e1661383a565b825115612e8e576040518060400160405280600115158152602001612e73611123670de0b6b3a764000067ffffffffffffffff1686602001516dffffffffffffffffffffffffffff1688602001516134a89092919063ffffffff16565b6fffffffffffffffffffffffffffffffff16905290506109b2565b6040805180820190915260008152825160208581015190830191612e739161112391670de0b6b3a7640000906dffffffffffffffffffffffffffff1663ffffffff6134a816565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610ac7575050151592915050565b6000818310612f1d5781610c7c565b5090919050565b6000606060008060608661ffff166040519080825280601f01601f191660200182016040528015612f5c576020820181803883390190505b50905060008087516020890160008d8df191503d925086831115612f7e578692505b828152826000602083013e909890975095505050505050565b612f9f6138cd565b6040805180820190915282815260208101612fc187878763ffffffff61264f16565b905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600493909301602090815260408085209290931684525290205460011490565b515190565b613016613884565b82515161306c90808410907f4361636865000000000000000000000000000000000000000000000000000000907f696e76616c696420696e646578000000000000000000000000000000000000009086906136f7565b825180518390811061307a57fe5b6020026020010151905092915050565b80516000908015610ced57505060200151151590565b6130a8613851565b506000908152600191909101602090815260409182902082516060810184526002909101546dffffffffffffffffffffffffffff80821683526e010000000000000000000000000000820416928201929092527c010000000000000000000000000000000000000000000000000000000090910463ffffffff169181019190915290565b6000908152600191909101602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b61316061383a565b61316861383a565b61317061383a565b5060408051808201909152600181526020858101516fffffffffffffffffffffffffffffffff16908201526131a361383a565b50604080518082019091526000815285516fffffffffffffffffffffffffffffffff1660208201526131d361383a565b6131dd83876126e9565b90506131e761383a565b6131f183886126e9565b91989197509095505050505050565b61320861383a565b610c7c8361321584611015565b612d7c565b601083015482516132789167ffffffffffffffff1610157f53746f72616765000000000000000000000000000000000000000000000000007f526174696f20746f6f20686967680000000000000000000000000000000000006108c6565b601083015481516132e29168010000000000000000900467ffffffffffffffff1610157f53746f72616765000000000000000000000000000000000000000000000000007f53707265616420746f6f206869676800000000000000000000000000000000006108c6565b8151158015906132f25750805115155b1561334c578151815161334791117f53746f72616765000000000000000000000000000000000000000000000000007f5370726561642063616e6e6f74206265203e3d20726174696f000000000000006108c6565b610861565b80516108619015801561335e57508251155b7f53746f72616765000000000000000000000000000000000000000000000000007f53707265616420616e6420726174696f206d75737420626f74682062652030006108c6565b6133ad613871565b5060408051602081019091526000815290565b6133c8613871565b506040805160208101909152670de0b6b3a7640000815290565b6133ea613871565b60408051602081019091528251819061341190670de0b6b3a764000063ffffffff6122cf16565b905292915050565b600082613428575060006109b2565b8282028284828161343557fe5b0414610c7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e906141d3565b6000610c7c83670de0b6b3a76400008460000151612a84565b6000600a82101561349e57506030810160f81b610cf0565b5060570160f81b90565b60008315806134b5575082155b156134c557612ac3600083613657565b60006134d7858563ffffffff61341916565b90506135296134f66001612af36002612a9a888463ffffffff612b5f16565b613506838663ffffffff61375916565b1015613513576000613516565b60015b60ff16612af3838663ffffffff61365716565b95945050505050565b61353a61383a565b61354261383a565b82518451151590151514156135a0578351151581526020808501519084015161358491611123916fffffffffffffffffffffffffffffffff91821691166122cf565b6fffffffffffffffffffffffffffffffff166020820152610c7c565b82602001516fffffffffffffffffffffffffffffffff1684602001516fffffffffffffffffffffffffffffffff1610613606578351151581526020808501519084015161358491611123916fffffffffffffffffffffffffffffffff9182169116612b5f565b8251151581526020808401519085015161363991611123916fffffffffffffffffffffffffffffffff9182169116612b5f565b6fffffffffffffffffffffffffffffffff1660208201529392505050565b6000610c7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061379b565b600081848411156136d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e91906141b2565b505050900390565b60009081526001919091016020526040902054151590565b84610b935761370584611e80565b7f3a2000000000000000000000000000000000000000000000000000000000000061372f85611e80565b7f203c000000000000000000000000000000000000000000000000000000000000610b3186612485565b6000610c7c83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506137ec565b600081836137d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e91906141b2565b5060008385816137e257fe5b0495945050505050565b60008183613827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e91906141b2565b5082848161383157fe5b06949350505050565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b6040518060200160405280600081525090565b6040805160e08101825260008082526020820181905291810182905260608101829052608081019190915260a081016138bb613851565b81526020016138c8613871565b905290565b60405180604001604052806138e061383a565b81526020016138c861383a565b80356109b2816144e8565b600082601f83011261390957600080fd5b813561391c61391782614379565b614352565b915081818352602084019350602081019050838561012084028201111561394257600080fd5b60005b8381101561397157816139588882613ca3565b8452506020909201916101209190910190600101613945565b5050505092915050565b600082601f83011261398c57600080fd5b813561399a61391782614379565b915081818352602084019350602081019050838560208402820111156139bf57600080fd5b60005b8381101561397157816139d58882613d76565b84525060209283019291909101906001016139c2565b80356109b2816144ff565b80516109b2816144ff565b80356109b281614508565b600082601f830112613a1d57600080fd5b8151613a2b6139178261439a565b91508082526020830160208301858383011115613a4757600080fd5b613a52838284614494565b50505092915050565b600060808284031215613a6d57600080fd5b613a776080614352565b90506000613a8584846139eb565b8252506020613a9684848301613a01565b6020830152506040613aaa84828501613a01565b6040830152506060613abe84828501613d76565b60608301525092915050565b600060208284031215613adc57600080fd5b613ae66020614352565b90506000613af48484613d97565b82525092915050565b600060608284031215613b0f57600080fd5b613b196060614352565b90506000613b278484613d81565b8252506020613b3884848301613d81565b6020830152506040613b4c84828501613da2565b60408301525092915050565b600060408284031215613b6a57600080fd5b613b746040614352565b90506000613b8284846138ed565b8252506020613b9384848301613d76565b60208301525092915050565b60006101408284031215613bb257600080fd5b613bbc60a0614352565b90506000613bca8484613a5b565b8252506080613bdb84848301613b58565b60208301525060c0613bef84828501613b58565b604083015250610100613c0484828501613d76565b606083015250610120613c1984828501613d76565b60808301525092915050565b600060808284031215613c3757600080fd5b613c416080614352565b9050813567ffffffffffffffff811115613c5a57600080fd5b613c66848285016138f8565b8252506020613c7784848301613d76565b602083015250604082013567ffffffffffffffff811115613c9757600080fd5b613aaa8482850161397b565b60006101208284031215613cb657600080fd5b613cc060e0614352565b90506000613cce8484613d76565b8252506020613cdf848483016138ed565b6020830152506040613cf3848285016139eb565b6040830152506060613d0784828501613d8c565b6060830152506080613d1b84828501613d8c565b60808301525060a0613d2f84828501613afd565b60a083015250610100613d4484828501613d50565b60c08301525092915050565b600060208284031215613d6257600080fd5b613d6c6020614352565b90506000613af484845b80356109b281614515565b80356109b28161451e565b80356109b281614527565b80516109b281614515565b80356109b281614530565b600060208284031215613dbf57600080fd5b6000610ac784846139f6565b600060208284031215613ddd57600080fd5b815167ffffffffffffffff811115613df457600080fd5b610ac784828501613a0c565b60008060408385031215613e1357600080fd5b6000613e1f8585613aca565b9250506020613e3085828601613aca565b9150509250929050565b60008060006101808486031215613e5057600080fd5b6000613e5c8686613d76565b935050602084013567ffffffffffffffff811115613e7957600080fd5b613e8586828701613c25565b9250506040613e9686828701613b9f565b9150509250925092565b600060208284031215613eb257600080fd5b6000610ac78484613d97565b613ec7816143ed565b82525050565b613ec7816143f8565b613ec7613ee2826143fd565b614447565b613ec7613ee282614422565b613ec7613ee282614447565b6000613f0a826143e0565b613f148185610cf0565b9350613f24818560208601614494565b9290920192915050565b6000613f39826143e0565b613f4381856143e4565b9350613f53818560208601614494565b613f5c816144c0565b9093019392505050565b6000613f73601b836143e4565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613fac6021836143e4565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051608083019061400f848261406a565b506020820151610d8d6040850182614046565b805160408301906140338482613ebe565b506020820151610d8d6020850182614084565b805160408301906140578482613ecd565b506020820151610d8d602085018261407b565b805160408301906140338482613ecd565b613ec78161445d565b613ec781614447565b60006140998284613ef3565b50602001919050565b60006140ae8286613eff565b91506140ba8285613ee7565b6002820191506135298284613eff565b60006140d68289613eff565b91506140e28288613ee7565b6002820191506140f28287613eff565b91506140fe8286613ee7565b60028201915061410e8285613eff565b915061411a8284613ed6565b506001019695505050505050565b6000614134828b613eff565b9150614140828a613ee7565b6002820191506141508289613eff565b915061415c8288613ee7565b60028201915061416c8287613eff565b91506141788286613ee7565b6002820191506141888285613eff565b91506141948284613ed6565b5060010198975050505050505050565b602081016109b28284613ebe565b60208082528101610c7c8184613f2e565b60208082528101610ced81613f66565b60208082528101610ced81613f9f565b604081016109b28284614022565b602081016109b28284614084565b6040810161420d8285614084565b8181036020830152610ac78184613f2e565b610120810161422e8289614084565b61423b6020830188614022565b6142486060830187614084565b614255608083018661406a565b61426260c0830185614084565b61426f60e083018461406a565b979650505050505050565b6102008101614289828a614084565b6142966020830189614084565b6142a36040830188614084565b6142b06060830187614084565b6142bd6080830186613ffe565b6142cb610100830185613ffe565b6142d9610180830184613ffe565b98975050505050505050565b61028081016142f4828b614084565b614301602083018a614084565b61430e6040830189614084565b61431b6060830188614084565b6143286080830187613ffe565b614336610100830186613ffe565b614344610180830185613ffe565b611de2610200830184613ffe565b60405181810167ffffffffffffffff8111828210171561437157600080fd5b604052919050565b600067ffffffffffffffff82111561439057600080fd5b5060209081020190565b600067ffffffffffffffff8211156143b157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b90815260200190565b6000610ced82614472565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6dffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60005b838110156144af578181015183820152602001614497565b83811115610d8d5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6144f1816143ed565b81146144fc57600080fd5b50565b6144f1816143f8565b600281106144fc57600080fd5b6144f181614447565b6144f18161444a565b6144f18161445d565b6144f18161448b56fea365627a7a72315820f2deda3f79066c5c4603969e72aa11d84148958bf63bdc689fcaf56a8fd9a6516c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c80637b846b6214610045578063b0909ea014610067575b600080fd5b81801561005157600080fd5b50610065610060366004613e3a565b610087565b005b81801561007357600080fd5b50610065610082366004613e3a565b6104e8565b610097833363ffffffff61086616565b600c830154604080517f7a5d20ea00000000000000000000000000000000000000000000000000000000815290516101849273ffffffffffffffffffffffffffffffffffffffff1691637a5d20ea916004808301926020929190829003018186803b15801561010557600080fd5b505afa158015610119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061013d9190810190613dad565b7f4c69717569646174654f725661706f72697a65496d706c0000000000000000007f4c69717569646174696f6e73206172652064697361626c6564000000000000006108c6565b604081015161019a90849063ffffffff61097716565b60028111156101a557fe5b60011461023b576040810151610223906101c990859085600063ffffffff6109b816565b157f4c69717569646174654f725661706f72697a65496d706c0000000000000000007f556e6c6971756964617461626c65206163636f756e7400000000000000000000846040015160000151856040015160200151610acf565b604081015161023b908490600163ffffffff610b9a16565b61024361383a565b604082015160808301516102759190610262868263ffffffff610c0f16565b60a001518792919063ffffffff610c8316565b90506102d061028382610cd8565b157f4c69717569646174654f725661706f72697a65496d706c0000000000000000007f436f6c6c61746572616c2063616e6e6f74206265206e656761746976650000008560800151610cf5565b6102d8613851565b60608301516102ee90859063ffffffff610c0f16565b60a0015190506102fc613851565b608084015161031290869063ffffffff610c0f16565b60a00151905061032061383a565b61032861383a565b604086015160608701518751610349928b929091889063ffffffff610d9316565b91509150610355613871565b61035d613871565b6103768a8a8a604001518b608001518c60600151610f3f565b9150915061038261383a565b61038d848484610fd8565b90508760200151816020015111156103fd576103a888611015565b90506103b581848461103c565b93506103db89604001518a608001516103cc61106f565b8e92919063ffffffff61108f16565b604089015160608a01516103f8918d918a8863ffffffff61156d16565b610436565b604089015160608a0151610419918d918863ffffffff61108f16565b604089015160808a0151610436918d91898563ffffffff61156d16565b61045d89602001518a606001518961044d88611015565b8f9392919063ffffffff61156d16565b61047489602001518a608001518861044d85611015565b60008b60070160060154905061049f8a604001518b602001518c60800151858e606001518a876115e6565b6104ce8a602001518b604001518c608001516104ba86611015565b8e606001516104c88b611015565b876115e6565b6104da8c8b8488611851565b505050505050505050505050565b60208101516104ff9084903363ffffffff61197916565b604081015161051590849063ffffffff61097716565b600281111561052057fe5b6002146105b0576040810151610598906105429085908563ffffffff611a2c16565b604083015180516020909101517f4c69717569646174654f725661706f72697a65496d706c000000000000000000917f556e7661706f72697a61626c65206163636f756e74000000000000000000000091610acf565b60408101516105b0908490600263ffffffff610b9a16565b60006105ba61383a565b6105df85846105d6866060015188610c0f90919063ffffffff16565b60a00151611ab4565b91509150811561060b5761060485846105f661106f565b6105fe61106f565b85611b97565b5050610861565b61061361383a565b608084015161062990879063ffffffff611c9416565b905061068461063782610cd8565b157f4c69717569646174654f725661706f72697a65496d706c0000000000000000007f4578636573732063616e6e6f74206265206e65676174697665000000000000008760800151610cf5565b61068c61383a565b61069461383a565b604086015160608701516106c991906106b38a8263ffffffff610c0f16565b60a0015189518c9392919063ffffffff610d9316565b915091506106d5613871565b6106dd613871565b61071e8a8a6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152508b608001518c60600151610f3f565b9150915061072a61383a565b610735848484610fd8565b90508560200151816020015111156107975761075086611015565b905061075d81848461103c565b60408a015160608b01519195506107929161077e8d8263ffffffff610c0f16565b60a001518e9291908863ffffffff61156d16565b6107b3565b604089015160608a01516107b3918d918863ffffffff61108f16565b602089015160608a01516107df91906107d28d8263ffffffff610c0f16565b60a0015161044d88611015565b602089015160808a015161080b91906107fe8d8263ffffffff610c0f16565b60a0015161044d85611015565b600d8b015460408a015160208b015160808c015161083992919061082d61106f565b8e606001518a876115e6565b6108548a602001518b604001518c608001516104ba86611015565b6104da8c8b84888c611b97565b505050565b6000610878838363ffffffff611def16565b9050610861817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d69737369