@gooddollar/goodprotocol 1.0.0-beta.32 → 1.0.0-beta.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  2. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  3. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  7. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  8. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  9. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  10. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  26. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  27. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  28. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  29. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +60 -21
  30. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  31. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  32. package/artifacts/contracts/governance/GovarnanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  33. package/artifacts/contracts/governance/GovarnanceStaking.sol/GovernanceStaking.json +2 -2
  34. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  35. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  36. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  37. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  38. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  39. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  40. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +2 -2
  41. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  42. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
  43. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  44. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
  45. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  46. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
  47. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  48. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +2 -2
  49. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  50. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
  51. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  52. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +2 -2
  53. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  54. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
  55. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  56. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +2 -2
  57. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  58. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +6 -6
  59. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  60. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  61. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  62. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
  63. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  64. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +2 -2
  65. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  66. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  67. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  69. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +2 -2
  71. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  73. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +2 -2
  75. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +4 -0
  76. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +224 -0
  77. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +4 -0
  78. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +198 -0
  79. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +2 -2
  81. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +2 -2
  83. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +2 -2
  85. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +2 -2
  87. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +2 -2
  89. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +2 -2
  91. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +2 -2
  93. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +2 -2
  95. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  96. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  97. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  98. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  99. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  100. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  101. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +2 -2
  102. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  103. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  104. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  105. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  106. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  107. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  108. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  109. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  110. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  111. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  112. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +3 -3
  113. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  114. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +4 -4
  115. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  116. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +4 -4
  117. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  118. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +6 -6
  119. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  120. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
  121. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  122. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
  123. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  124. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  125. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  126. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  127. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  128. package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
  129. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  130. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
  131. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  132. package/artifacts/contracts/utils/NameService.sol/NameService.json +2 -2
  133. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  134. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  135. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +7 -2
  136. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  137. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +7 -2
  138. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +4 -0
  139. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +95 -0
  140. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +4 -0
  141. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +185 -0
  142. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  143. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  144. package/contracts/governance/CompoundVotingMachine.sol +99 -83
  145. package/contracts/governance/GovarnanceStaking.sol +3 -5
  146. package/contracts/mocks/UpgradableMocks.sol +31 -0
  147. package/contracts/utils/DAOUpgradeableContract.sol +1 -1
  148. package/contracts/utils/ProtocolUpgrade.sol +7 -14
  149. package/contracts/utils/ProtocolUpgradeFuse.sol +2 -2
  150. package/contracts/utils/ProxyFactory1967.sol +153 -0
  151. package/hardhat.config.ts +1 -1
  152. package/package.json +8 -8
  153. package/releases/deploy-settings.json +3 -3
  154. package/releases/deployment.json +1 -1
  155. package/releases/olddao.json +1 -1
  156. package/scripts/gdx/gdxAirdropCalculation.ts +11 -10
  157. package/scripts/governance/airdropCalculation.ts +235 -65
  158. package/scripts/releaser.js +11 -5
  159. package/scripts/upgradeToV2/upgradeToV2.ts +353 -228
  160. package/test/governance/CompoundVotingMachine.daoscheme.ts +124 -10
  161. package/test/governance/CompoundVotingMachine.guardian.test.ts +38 -7
  162. package/test/localOldDaoDeploy.ts +24 -24
  163. package/test/staking/DonationsStaking.test.ts +13 -12
  164. package/test/utils/ProxyFactory.test.ts +102 -0
  165. package/tsconfig.json +1 -1
  166. package/yarn.lock +253 -32
  167. package/test/simulateInterest.ts +0 -85
@@ -715,8 +715,8 @@
715
715
  "type": "function"
716
716
  }
717
717
  ],
718
- "bytecode": "0x60806040523480156200001157600080fd5b506200008e6040518060400160405280600381526020017f44414900000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f44414900000000000000000000000000000000000000000000000000000000008152506200009460201b60201c565b62000f2e565b600060019054906101000a900460ff1680620000bb575060008054906101000a900460ff16155b620000fd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000f49062000e47565b60405180910390fd5b60008060019054906101000a900460ff1615905080156200014e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6200015e6200020960201b60201c565b6200016e620002e860201b60201c565b6200017e620003c760201b60201c565b6200018e620004a660201b60201c565b620001a083836200058560201b60201c565b620001b06200069860201b60201c565b620001c06200077760201b60201c565b620001d06200087260201b60201c565b620001e283836200095160201b60201c565b8015620002045760008060016101000a81548160ff0219169083151502179055505b505050565b600060019054906101000a900460ff168062000230575060008054906101000a900460ff16155b62000272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002699062000e47565b60405180910390fd5b60008060019054906101000a900460ff161590508015620002c3576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620002e55760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806200030f575060008054906101000a900460ff16155b62000351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003489062000e47565b60405180910390fd5b60008060019054906101000a900460ff161590508015620003a2576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620003c45760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680620003ee575060008054906101000a900460ff16155b62000430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004279062000e47565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000481576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620004a35760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680620004cd575060008054906101000a900460ff16155b6200050f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005069062000e47565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000560576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620005825760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680620005ac575060008054906101000a900460ff16155b620005ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005e59062000e47565b60405180910390fd5b60008060019054906101000a900460ff1615905080156200063f576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8260cc90805190602001906200065792919062000d70565b508160cd90805190602001906200067092919062000d70565b508015620006935760008060016101000a81548160ff0219169083151502179055505b505050565b600060019054906101000a900460ff1680620006bf575060008054906101000a900460ff16155b62000701576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f89062000e47565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000752576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620007745760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806200079e575060008054906101000a900460ff16155b620007e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d79062000e47565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000831576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600061012d60006101000a81548160ff02191690831515021790555080156200086f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168062000899575060008054906101000a900460ff16155b620008db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d29062000e47565b60405180910390fd5b60008060019054906101000a900460ff1615905080156200092c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156200094e5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168062000978575060008054906101000a900460ff16155b620009ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b19062000e47565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000a0b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b62000a2f6000801b62000a2362000ad860201b60201c565b62000ae060201b60201c565b62000a707f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a662000a6462000ad860201b60201c565b62000ae060201b60201c565b62000ab17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a62000aa562000ad860201b60201c565b62000ae060201b60201c565b801562000ad35760008060016101000a81548160ff0219169083151502179055505b505050565b600033905090565b62000af7828262000b2860201b620010201760201c565b62000b23816097600085815260200190815260200160002062000b3e60201b6200102e1790919060201c565b505050565b62000b3a828262000b7660201b60201c565b5050565b600062000b6e836000018373ffffffffffffffffffffffffffffffffffffffff1660001b62000c6860201b60201c565b905092915050565b62000b88828262000ce260201b60201c565b62000c645760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000c0962000ad860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000c7c838362000d4d60201b60201c565b62000cd757826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000cdc565b600090505b92915050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b82805462000d7e9062000e7a565b90600052602060002090601f01602090048101928262000da2576000855562000dee565b82601f1062000dbd57805160ff191683800117855562000dee565b8280016001018555821562000dee579182015b8281111562000ded57825182559160200191906001019062000dd0565b5b50905062000dfd919062000e01565b5090565b5b8082111562000e1c57600081600090555060010162000e02565b5090565b600062000e2f602e8362000e69565b915062000e3c8262000edf565b604082019050919050565b6000602082019050818103600083015262000e628162000e20565b9050919050565b600082825260208201905092915050565b6000600282049050600182168062000e9357607f821691505b6020821081141562000eaa5762000ea962000eb0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6141ee8062000f3e6000396000f3fe608060405234801561001057600080fd5b50600436106101755760003560e01c806301ffc9a71461017a57806306fdde03146101aa57806308bca566146101c8578063095ea7b3146101f857806318160ddd1461022857806323b872dd14610246578063248a9ca3146102765780632f2ff15d146102a6578063313ce567146102c257806336568abe146102e057806339509351146102fc5780633f4ba83a1461032c57806340c10f191461033657806342966c68146103525780634cd88b761461036e5780635c975abb1461038a57806370a08231146103a857806379cc6790146103d85780638456cb59146103f45780639010d07c146103fe57806391d148541461042e57806395d89b411461045e578063a0712d681461047c578063a217fddf146104ac578063a457c2d7146104ca578063a9059cbb146104fa578063ca15c8731461052a578063d53913931461055a578063d547741f14610578578063dd62ed3e14610594578063e63ab1e9146105c4575b600080fd5b610194600480360381019061018f9190613045565b6105e2565b6040516101a1919061350f565b60405180910390f35b6101b261065c565b6040516101bf9190613545565b60405180910390f35b6101e260048036038101906101dd9190612f68565b6106ee565b6040516101ef91906137e7565b60405180910390f35b610212600480360381019061020d9190612f68565b610704565b60405161021f919061350f565b60405180910390f35b610230610722565b60405161023d91906137e7565b60405180910390f35b610260600480360381019061025b9190612f19565b61072c565b60405161026d919061350f565b60405180910390f35b610290600480360381019061028b9190612fa4565b610824565b60405161029d919061352a565b60405180910390f35b6102c060048036038101906102bb9190612fcd565b610844565b005b6102ca610878565b6040516102d79190613802565b60405180910390f35b6102fa60048036038101906102f59190612fcd565b610881565b005b61031660048036038101906103119190612f68565b6108b5565b604051610323919061350f565b60405180910390f35b610334610961565b005b610350600480360381019061034b9190612f68565b6109db565b005b61036c600480360381019061036791906130da565b610a59565b005b6103886004803603810190610383919061306e565b610a6d565b005b610392610b52565b60405161039f919061350f565b60405180910390f35b6103c260048036038101906103bd9190612eb4565b610b6a565b6040516103cf91906137e7565b60405180910390f35b6103f260048036038101906103ed9190612f68565b610bb3565b005b6103fc610c2e565b005b61041860048036038101906104139190613009565b610ca8565b60405161042591906134f4565b60405180910390f35b61044860048036038101906104439190612fcd565b610cd7565b604051610455919061350f565b60405180910390f35b610466610d42565b6040516104739190613545565b60405180910390f35b610496600480360381019061049191906130da565b610dd4565b6040516104a391906137e7565b60405180910390f35b6104b4610de9565b6040516104c1919061352a565b60405180910390f35b6104e460048036038101906104df9190612f68565b610df0565b6040516104f1919061350f565b60405180910390f35b610514600480360381019061050f9190612f68565b610edb565b604051610521919061350f565b60405180910390f35b610544600480360381019061053f9190612fa4565b610ef9565b60405161055191906137e7565b60405180910390f35b610562610f1d565b60405161056f919061352a565b60405180910390f35b610592600480360381019061058d9190612fcd565b610f41565b005b6105ae60048036038101906105a99190612edd565b610f75565b6040516105bb91906137e7565b60405180910390f35b6105cc610ffc565b6040516105d9919061352a565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061065557506106548261105e565b5b9050919050565b606060cc805461066b90613a75565b80601f016020809104026020016040519081016040528092919081815260200182805461069790613a75565b80156106e45780601f106106b9576101008083540402835291602001916106e4565b820191906000526020600020905b8154815290600101906020018083116106c757829003601f168201915b5050505050905090565b60006106fa83836110d8565b6000905092915050565b6000610718610711611239565b8484611241565b6001905092915050565b600060cb54905090565b600061073984848461140c565b600060ca60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610784611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613687565b60405180910390fd5b61081885610810611239565b858403611241565b60019150509392505050565b600060656000838152602001908152602001600020600101549050919050565b61084e8282611690565b610873816097600085815260200190815260200160002061102e90919063ffffffff16565b505050565b60006012905090565b61088b82826116b9565b6108b0816097600085815260200190815260200160002061173c90919063ffffffff16565b505050565b60006109576108c2611239565b848460ca60006108d0611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610952919061389a565b611241565b6001905092915050565b6109927f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61098d611239565b610cd7565b6109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c8906135e7565b60405180910390fd5b6109d961176c565b565b610a0c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610a07611239565b610cd7565b610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906136a7565b60405180910390fd5b610a5582826110d8565b5050565b610a6a610a64611239565b8261180f565b50565b600060019054906101000a900460ff1680610a93575060008054906101000a900460ff16155b610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac990613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015610b22576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b610b2c83836119e8565b8015610b4d5760008060016101000a81548160ff0219169083151502179055505b505050565b600061012d60009054906101000a900460ff16905090565b600060c960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610bc683610bc1611239565b610f75565b905081811015610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c02906136c7565b60405180910390fd5b610c1f83610c17611239565b848403611241565b610c29838361180f565b505050565b610c5f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c5a611239565b610cd7565b610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590613747565b60405180910390fd5b610ca6611b0f565b565b6000610ccf8260976000868152602001908152602001600020611bb390919063ffffffff16565b905092915050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060cd8054610d5190613a75565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7d90613a75565b8015610dca5780601f10610d9f57610100808354040283529160200191610dca565b820191906000526020600020905b815481529060010190602001808311610dad57829003601f168201915b5050505050905090565b6000610de033836110d8565b60009050919050565b6000801b81565b60008060ca6000610dff611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390613767565b60405180910390fd5b610ed0610ec7611239565b85858403611241565b600191505092915050565b6000610eef610ee8611239565b848461140c565b6001905092915050565b6000610f1660976000848152602001908152602001600020611bcd565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610f4b8282611be2565b610f70816097600085815260200190815260200160002061173c90919063ffffffff16565b505050565b600060ca60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61102a8282611c0b565b5050565b6000611056836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611cec565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110d157506110d082611d5c565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f906137a7565b60405180910390fd5b61115460008383611dc6565b8060cb6000828254611166919061389a565b925050819055508060c960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111bc919061389a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161122191906137e7565b60405180910390a361123560008383611dd6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890613727565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613607565b60405180910390fd5b8060ca60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ff91906137e7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613707565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390613587565b60405180910390fd5b6114f7838383611dc6565b600060c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157590613627565b60405180910390fd5b81810360c960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611613919061389a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161167791906137e7565b60405180910390a361168a848484611dd6565b50505050565b61169982610824565b6116aa816116a5611239565b611ddb565b6116b48383611c0b565b505050565b6116c1611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613787565b60405180910390fd5b6117388282611e78565b5050565b6000611764836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611f5a565b905092915050565b611774610b52565b6117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117aa906135a7565b60405180910390fd5b600061012d60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6117f8611239565b60405161180591906134f4565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561187f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611876906136e7565b60405180910390fd5b61188b82600083611dc6565b600060c960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611912576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611909906135c7565b60405180910390fd5b81810360c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160cb600082825461196a919061394a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119cf91906137e7565b60405180910390a36119e383600084611dd6565b505050565b600060019054906101000a900460ff1680611a0e575060008054906101000a900460ff16155b611a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4490613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015611a9d576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b611aa56120e0565b611aad6121b9565b611ab5612292565b611abd61236b565b611ac78383612444565b611acf61254d565b611ad7612626565b611adf61271b565b611ae983836127f4565b8015611b0a5760008060016101000a81548160ff0219169083151502179055505b505050565b611b17610b52565b15611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90613647565b60405180910390fd5b600161012d60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b9c611239565b604051611ba991906134f4565b60405180910390a1565b6000611bc28360000183612945565b60001c905092915050565b6000611bdb82600001612996565b9050919050565b611beb82610824565b611bfc81611bf7611239565b611ddb565b611c068383611e78565b505050565b611c158282610cd7565b611ce85760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c8d611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000611cf883836129a7565b611d51578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611d56565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611dd18383836129ca565b505050565b505050565b611de58282610cd7565b611e7457611e0a8173ffffffffffffffffffffffffffffffffffffffff166014612a22565b611e188360001c6020612a22565b604051602001611e299291906134ba565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b9190613545565b60405180910390fd5b5050565b611e828282610cd7565b15611f565760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611efb611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600080836001016000848152602001908152602001600020549050600081146120d4576000600182611f8c919061394a565b9050600060018660000180549050611fa4919061394a565b905081811461205f576000866000018281548110611feb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612035577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612099577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506120da565b60009150505b92915050565b600060019054906101000a900460ff1680612106575060008054906101000a900460ff16155b612145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213c90613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015612195576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156121b65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806121df575060008054906101000a900460ff16155b61221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590613667565b60405180910390fd5b60008060019054906101000a900460ff16159050801561226e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561228f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806122b8575060008054906101000a900460ff16155b6122f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ee90613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015612347576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156123685760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612391575060008054906101000a900460ff16155b6123d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c790613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015612420576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156124415760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061246a575060008054906101000a900460ff16155b6124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a090613667565b60405180910390fd5b60008060019054906101000a900460ff1615905080156124f9576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8260cc908051906020019061250f929190612d55565b508160cd9080519060200190612526929190612d55565b5080156125485760008060016101000a81548160ff0219169083151502179055505b505050565b600060019054906101000a900460ff1680612573575060008054906101000a900460ff16155b6125b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a990613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015612602576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156126235760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061264c575060008054906101000a900460ff16155b61268b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268290613667565b60405180910390fd5b60008060019054906101000a900460ff1615905080156126db576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600061012d60006101000a81548160ff02191690831515021790555080156127185760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612741575060008054906101000a900460ff16155b612780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277790613667565b60405180910390fd5b60008060019054906101000a900460ff1615905080156127d0576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156127f15760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061281a575060008054906101000a900460ff16155b612859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285090613667565b60405180910390fd5b60008060019054906101000a900460ff1615905080156128a9576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6128bd6000801b6128b8611239565b612d1c565b6128ee7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66128e9611239565b612d1c565b61291f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61291a611239565b612d1c565b80156129405760008060016101000a81548160ff0219169083151502179055505b505050565b6000826000018281548110612983577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6129d5838383612d50565b6129dd610b52565b15612a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a14906137c7565b60405180910390fd5b505050565b606060006002836002612a3591906138f0565b612a3f919061389a565b67ffffffffffffffff811115612a7e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612ab05781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612b0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612b98577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612bd891906138f0565b612be2919061389a565b90505b6001811115612cce577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612c4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b828281518110612c87577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612cc790613a4b565b9050612be5565b5060008414612d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0990613567565b60405180910390fd5b8091505092915050565b612d268282611020565b612d4b816097600085815260200190815260200160002061102e90919063ffffffff16565b505050565b505050565b828054612d6190613a75565b90600052602060002090601f016020900481019282612d835760008555612dca565b82601f10612d9c57805160ff1916838001178555612dca565b82800160010185558215612dca579182015b82811115612dc9578251825591602001919060010190612dae565b5b509050612dd79190612ddb565b5090565b5b80821115612df4576000816000905550600101612ddc565b5090565b6000612e0b612e0684613842565b61381d565b905082815260208101848484011115612e2357600080fd5b612e2e848285613a09565b509392505050565b600081359050612e458161415c565b92915050565b600081359050612e5a81614173565b92915050565b600081359050612e6f8161418a565b92915050565b600082601f830112612e8657600080fd5b8135612e96848260208601612df8565b91505092915050565b600081359050612eae816141a1565b92915050565b600060208284031215612ec657600080fd5b6000612ed484828501612e36565b91505092915050565b60008060408385031215612ef057600080fd5b6000612efe85828601612e36565b9250506020612f0f85828601612e36565b9150509250929050565b600080600060608486031215612f2e57600080fd5b6000612f3c86828701612e36565b9350506020612f4d86828701612e36565b9250506040612f5e86828701612e9f565b9150509250925092565b60008060408385031215612f7b57600080fd5b6000612f8985828601612e36565b9250506020612f9a85828601612e9f565b9150509250929050565b600060208284031215612fb657600080fd5b6000612fc484828501612e4b565b91505092915050565b60008060408385031215612fe057600080fd5b6000612fee85828601612e4b565b9250506020612fff85828601612e36565b9150509250929050565b6000806040838503121561301c57600080fd5b600061302a85828601612e4b565b925050602061303b85828601612e9f565b9150509250929050565b60006020828403121561305757600080fd5b600061306584828501612e60565b91505092915050565b6000806040838503121561308157600080fd5b600083013567ffffffffffffffff81111561309b57600080fd5b6130a785828601612e75565b925050602083013567ffffffffffffffff8111156130c457600080fd5b6130d085828601612e75565b9150509250929050565b6000602082840312156130ec57600080fd5b60006130fa84828501612e9f565b91505092915050565b61310c8161397e565b82525050565b61311b81613990565b82525050565b61312a8161399c565b82525050565b600061313b82613873565b613145818561387e565b9350613155818560208601613a18565b61315e81613b65565b840191505092915050565b600061317482613873565b61317e818561388f565b935061318e818560208601613a18565b80840191505092915050565b60006131a760208361387e565b91506131b282613b76565b602082019050919050565b60006131ca60238361387e565b91506131d582613b9f565b604082019050919050565b60006131ed60148361387e565b91506131f882613bee565b602082019050919050565b600061321060228361387e565b915061321b82613c17565b604082019050919050565b600061323360398361387e565b915061323e82613c66565b604082019050919050565b600061325660228361387e565b915061326182613cb5565b604082019050919050565b600061327960268361387e565b915061328482613d04565b604082019050919050565b600061329c60108361387e565b91506132a782613d53565b602082019050919050565b60006132bf602e8361387e565b91506132ca82613d7c565b604082019050919050565b60006132e260288361387e565b91506132ed82613dcb565b604082019050919050565b600061330560368361387e565b915061331082613e1a565b604082019050919050565b600061332860248361387e565b915061333382613e69565b604082019050919050565b600061334b60218361387e565b915061335682613eb8565b604082019050919050565b600061336e60258361387e565b915061337982613f07565b604082019050919050565b600061339160248361387e565b915061339c82613f56565b604082019050919050565b60006133b460378361387e565b91506133bf82613fa5565b604082019050919050565b60006133d760178361388f565b91506133e282613ff4565b601782019050919050565b60006133fa60258361387e565b91506134058261401d565b604082019050919050565b600061341d60118361388f565b91506134288261406c565b601182019050919050565b6000613440602f8361387e565b915061344b82614095565b604082019050919050565b6000613463601f8361387e565b915061346e826140e4565b602082019050919050565b6000613486602a8361387e565b91506134918261410d565b604082019050919050565b6134a5816139f2565b82525050565b6134b4816139fc565b82525050565b60006134c5826133ca565b91506134d18285613169565b91506134dc82613410565b91506134e88284613169565b91508190509392505050565b60006020820190506135096000830184613103565b92915050565b60006020820190506135246000830184613112565b92915050565b600060208201905061353f6000830184613121565b92915050565b6000602082019050818103600083015261355f8184613130565b905092915050565b600060208201905081810360008301526135808161319a565b9050919050565b600060208201905081810360008301526135a0816131bd565b9050919050565b600060208201905081810360008301526135c0816131e0565b9050919050565b600060208201905081810360008301526135e081613203565b9050919050565b6000602082019050818103600083015261360081613226565b9050919050565b6000602082019050818103600083015261362081613249565b9050919050565b600060208201905081810360008301526136408161326c565b9050919050565b600060208201905081810360008301526136608161328f565b9050919050565b60006020820190508181036000830152613680816132b2565b9050919050565b600060208201905081810360008301526136a0816132d5565b9050919050565b600060208201905081810360008301526136c0816132f8565b9050919050565b600060208201905081810360008301526136e08161331b565b9050919050565b600060208201905081810360008301526137008161333e565b9050919050565b6000602082019050818103600083015261372081613361565b9050919050565b6000602082019050818103600083015261374081613384565b9050919050565b60006020820190508181036000830152613760816133a7565b9050919050565b60006020820190508181036000830152613780816133ed565b9050919050565b600060208201905081810360008301526137a081613433565b9050919050565b600060208201905081810360008301526137c081613456565b9050919050565b600060208201905081810360008301526137e081613479565b9050919050565b60006020820190506137fc600083018461349c565b92915050565b600060208201905061381760008301846134ab565b92915050565b6000613827613838565b90506138338282613aa7565b919050565b6000604051905090565b600067ffffffffffffffff82111561385d5761385c613b36565b5b61386682613b65565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006138a5826139f2565b91506138b0836139f2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138e5576138e4613ad8565b5b828201905092915050565b60006138fb826139f2565b9150613906836139f2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561393f5761393e613ad8565b5b828202905092915050565b6000613955826139f2565b9150613960836139f2565b92508282101561397357613972613ad8565b5b828203905092915050565b6000613989826139d2565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613a36578082015181840152602081019050613a1b565b83811115613a45576000848401525b50505050565b6000613a56826139f2565b91506000821415613a6a57613a69613ad8565b5b600182039050919050565b60006002820490506001821680613a8d57607f821691505b60208210811415613aa157613aa0613b07565b5b50919050565b613ab082613b65565b810181811067ffffffffffffffff82111715613acf57613ace613b36565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f20756e706175736500000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f7665206d696e74657220726f6c6520746f206d696e7400000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f207061757365000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6141658161397e565b811461417057600080fd5b50565b61417c8161399c565b811461418757600080fd5b50565b614193816139a6565b811461419e57600080fd5b50565b6141aa816139f2565b81146141b557600080fd5b5056fea2646970667358221220b95bf99a3bb953f6756f0f6f5ed9b816e5f7e5d93efc5e8f8f56ac9b3fad416864736f6c63430008030033",
719
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101755760003560e01c806301ffc9a71461017a57806306fdde03146101aa57806308bca566146101c8578063095ea7b3146101f857806318160ddd1461022857806323b872dd14610246578063248a9ca3146102765780632f2ff15d146102a6578063313ce567146102c257806336568abe146102e057806339509351146102fc5780633f4ba83a1461032c57806340c10f191461033657806342966c68146103525780634cd88b761461036e5780635c975abb1461038a57806370a08231146103a857806379cc6790146103d85780638456cb59146103f45780639010d07c146103fe57806391d148541461042e57806395d89b411461045e578063a0712d681461047c578063a217fddf146104ac578063a457c2d7146104ca578063a9059cbb146104fa578063ca15c8731461052a578063d53913931461055a578063d547741f14610578578063dd62ed3e14610594578063e63ab1e9146105c4575b600080fd5b610194600480360381019061018f9190613045565b6105e2565b6040516101a1919061350f565b60405180910390f35b6101b261065c565b6040516101bf9190613545565b60405180910390f35b6101e260048036038101906101dd9190612f68565b6106ee565b6040516101ef91906137e7565b60405180910390f35b610212600480360381019061020d9190612f68565b610704565b60405161021f919061350f565b60405180910390f35b610230610722565b60405161023d91906137e7565b60405180910390f35b610260600480360381019061025b9190612f19565b61072c565b60405161026d919061350f565b60405180910390f35b610290600480360381019061028b9190612fa4565b610824565b60405161029d919061352a565b60405180910390f35b6102c060048036038101906102bb9190612fcd565b610844565b005b6102ca610878565b6040516102d79190613802565b60405180910390f35b6102fa60048036038101906102f59190612fcd565b610881565b005b61031660048036038101906103119190612f68565b6108b5565b604051610323919061350f565b60405180910390f35b610334610961565b005b610350600480360381019061034b9190612f68565b6109db565b005b61036c600480360381019061036791906130da565b610a59565b005b6103886004803603810190610383919061306e565b610a6d565b005b610392610b52565b60405161039f919061350f565b60405180910390f35b6103c260048036038101906103bd9190612eb4565b610b6a565b6040516103cf91906137e7565b60405180910390f35b6103f260048036038101906103ed9190612f68565b610bb3565b005b6103fc610c2e565b005b61041860048036038101906104139190613009565b610ca8565b60405161042591906134f4565b60405180910390f35b61044860048036038101906104439190612fcd565b610cd7565b604051610455919061350f565b60405180910390f35b610466610d42565b6040516104739190613545565b60405180910390f35b610496600480360381019061049191906130da565b610dd4565b6040516104a391906137e7565b60405180910390f35b6104b4610de9565b6040516104c1919061352a565b60405180910390f35b6104e460048036038101906104df9190612f68565b610df0565b6040516104f1919061350f565b60405180910390f35b610514600480360381019061050f9190612f68565b610edb565b604051610521919061350f565b60405180910390f35b610544600480360381019061053f9190612fa4565b610ef9565b60405161055191906137e7565b60405180910390f35b610562610f1d565b60405161056f919061352a565b60405180910390f35b610592600480360381019061058d9190612fcd565b610f41565b005b6105ae60048036038101906105a99190612edd565b610f75565b6040516105bb91906137e7565b60405180910390f35b6105cc610ffc565b6040516105d9919061352a565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061065557506106548261105e565b5b9050919050565b606060cc805461066b90613a75565b80601f016020809104026020016040519081016040528092919081815260200182805461069790613a75565b80156106e45780601f106106b9576101008083540402835291602001916106e4565b820191906000526020600020905b8154815290600101906020018083116106c757829003601f168201915b5050505050905090565b60006106fa83836110d8565b6000905092915050565b6000610718610711611239565b8484611241565b6001905092915050565b600060cb54905090565b600061073984848461140c565b600060ca60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610784611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613687565b60405180910390fd5b61081885610810611239565b858403611241565b60019150509392505050565b600060656000838152602001908152602001600020600101549050919050565b61084e8282611690565b610873816097600085815260200190815260200160002061102e90919063ffffffff16565b505050565b60006012905090565b61088b82826116b9565b6108b0816097600085815260200190815260200160002061173c90919063ffffffff16565b505050565b60006109576108c2611239565b848460ca60006108d0611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610952919061389a565b611241565b6001905092915050565b6109927f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61098d611239565b610cd7565b6109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c8906135e7565b60405180910390fd5b6109d961176c565b565b610a0c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610a07611239565b610cd7565b610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906136a7565b60405180910390fd5b610a5582826110d8565b5050565b610a6a610a64611239565b8261180f565b50565b600060019054906101000a900460ff1680610a93575060008054906101000a900460ff16155b610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac990613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015610b22576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b610b2c83836119e8565b8015610b4d5760008060016101000a81548160ff0219169083151502179055505b505050565b600061012d60009054906101000a900460ff16905090565b600060c960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610bc683610bc1611239565b610f75565b905081811015610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c02906136c7565b60405180910390fd5b610c1f83610c17611239565b848403611241565b610c29838361180f565b505050565b610c5f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c5a611239565b610cd7565b610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590613747565b60405180910390fd5b610ca6611b0f565b565b6000610ccf8260976000868152602001908152602001600020611bb390919063ffffffff16565b905092915050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060cd8054610d5190613a75565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7d90613a75565b8015610dca5780601f10610d9f57610100808354040283529160200191610dca565b820191906000526020600020905b815481529060010190602001808311610dad57829003601f168201915b5050505050905090565b6000610de033836110d8565b60009050919050565b6000801b81565b60008060ca6000610dff611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390613767565b60405180910390fd5b610ed0610ec7611239565b85858403611241565b600191505092915050565b6000610eef610ee8611239565b848461140c565b6001905092915050565b6000610f1660976000848152602001908152602001600020611bcd565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610f4b8282611be2565b610f70816097600085815260200190815260200160002061173c90919063ffffffff16565b505050565b600060ca60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61102a8282611c0b565b5050565b6000611056836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611cec565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110d157506110d082611d5c565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f906137a7565b60405180910390fd5b61115460008383611dc6565b8060cb6000828254611166919061389a565b925050819055508060c960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111bc919061389a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161122191906137e7565b60405180910390a361123560008383611dd6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890613727565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613607565b60405180910390fd5b8060ca60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ff91906137e7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613707565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390613587565b60405180910390fd5b6114f7838383611dc6565b600060c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157590613627565b60405180910390fd5b81810360c960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611613919061389a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161167791906137e7565b60405180910390a361168a848484611dd6565b50505050565b61169982610824565b6116aa816116a5611239565b611ddb565b6116b48383611c0b565b505050565b6116c1611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613787565b60405180910390fd5b6117388282611e78565b5050565b6000611764836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611f5a565b905092915050565b611774610b52565b6117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117aa906135a7565b60405180910390fd5b600061012d60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6117f8611239565b60405161180591906134f4565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561187f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611876906136e7565b60405180910390fd5b61188b82600083611dc6565b600060c960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611912576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611909906135c7565b60405180910390fd5b81810360c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160cb600082825461196a919061394a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119cf91906137e7565b60405180910390a36119e383600084611dd6565b505050565b600060019054906101000a900460ff1680611a0e575060008054906101000a900460ff16155b611a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4490613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015611a9d576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b611aa56120e0565b611aad6121b9565b611ab5612292565b611abd61236b565b611ac78383612444565b611acf61254d565b611ad7612626565b611adf61271b565b611ae983836127f4565b8015611b0a5760008060016101000a81548160ff0219169083151502179055505b505050565b611b17610b52565b15611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90613647565b60405180910390fd5b600161012d60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b9c611239565b604051611ba991906134f4565b60405180910390a1565b6000611bc28360000183612945565b60001c905092915050565b6000611bdb82600001612996565b9050919050565b611beb82610824565b611bfc81611bf7611239565b611ddb565b611c068383611e78565b505050565b611c158282610cd7565b611ce85760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c8d611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000611cf883836129a7565b611d51578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611d56565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611dd18383836129ca565b505050565b505050565b611de58282610cd7565b611e7457611e0a8173ffffffffffffffffffffffffffffffffffffffff166014612a22565b611e188360001c6020612a22565b604051602001611e299291906134ba565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b9190613545565b60405180910390fd5b5050565b611e828282610cd7565b15611f565760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611efb611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600080836001016000848152602001908152602001600020549050600081146120d4576000600182611f8c919061394a565b9050600060018660000180549050611fa4919061394a565b905081811461205f576000866000018281548110611feb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612035577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612099577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506120da565b60009150505b92915050565b600060019054906101000a900460ff1680612106575060008054906101000a900460ff16155b612145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213c90613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015612195576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156121b65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806121df575060008054906101000a900460ff16155b61221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590613667565b60405180910390fd5b60008060019054906101000a900460ff16159050801561226e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561228f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806122b8575060008054906101000a900460ff16155b6122f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ee90613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015612347576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156123685760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612391575060008054906101000a900460ff16155b6123d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c790613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015612420576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156124415760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061246a575060008054906101000a900460ff16155b6124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a090613667565b60405180910390fd5b60008060019054906101000a900460ff1615905080156124f9576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8260cc908051906020019061250f929190612d55565b508160cd9080519060200190612526929190612d55565b5080156125485760008060016101000a81548160ff0219169083151502179055505b505050565b600060019054906101000a900460ff1680612573575060008054906101000a900460ff16155b6125b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a990613667565b60405180910390fd5b60008060019054906101000a900460ff161590508015612602576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156126235760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061264c575060008054906101000a900460ff16155b61268b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268290613667565b60405180910390fd5b60008060019054906101000a900460ff1615905080156126db576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600061012d60006101000a81548160ff02191690831515021790555080156127185760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612741575060008054906101000a900460ff16155b612780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277790613667565b60405180910390fd5b60008060019054906101000a900460ff1615905080156127d0576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156127f15760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061281a575060008054906101000a900460ff16155b612859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285090613667565b60405180910390fd5b60008060019054906101000a900460ff1615905080156128a9576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6128bd6000801b6128b8611239565b612d1c565b6128ee7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66128e9611239565b612d1c565b61291f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61291a611239565b612d1c565b80156129405760008060016101000a81548160ff0219169083151502179055505b505050565b6000826000018281548110612983577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6129d5838383612d50565b6129dd610b52565b15612a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a14906137c7565b60405180910390fd5b505050565b606060006002836002612a3591906138f0565b612a3f919061389a565b67ffffffffffffffff811115612a7e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612ab05781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612b0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612b98577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612bd891906138f0565b612be2919061389a565b90505b6001811115612cce577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612c4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b828281518110612c87577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612cc790613a4b565b9050612be5565b5060008414612d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0990613567565b60405180910390fd5b8091505092915050565b612d268282611020565b612d4b816097600085815260200190815260200160002061102e90919063ffffffff16565b505050565b505050565b828054612d6190613a75565b90600052602060002090601f016020900481019282612d835760008555612dca565b82601f10612d9c57805160ff1916838001178555612dca565b82800160010185558215612dca579182015b82811115612dc9578251825591602001919060010190612dae565b5b509050612dd79190612ddb565b5090565b5b80821115612df4576000816000905550600101612ddc565b5090565b6000612e0b612e0684613842565b61381d565b905082815260208101848484011115612e2357600080fd5b612e2e848285613a09565b509392505050565b600081359050612e458161415c565b92915050565b600081359050612e5a81614173565b92915050565b600081359050612e6f8161418a565b92915050565b600082601f830112612e8657600080fd5b8135612e96848260208601612df8565b91505092915050565b600081359050612eae816141a1565b92915050565b600060208284031215612ec657600080fd5b6000612ed484828501612e36565b91505092915050565b60008060408385031215612ef057600080fd5b6000612efe85828601612e36565b9250506020612f0f85828601612e36565b9150509250929050565b600080600060608486031215612f2e57600080fd5b6000612f3c86828701612e36565b9350506020612f4d86828701612e36565b9250506040612f5e86828701612e9f565b9150509250925092565b60008060408385031215612f7b57600080fd5b6000612f8985828601612e36565b9250506020612f9a85828601612e9f565b9150509250929050565b600060208284031215612fb657600080fd5b6000612fc484828501612e4b565b91505092915050565b60008060408385031215612fe057600080fd5b6000612fee85828601612e4b565b9250506020612fff85828601612e36565b9150509250929050565b6000806040838503121561301c57600080fd5b600061302a85828601612e4b565b925050602061303b85828601612e9f565b9150509250929050565b60006020828403121561305757600080fd5b600061306584828501612e60565b91505092915050565b6000806040838503121561308157600080fd5b600083013567ffffffffffffffff81111561309b57600080fd5b6130a785828601612e75565b925050602083013567ffffffffffffffff8111156130c457600080fd5b6130d085828601612e75565b9150509250929050565b6000602082840312156130ec57600080fd5b60006130fa84828501612e9f565b91505092915050565b61310c8161397e565b82525050565b61311b81613990565b82525050565b61312a8161399c565b82525050565b600061313b82613873565b613145818561387e565b9350613155818560208601613a18565b61315e81613b65565b840191505092915050565b600061317482613873565b61317e818561388f565b935061318e818560208601613a18565b80840191505092915050565b60006131a760208361387e565b91506131b282613b76565b602082019050919050565b60006131ca60238361387e565b91506131d582613b9f565b604082019050919050565b60006131ed60148361387e565b91506131f882613bee565b602082019050919050565b600061321060228361387e565b915061321b82613c17565b604082019050919050565b600061323360398361387e565b915061323e82613c66565b604082019050919050565b600061325660228361387e565b915061326182613cb5565b604082019050919050565b600061327960268361387e565b915061328482613d04565b604082019050919050565b600061329c60108361387e565b91506132a782613d53565b602082019050919050565b60006132bf602e8361387e565b91506132ca82613d7c565b604082019050919050565b60006132e260288361387e565b91506132ed82613dcb565b604082019050919050565b600061330560368361387e565b915061331082613e1a565b604082019050919050565b600061332860248361387e565b915061333382613e69565b604082019050919050565b600061334b60218361387e565b915061335682613eb8565b604082019050919050565b600061336e60258361387e565b915061337982613f07565b604082019050919050565b600061339160248361387e565b915061339c82613f56565b604082019050919050565b60006133b460378361387e565b91506133bf82613fa5565b604082019050919050565b60006133d760178361388f565b91506133e282613ff4565b601782019050919050565b60006133fa60258361387e565b91506134058261401d565b604082019050919050565b600061341d60118361388f565b91506134288261406c565b601182019050919050565b6000613440602f8361387e565b915061344b82614095565b604082019050919050565b6000613463601f8361387e565b915061346e826140e4565b602082019050919050565b6000613486602a8361387e565b91506134918261410d565b604082019050919050565b6134a5816139f2565b82525050565b6134b4816139fc565b82525050565b60006134c5826133ca565b91506134d18285613169565b91506134dc82613410565b91506134e88284613169565b91508190509392505050565b60006020820190506135096000830184613103565b92915050565b60006020820190506135246000830184613112565b92915050565b600060208201905061353f6000830184613121565b92915050565b6000602082019050818103600083015261355f8184613130565b905092915050565b600060208201905081810360008301526135808161319a565b9050919050565b600060208201905081810360008301526135a0816131bd565b9050919050565b600060208201905081810360008301526135c0816131e0565b9050919050565b600060208201905081810360008301526135e081613203565b9050919050565b6000602082019050818103600083015261360081613226565b9050919050565b6000602082019050818103600083015261362081613249565b9050919050565b600060208201905081810360008301526136408161326c565b9050919050565b600060208201905081810360008301526136608161328f565b9050919050565b60006020820190508181036000830152613680816132b2565b9050919050565b600060208201905081810360008301526136a0816132d5565b9050919050565b600060208201905081810360008301526136c0816132f8565b9050919050565b600060208201905081810360008301526136e08161331b565b9050919050565b600060208201905081810360008301526137008161333e565b9050919050565b6000602082019050818103600083015261372081613361565b9050919050565b6000602082019050818103600083015261374081613384565b9050919050565b60006020820190508181036000830152613760816133a7565b9050919050565b60006020820190508181036000830152613780816133ed565b9050919050565b600060208201905081810360008301526137a081613433565b9050919050565b600060208201905081810360008301526137c081613456565b9050919050565b600060208201905081810360008301526137e081613479565b9050919050565b60006020820190506137fc600083018461349c565b92915050565b600060208201905061381760008301846134ab565b92915050565b6000613827613838565b90506138338282613aa7565b919050565b6000604051905090565b600067ffffffffffffffff82111561385d5761385c613b36565b5b61386682613b65565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006138a5826139f2565b91506138b0836139f2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138e5576138e4613ad8565b5b828201905092915050565b60006138fb826139f2565b9150613906836139f2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561393f5761393e613ad8565b5b828202905092915050565b6000613955826139f2565b9150613960836139f2565b92508282101561397357613972613ad8565b5b828203905092915050565b6000613989826139d2565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613a36578082015181840152602081019050613a1b565b83811115613a45576000848401525b50505050565b6000613a56826139f2565b91506000821415613a6a57613a69613ad8565b5b600182039050919050565b60006002820490506001821680613a8d57607f821691505b60208210811415613aa157613aa0613b07565b5b50919050565b613ab082613b65565b810181811067ffffffffffffffff82111715613acf57613ace613b36565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f20756e706175736500000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f7665206d696e74657220726f6c6520746f206d696e7400000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f207061757365000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6141658161397e565b811461417057600080fd5b50565b61417c8161399c565b811461418757600080fd5b50565b614193816139a6565b811461419e57600080fd5b50565b6141aa816139f2565b81146141b557600080fd5b5056fea2646970667358221220b95bf99a3bb953f6756f0f6f5ed9b816e5f7e5d93efc5e8f8f56ac9b3fad416864736f6c63430008030033",
718
+ "bytecode": "0x60806040523480156200001157600080fd5b506200008e6040518060400160405280600381526020017f44414900000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f44414900000000000000000000000000000000000000000000000000000000008152506200009460201b60201c565b62000f2e565b600060019054906101000a900460ff1680620000bb575060008054906101000a900460ff16155b620000fd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000f49062000ea7565b60405180910390fd5b60008060019054906101000a900460ff1615905080156200014e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6200015e6200020960201b60201c565b6200016e620002e860201b60201c565b6200017e620003c760201b60201c565b6200018e620004a660201b60201c565b620001a083836200058560201b60201c565b620001b06200069860201b60201c565b620001c06200077760201b60201c565b620001d06200087260201b60201c565b620001e283836200095160201b60201c565b8015620002045760008060016101000a81548160ff0219169083151502179055505b505050565b600060019054906101000a900460ff168062000230575060008054906101000a900460ff16155b62000272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002699062000ea7565b60405180910390fd5b60008060019054906101000a900460ff161590508015620002c3576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620002e55760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806200030f575060008054906101000a900460ff16155b62000351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003489062000ea7565b60405180910390fd5b60008060019054906101000a900460ff161590508015620003a2576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620003c45760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680620003ee575060008054906101000a900460ff16155b62000430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004279062000ea7565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000481576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620004a35760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680620004cd575060008054906101000a900460ff16155b6200050f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005069062000ea7565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000560576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620005825760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680620005ac575060008054906101000a900460ff16155b620005ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005e59062000ea7565b60405180910390fd5b60008060019054906101000a900460ff1615905080156200063f576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8260cc90805190602001906200065792919062000d70565b508160cd90805190602001906200067092919062000d70565b508015620006935760008060016101000a81548160ff0219169083151502179055505b505050565b600060019054906101000a900460ff1680620006bf575060008054906101000a900460ff16155b62000701576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f89062000ea7565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000752576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620007745760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806200079e575060008054906101000a900460ff16155b620007e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d79062000ea7565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000831576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600061012d60006101000a81548160ff02191690831515021790555080156200086f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168062000899575060008054906101000a900460ff16155b620008db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d29062000ea7565b60405180910390fd5b60008060019054906101000a900460ff1615905080156200092c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156200094e5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168062000978575060008054906101000a900460ff16155b620009ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b19062000ea7565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000a0b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b62000a2f6000801b62000a2362000ad860201b60201c565b62000ae060201b60201c565b62000a707f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a662000a6462000ad860201b60201c565b62000ae060201b60201c565b62000ab17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a62000aa562000ad860201b60201c565b62000ae060201b60201c565b801562000ad35760008060016101000a81548160ff0219169083151502179055505b505050565b600033905090565b62000af7828262000b2860201b620010201760201c565b62000b23816097600085815260200190815260200160002062000b3e60201b6200102e1790919060201c565b505050565b62000b3a828262000b7660201b60201c565b5050565b600062000b6e836000018373ffffffffffffffffffffffffffffffffffffffff1660001b62000c6860201b60201c565b905092915050565b62000b88828262000ce260201b60201c565b62000c645760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000c0962000ad860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000c7c838362000d4d60201b60201c565b62000cd757826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000cdc565b600090505b92915050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b82805462000d7e9062000ef8565b90600052602060002090601f01602090048101928262000da2576000855562000dee565b82601f1062000dbd57805160ff191683800117855562000dee565b8280016001018555821562000dee579182015b8281111562000ded57825182559160200191906001019062000dd0565b5b50905062000dfd919062000e01565b5090565b5b8082111562000e1c57600081600090555060010162000e02565b5090565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b600062000e8f602e8362000e20565b915062000e9c8262000e31565b604082019050919050565b6000602082019050818103600083015262000ec28162000e80565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f1157607f821691505b6020821081141562000f285762000f2762000ec9565b5b50919050565b6141428062000f3e6000396000f3fe608060405234801561001057600080fd5b50600436106101755760003560e01c806301ffc9a71461017a57806306fdde03146101aa57806308bca566146101c8578063095ea7b3146101f857806318160ddd1461022857806323b872dd14610246578063248a9ca3146102765780632f2ff15d146102a6578063313ce567146102c257806336568abe146102e057806339509351146102fc5780633f4ba83a1461032c57806340c10f191461033657806342966c68146103525780634cd88b761461036e5780635c975abb1461038a57806370a08231146103a857806379cc6790146103d85780638456cb59146103f45780639010d07c146103fe57806391d148541461042e57806395d89b411461045e578063a0712d681461047c578063a217fddf146104ac578063a457c2d7146104ca578063a9059cbb146104fa578063ca15c8731461052a578063d53913931461055a578063d547741f14610578578063dd62ed3e14610594578063e63ab1e9146105c4575b600080fd5b610194600480360381019061018f9190612d0e565b6105e2565b6040516101a19190612d56565b60405180910390f35b6101b261065c565b6040516101bf9190612e0a565b60405180910390f35b6101e260048036038101906101dd9190612ec0565b6106ee565b6040516101ef9190612f0f565b60405180910390f35b610212600480360381019061020d9190612ec0565b610704565b60405161021f9190612d56565b60405180910390f35b610230610722565b60405161023d9190612f0f565b60405180910390f35b610260600480360381019061025b9190612f2a565b61072c565b60405161026d9190612d56565b60405180910390f35b610290600480360381019061028b9190612fb3565b610824565b60405161029d9190612fef565b60405180910390f35b6102c060048036038101906102bb919061300a565b610844565b005b6102ca610878565b6040516102d79190613066565b60405180910390f35b6102fa60048036038101906102f5919061300a565b610881565b005b61031660048036038101906103119190612ec0565b6108b5565b6040516103239190612d56565b60405180910390f35b610334610961565b005b610350600480360381019061034b9190612ec0565b6109db565b005b61036c60048036038101906103679190613081565b610a59565b005b610388600480360381019061038391906131e3565b610a6d565b005b610392610b52565b60405161039f9190612d56565b60405180910390f35b6103c260048036038101906103bd919061325b565b610b6a565b6040516103cf9190612f0f565b60405180910390f35b6103f260048036038101906103ed9190612ec0565b610bb3565b005b6103fc610c2e565b005b61041860048036038101906104139190613288565b610ca8565b60405161042591906132d7565b60405180910390f35b6104486004803603810190610443919061300a565b610cd7565b6040516104559190612d56565b60405180910390f35b610466610d42565b6040516104739190612e0a565b60405180910390f35b61049660048036038101906104919190613081565b610dd4565b6040516104a39190612f0f565b60405180910390f35b6104b4610de9565b6040516104c19190612fef565b60405180910390f35b6104e460048036038101906104df9190612ec0565b610df0565b6040516104f19190612d56565b60405180910390f35b610514600480360381019061050f9190612ec0565b610edb565b6040516105219190612d56565b60405180910390f35b610544600480360381019061053f9190612fb3565b610ef9565b6040516105519190612f0f565b60405180910390f35b610562610f1d565b60405161056f9190612fef565b60405180910390f35b610592600480360381019061058d919061300a565b610f41565b005b6105ae60048036038101906105a991906132f2565b610f75565b6040516105bb9190612f0f565b60405180910390f35b6105cc610ffc565b6040516105d99190612fef565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061065557506106548261105e565b5b9050919050565b606060cc805461066b90613361565b80601f016020809104026020016040519081016040528092919081815260200182805461069790613361565b80156106e45780601f106106b9576101008083540402835291602001916106e4565b820191906000526020600020905b8154815290600101906020018083116106c757829003601f168201915b5050505050905090565b60006106fa83836110d8565b6000905092915050565b6000610718610711611239565b8484611241565b6001905092915050565b600060cb54905090565b600061073984848461140c565b600060ca60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610784611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613405565b60405180910390fd5b61081885610810611239565b858403611241565b60019150509392505050565b600060656000838152602001908152602001600020600101549050919050565b61084e8282611690565b610873816097600085815260200190815260200160002061102e90919063ffffffff16565b505050565b60006012905090565b61088b82826116b9565b6108b0816097600085815260200190815260200160002061173c90919063ffffffff16565b505050565b60006109576108c2611239565b848460ca60006108d0611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109529190613454565b611241565b6001905092915050565b6109927f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61098d611239565b610cd7565b6109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c89061351c565b60405180910390fd5b6109d961176c565b565b610a0c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610a07611239565b610cd7565b610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906135ae565b60405180910390fd5b610a5582826110d8565b5050565b610a6a610a64611239565b8261180f565b50565b600060019054906101000a900460ff1680610a93575060008054906101000a900460ff16155b610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac990613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015610b22576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b610b2c83836119e8565b8015610b4d5760008060016101000a81548160ff0219169083151502179055505b505050565b600061012d60009054906101000a900460ff16905090565b600060c960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610bc683610bc1611239565b610f75565b905081811015610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c02906136d2565b60405180910390fd5b610c1f83610c17611239565b848403611241565b610c29838361180f565b505050565b610c5f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c5a611239565b610cd7565b610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590613764565b60405180910390fd5b610ca6611b0f565b565b6000610ccf8260976000868152602001908152602001600020611bb390919063ffffffff16565b905092915050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060cd8054610d5190613361565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7d90613361565b8015610dca5780601f10610d9f57610100808354040283529160200191610dca565b820191906000526020600020905b815481529060010190602001808311610dad57829003601f168201915b5050505050905090565b6000610de033836110d8565b60009050919050565b6000801b81565b60008060ca6000610dff611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb3906137f6565b60405180910390fd5b610ed0610ec7611239565b85858403611241565b600191505092915050565b6000610eef610ee8611239565b848461140c565b6001905092915050565b6000610f1660976000848152602001908152602001600020611bcd565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610f4b8282611be2565b610f70816097600085815260200190815260200160002061173c90919063ffffffff16565b505050565b600060ca60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61102a8282611c0b565b5050565b6000611056836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611cec565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110d157506110d082611d5c565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90613862565b60405180910390fd5b61115460008383611dc6565b8060cb60008282546111669190613454565b925050819055508060c960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111bc9190613454565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112219190612f0f565b60405180910390a361123560008383611dd6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a8906138f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613986565b60405180910390fd5b8060ca60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ff9190612f0f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613a18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390613aaa565b60405180910390fd5b6114f7838383611dc6565b600060c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157590613b3c565b60405180910390fd5b81810360c960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116139190613454565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116779190612f0f565b60405180910390a361168a848484611dd6565b50505050565b61169982610824565b6116aa816116a5611239565b611ddb565b6116b48383611c0b565b505050565b6116c1611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613bce565b60405180910390fd5b6117388282611e78565b5050565b6000611764836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611f5a565b905092915050565b611774610b52565b6117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117aa90613c3a565b60405180910390fd5b600061012d60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6117f8611239565b60405161180591906132d7565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561187f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187690613ccc565b60405180910390fd5b61188b82600083611dc6565b600060c960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613d5e565b60405180910390fd5b81810360c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160cb600082825461196a9190613d7e565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119cf9190612f0f565b60405180910390a36119e383600084611dd6565b505050565b600060019054906101000a900460ff1680611a0e575060008054906101000a900460ff16155b611a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4490613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015611a9d576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b611aa561206e565b611aad612147565b611ab5612220565b611abd6122f9565b611ac783836123d2565b611acf6124db565b611ad76125b4565b611adf6126a9565b611ae98383612782565b8015611b0a5760008060016101000a81548160ff0219169083151502179055505b505050565b611b17610b52565b15611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90613dfe565b60405180910390fd5b600161012d60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b9c611239565b604051611ba991906132d7565b60405180910390a1565b6000611bc283600001836128d3565b60001c905092915050565b6000611bdb826000016128fe565b9050919050565b611beb82610824565b611bfc81611bf7611239565b611ddb565b611c068383611e78565b505050565b611c158282610cd7565b611ce85760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c8d611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000611cf8838361290f565b611d51578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611d56565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611dd1838383612932565b505050565b505050565b611de58282610cd7565b611e7457611e0a8173ffffffffffffffffffffffffffffffffffffffff16601461298a565b611e188360001c602061298a565b604051602001611e29929190613ef2565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b9190612e0a565b60405180910390fd5b5050565b611e828282610cd7565b15611f565760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611efb611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60008083600101600084815260200190815260200160002054905060008114612062576000600182611f8c9190613d7e565b9050600060018660000180549050611fa49190613d7e565b9050818114612013576000866000018281548110611fc557611fc4613f2c565b5b9060005260206000200154905080876000018481548110611fe957611fe8613f2c565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061202757612026613f5b565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612068565b60009150505b92915050565b600060019054906101000a900460ff1680612094575060008054906101000a900460ff16155b6120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612123576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156121445760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061216d575060008054906101000a900460ff16155b6121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a390613640565b60405180910390fd5b60008060019054906101000a900460ff1615905080156121fc576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561221d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612246575060008054906101000a900460ff16155b612285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227c90613640565b60405180910390fd5b60008060019054906101000a900460ff1615905080156122d5576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156122f65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061231f575060008054906101000a900460ff16155b61235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235590613640565b60405180910390fd5b60008060019054906101000a900460ff1615905080156123ae576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156123cf5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806123f8575060008054906101000a900460ff16155b612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242e90613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612487576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8260cc908051906020019061249d929190612bff565b508160cd90805190602001906124b4929190612bff565b5080156124d65760008060016101000a81548160ff0219169083151502179055505b505050565b600060019054906101000a900460ff1680612501575060008054906101000a900460ff16155b612540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253790613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612590576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156125b15760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806125da575060008054906101000a900460ff16155b612619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261090613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612669576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600061012d60006101000a81548160ff02191690831515021790555080156126a65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806126cf575060008054906101000a900460ff16155b61270e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270590613640565b60405180910390fd5b60008060019054906101000a900460ff16159050801561275e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561277f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806127a8575060008054906101000a900460ff16155b6127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de90613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612837576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61284b6000801b612846611239565b612bc6565b61287c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6612877611239565b612bc6565b6128ad7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6128a8611239565b612bc6565b80156128ce5760008060016101000a81548160ff0219169083151502179055505b505050565b60008260000182815481106128eb576128ea613f2c565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b61293d838383612bfa565b612945610b52565b15612985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297c90613ffc565b60405180910390fd5b505050565b60606000600283600261299d919061401c565b6129a79190613454565b67ffffffffffffffff8111156129c0576129bf6130b8565b5b6040519080825280601f01601f1916602001820160405280156129f25781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612a2a57612a29613f2c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612a8e57612a8d613f2c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612ace919061401c565b612ad89190613454565b90505b6001811115612b78577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612b1a57612b19613f2c565b5b1a60f81b828281518110612b3157612b30613f2c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612b7190614076565b9050612adb565b5060008414612bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb3906140ec565b60405180910390fd5b8091505092915050565b612bd08282611020565b612bf5816097600085815260200190815260200160002061102e90919063ffffffff16565b505050565b505050565b828054612c0b90613361565b90600052602060002090601f016020900481019282612c2d5760008555612c74565b82601f10612c4657805160ff1916838001178555612c74565b82800160010185558215612c74579182015b82811115612c73578251825591602001919060010190612c58565b5b509050612c819190612c85565b5090565b5b80821115612c9e576000816000905550600101612c86565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612ceb81612cb6565b8114612cf657600080fd5b50565b600081359050612d0881612ce2565b92915050565b600060208284031215612d2457612d23612cac565b5b6000612d3284828501612cf9565b91505092915050565b60008115159050919050565b612d5081612d3b565b82525050565b6000602082019050612d6b6000830184612d47565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612dab578082015181840152602081019050612d90565b83811115612dba576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ddc82612d71565b612de68185612d7c565b9350612df6818560208601612d8d565b612dff81612dc0565b840191505092915050565b60006020820190508181036000830152612e248184612dd1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e5782612e2c565b9050919050565b612e6781612e4c565b8114612e7257600080fd5b50565b600081359050612e8481612e5e565b92915050565b6000819050919050565b612e9d81612e8a565b8114612ea857600080fd5b50565b600081359050612eba81612e94565b92915050565b60008060408385031215612ed757612ed6612cac565b5b6000612ee585828601612e75565b9250506020612ef685828601612eab565b9150509250929050565b612f0981612e8a565b82525050565b6000602082019050612f246000830184612f00565b92915050565b600080600060608486031215612f4357612f42612cac565b5b6000612f5186828701612e75565b9350506020612f6286828701612e75565b9250506040612f7386828701612eab565b9150509250925092565b6000819050919050565b612f9081612f7d565b8114612f9b57600080fd5b50565b600081359050612fad81612f87565b92915050565b600060208284031215612fc957612fc8612cac565b5b6000612fd784828501612f9e565b91505092915050565b612fe981612f7d565b82525050565b60006020820190506130046000830184612fe0565b92915050565b6000806040838503121561302157613020612cac565b5b600061302f85828601612f9e565b925050602061304085828601612e75565b9150509250929050565b600060ff82169050919050565b6130608161304a565b82525050565b600060208201905061307b6000830184613057565b92915050565b60006020828403121561309757613096612cac565b5b60006130a584828501612eab565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130f082612dc0565b810181811067ffffffffffffffff8211171561310f5761310e6130b8565b5b80604052505050565b6000613122612ca2565b905061312e82826130e7565b919050565b600067ffffffffffffffff82111561314e5761314d6130b8565b5b61315782612dc0565b9050602081019050919050565b82818337600083830152505050565b600061318661318184613133565b613118565b9050828152602081018484840111156131a2576131a16130b3565b5b6131ad848285613164565b509392505050565b600082601f8301126131ca576131c96130ae565b5b81356131da848260208601613173565b91505092915050565b600080604083850312156131fa576131f9612cac565b5b600083013567ffffffffffffffff81111561321857613217612cb1565b5b613224858286016131b5565b925050602083013567ffffffffffffffff81111561324557613244612cb1565b5b613251858286016131b5565b9150509250929050565b60006020828403121561327157613270612cac565b5b600061327f84828501612e75565b91505092915050565b6000806040838503121561329f5761329e612cac565b5b60006132ad85828601612f9e565b92505060206132be85828601612eab565b9150509250929050565b6132d181612e4c565b82525050565b60006020820190506132ec60008301846132c8565b92915050565b6000806040838503121561330957613308612cac565b5b600061331785828601612e75565b925050602061332885828601612e75565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061337957607f821691505b6020821081141561338d5761338c613332565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006133ef602883612d7c565b91506133fa82613393565b604082019050919050565b6000602082019050818103600083015261341e816133e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061345f82612e8a565b915061346a83612e8a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561349f5761349e613425565b5b828201905092915050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f20756e706175736500000000000000602082015250565b6000613506603983612d7c565b9150613511826134aa565b604082019050919050565b60006020820190508181036000830152613535816134f9565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f7665206d696e74657220726f6c6520746f206d696e7400000000000000000000602082015250565b6000613598603683612d7c565b91506135a38261353c565b604082019050919050565b600060208201905081810360008301526135c78161358b565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b600061362a602e83612d7c565b9150613635826135ce565b604082019050919050565b600060208201905081810360008301526136598161361d565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b60006136bc602483612d7c565b91506136c782613660565b604082019050919050565b600060208201905081810360008301526136eb816136af565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f207061757365000000000000000000602082015250565b600061374e603783612d7c565b9150613759826136f2565b604082019050919050565b6000602082019050818103600083015261377d81613741565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006137e0602583612d7c565b91506137eb82613784565b604082019050919050565b6000602082019050818103600083015261380f816137d3565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061384c601f83612d7c565b915061385782613816565b602082019050919050565b6000602082019050818103600083015261387b8161383f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138de602483612d7c565b91506138e982613882565b604082019050919050565b6000602082019050818103600083015261390d816138d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613970602283612d7c565b915061397b82613914565b604082019050919050565b6000602082019050818103600083015261399f81613963565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a02602583612d7c565b9150613a0d826139a6565b604082019050919050565b60006020820190508181036000830152613a31816139f5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a94602383612d7c565b9150613a9f82613a38565b604082019050919050565b60006020820190508181036000830152613ac381613a87565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b26602683612d7c565b9150613b3182613aca565b604082019050919050565b60006020820190508181036000830152613b5581613b19565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613bb8602f83612d7c565b9150613bc382613b5c565b604082019050919050565b60006020820190508181036000830152613be781613bab565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613c24601483612d7c565b9150613c2f82613bee565b602082019050919050565b60006020820190508181036000830152613c5381613c17565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cb6602183612d7c565b9150613cc182613c5a565b604082019050919050565b60006020820190508181036000830152613ce581613ca9565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d48602283612d7c565b9150613d5382613cec565b604082019050919050565b60006020820190508181036000830152613d7781613d3b565b9050919050565b6000613d8982612e8a565b9150613d9483612e8a565b925082821015613da757613da6613425565b5b828203905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613de8601083612d7c565b9150613df382613db2565b602082019050919050565b60006020820190508181036000830152613e1781613ddb565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613e5f601783613e1e565b9150613e6a82613e29565b601782019050919050565b6000613e8082612d71565b613e8a8185613e1e565b9350613e9a818560208601612d8d565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000613edc601183613e1e565b9150613ee782613ea6565b601182019050919050565b6000613efd82613e52565b9150613f098285613e75565b9150613f1482613ecf565b9150613f208284613e75565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6000613fe6602a83612d7c565b9150613ff182613f8a565b604082019050919050565b6000602082019050818103600083015261401581613fd9565b9050919050565b600061402782612e8a565b915061403283612e8a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561406b5761406a613425565b5b828202905092915050565b600061408182612e8a565b9150600082141561409557614094613425565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006140d6602083612d7c565b91506140e1826140a0565b602082019050919050565b60006020820190508181036000830152614105816140c9565b905091905056fea2646970667358221220a4c702030d9cd71d9923bdefa000f828d314b58c8cb38c03e77342f297704c8764736f6c63430008080033",
719
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101755760003560e01c806301ffc9a71461017a57806306fdde03146101aa57806308bca566146101c8578063095ea7b3146101f857806318160ddd1461022857806323b872dd14610246578063248a9ca3146102765780632f2ff15d146102a6578063313ce567146102c257806336568abe146102e057806339509351146102fc5780633f4ba83a1461032c57806340c10f191461033657806342966c68146103525780634cd88b761461036e5780635c975abb1461038a57806370a08231146103a857806379cc6790146103d85780638456cb59146103f45780639010d07c146103fe57806391d148541461042e57806395d89b411461045e578063a0712d681461047c578063a217fddf146104ac578063a457c2d7146104ca578063a9059cbb146104fa578063ca15c8731461052a578063d53913931461055a578063d547741f14610578578063dd62ed3e14610594578063e63ab1e9146105c4575b600080fd5b610194600480360381019061018f9190612d0e565b6105e2565b6040516101a19190612d56565b60405180910390f35b6101b261065c565b6040516101bf9190612e0a565b60405180910390f35b6101e260048036038101906101dd9190612ec0565b6106ee565b6040516101ef9190612f0f565b60405180910390f35b610212600480360381019061020d9190612ec0565b610704565b60405161021f9190612d56565b60405180910390f35b610230610722565b60405161023d9190612f0f565b60405180910390f35b610260600480360381019061025b9190612f2a565b61072c565b60405161026d9190612d56565b60405180910390f35b610290600480360381019061028b9190612fb3565b610824565b60405161029d9190612fef565b60405180910390f35b6102c060048036038101906102bb919061300a565b610844565b005b6102ca610878565b6040516102d79190613066565b60405180910390f35b6102fa60048036038101906102f5919061300a565b610881565b005b61031660048036038101906103119190612ec0565b6108b5565b6040516103239190612d56565b60405180910390f35b610334610961565b005b610350600480360381019061034b9190612ec0565b6109db565b005b61036c60048036038101906103679190613081565b610a59565b005b610388600480360381019061038391906131e3565b610a6d565b005b610392610b52565b60405161039f9190612d56565b60405180910390f35b6103c260048036038101906103bd919061325b565b610b6a565b6040516103cf9190612f0f565b60405180910390f35b6103f260048036038101906103ed9190612ec0565b610bb3565b005b6103fc610c2e565b005b61041860048036038101906104139190613288565b610ca8565b60405161042591906132d7565b60405180910390f35b6104486004803603810190610443919061300a565b610cd7565b6040516104559190612d56565b60405180910390f35b610466610d42565b6040516104739190612e0a565b60405180910390f35b61049660048036038101906104919190613081565b610dd4565b6040516104a39190612f0f565b60405180910390f35b6104b4610de9565b6040516104c19190612fef565b60405180910390f35b6104e460048036038101906104df9190612ec0565b610df0565b6040516104f19190612d56565b60405180910390f35b610514600480360381019061050f9190612ec0565b610edb565b6040516105219190612d56565b60405180910390f35b610544600480360381019061053f9190612fb3565b610ef9565b6040516105519190612f0f565b60405180910390f35b610562610f1d565b60405161056f9190612fef565b60405180910390f35b610592600480360381019061058d919061300a565b610f41565b005b6105ae60048036038101906105a991906132f2565b610f75565b6040516105bb9190612f0f565b60405180910390f35b6105cc610ffc565b6040516105d99190612fef565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061065557506106548261105e565b5b9050919050565b606060cc805461066b90613361565b80601f016020809104026020016040519081016040528092919081815260200182805461069790613361565b80156106e45780601f106106b9576101008083540402835291602001916106e4565b820191906000526020600020905b8154815290600101906020018083116106c757829003601f168201915b5050505050905090565b60006106fa83836110d8565b6000905092915050565b6000610718610711611239565b8484611241565b6001905092915050565b600060cb54905090565b600061073984848461140c565b600060ca60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610784611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90613405565b60405180910390fd5b61081885610810611239565b858403611241565b60019150509392505050565b600060656000838152602001908152602001600020600101549050919050565b61084e8282611690565b610873816097600085815260200190815260200160002061102e90919063ffffffff16565b505050565b60006012905090565b61088b82826116b9565b6108b0816097600085815260200190815260200160002061173c90919063ffffffff16565b505050565b60006109576108c2611239565b848460ca60006108d0611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109529190613454565b611241565b6001905092915050565b6109927f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61098d611239565b610cd7565b6109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c89061351c565b60405180910390fd5b6109d961176c565b565b610a0c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610a07611239565b610cd7565b610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906135ae565b60405180910390fd5b610a5582826110d8565b5050565b610a6a610a64611239565b8261180f565b50565b600060019054906101000a900460ff1680610a93575060008054906101000a900460ff16155b610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac990613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015610b22576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b610b2c83836119e8565b8015610b4d5760008060016101000a81548160ff0219169083151502179055505b505050565b600061012d60009054906101000a900460ff16905090565b600060c960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610bc683610bc1611239565b610f75565b905081811015610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c02906136d2565b60405180910390fd5b610c1f83610c17611239565b848403611241565b610c29838361180f565b505050565b610c5f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c5a611239565b610cd7565b610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590613764565b60405180910390fd5b610ca6611b0f565b565b6000610ccf8260976000868152602001908152602001600020611bb390919063ffffffff16565b905092915050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060cd8054610d5190613361565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7d90613361565b8015610dca5780601f10610d9f57610100808354040283529160200191610dca565b820191906000526020600020905b815481529060010190602001808311610dad57829003601f168201915b5050505050905090565b6000610de033836110d8565b60009050919050565b6000801b81565b60008060ca6000610dff611239565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb3906137f6565b60405180910390fd5b610ed0610ec7611239565b85858403611241565b600191505092915050565b6000610eef610ee8611239565b848461140c565b6001905092915050565b6000610f1660976000848152602001908152602001600020611bcd565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610f4b8282611be2565b610f70816097600085815260200190815260200160002061173c90919063ffffffff16565b505050565b600060ca60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61102a8282611c0b565b5050565b6000611056836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611cec565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110d157506110d082611d5c565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90613862565b60405180910390fd5b61115460008383611dc6565b8060cb60008282546111669190613454565b925050819055508060c960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111bc9190613454565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112219190612f0f565b60405180910390a361123560008383611dd6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a8906138f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613986565b60405180910390fd5b8060ca60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ff9190612f0f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613a18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390613aaa565b60405180910390fd5b6114f7838383611dc6565b600060c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157590613b3c565b60405180910390fd5b81810360c960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116139190613454565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116779190612f0f565b60405180910390a361168a848484611dd6565b50505050565b61169982610824565b6116aa816116a5611239565b611ddb565b6116b48383611c0b565b505050565b6116c1611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613bce565b60405180910390fd5b6117388282611e78565b5050565b6000611764836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611f5a565b905092915050565b611774610b52565b6117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117aa90613c3a565b60405180910390fd5b600061012d60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6117f8611239565b60405161180591906132d7565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561187f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187690613ccc565b60405180910390fd5b61188b82600083611dc6565b600060c960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613d5e565b60405180910390fd5b81810360c960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160cb600082825461196a9190613d7e565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119cf9190612f0f565b60405180910390a36119e383600084611dd6565b505050565b600060019054906101000a900460ff1680611a0e575060008054906101000a900460ff16155b611a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4490613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015611a9d576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b611aa561206e565b611aad612147565b611ab5612220565b611abd6122f9565b611ac783836123d2565b611acf6124db565b611ad76125b4565b611adf6126a9565b611ae98383612782565b8015611b0a5760008060016101000a81548160ff0219169083151502179055505b505050565b611b17610b52565b15611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e90613dfe565b60405180910390fd5b600161012d60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b9c611239565b604051611ba991906132d7565b60405180910390a1565b6000611bc283600001836128d3565b60001c905092915050565b6000611bdb826000016128fe565b9050919050565b611beb82610824565b611bfc81611bf7611239565b611ddb565b611c068383611e78565b505050565b611c158282610cd7565b611ce85760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c8d611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000611cf8838361290f565b611d51578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611d56565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611dd1838383612932565b505050565b505050565b611de58282610cd7565b611e7457611e0a8173ffffffffffffffffffffffffffffffffffffffff16601461298a565b611e188360001c602061298a565b604051602001611e29929190613ef2565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b9190612e0a565b60405180910390fd5b5050565b611e828282610cd7565b15611f565760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611efb611239565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60008083600101600084815260200190815260200160002054905060008114612062576000600182611f8c9190613d7e565b9050600060018660000180549050611fa49190613d7e565b9050818114612013576000866000018281548110611fc557611fc4613f2c565b5b9060005260206000200154905080876000018481548110611fe957611fe8613f2c565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061202757612026613f5b565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612068565b60009150505b92915050565b600060019054906101000a900460ff1680612094575060008054906101000a900460ff16155b6120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612123576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156121445760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061216d575060008054906101000a900460ff16155b6121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a390613640565b60405180910390fd5b60008060019054906101000a900460ff1615905080156121fc576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561221d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612246575060008054906101000a900460ff16155b612285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227c90613640565b60405180910390fd5b60008060019054906101000a900460ff1615905080156122d5576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156122f65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061231f575060008054906101000a900460ff16155b61235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235590613640565b60405180910390fd5b60008060019054906101000a900460ff1615905080156123ae576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156123cf5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806123f8575060008054906101000a900460ff16155b612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242e90613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612487576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8260cc908051906020019061249d929190612bff565b508160cd90805190602001906124b4929190612bff565b5080156124d65760008060016101000a81548160ff0219169083151502179055505b505050565b600060019054906101000a900460ff1680612501575060008054906101000a900460ff16155b612540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253790613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612590576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156125b15760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806125da575060008054906101000a900460ff16155b612619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261090613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612669576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600061012d60006101000a81548160ff02191690831515021790555080156126a65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806126cf575060008054906101000a900460ff16155b61270e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270590613640565b60405180910390fd5b60008060019054906101000a900460ff16159050801561275e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561277f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806127a8575060008054906101000a900460ff16155b6127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de90613640565b60405180910390fd5b60008060019054906101000a900460ff161590508015612837576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61284b6000801b612846611239565b612bc6565b61287c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6612877611239565b612bc6565b6128ad7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6128a8611239565b612bc6565b80156128ce5760008060016101000a81548160ff0219169083151502179055505b505050565b60008260000182815481106128eb576128ea613f2c565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b61293d838383612bfa565b612945610b52565b15612985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297c90613ffc565b60405180910390fd5b505050565b60606000600283600261299d919061401c565b6129a79190613454565b67ffffffffffffffff8111156129c0576129bf6130b8565b5b6040519080825280601f01601f1916602001820160405280156129f25781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612a2a57612a29613f2c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612a8e57612a8d613f2c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612ace919061401c565b612ad89190613454565b90505b6001811115612b78577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612b1a57612b19613f2c565b5b1a60f81b828281518110612b3157612b30613f2c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612b7190614076565b9050612adb565b5060008414612bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb3906140ec565b60405180910390fd5b8091505092915050565b612bd08282611020565b612bf5816097600085815260200190815260200160002061102e90919063ffffffff16565b505050565b505050565b828054612c0b90613361565b90600052602060002090601f016020900481019282612c2d5760008555612c74565b82601f10612c4657805160ff1916838001178555612c74565b82800160010185558215612c74579182015b82811115612c73578251825591602001919060010190612c58565b5b509050612c819190612c85565b5090565b5b80821115612c9e576000816000905550600101612c86565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612ceb81612cb6565b8114612cf657600080fd5b50565b600081359050612d0881612ce2565b92915050565b600060208284031215612d2457612d23612cac565b5b6000612d3284828501612cf9565b91505092915050565b60008115159050919050565b612d5081612d3b565b82525050565b6000602082019050612d6b6000830184612d47565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612dab578082015181840152602081019050612d90565b83811115612dba576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ddc82612d71565b612de68185612d7c565b9350612df6818560208601612d8d565b612dff81612dc0565b840191505092915050565b60006020820190508181036000830152612e248184612dd1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e5782612e2c565b9050919050565b612e6781612e4c565b8114612e7257600080fd5b50565b600081359050612e8481612e5e565b92915050565b6000819050919050565b612e9d81612e8a565b8114612ea857600080fd5b50565b600081359050612eba81612e94565b92915050565b60008060408385031215612ed757612ed6612cac565b5b6000612ee585828601612e75565b9250506020612ef685828601612eab565b9150509250929050565b612f0981612e8a565b82525050565b6000602082019050612f246000830184612f00565b92915050565b600080600060608486031215612f4357612f42612cac565b5b6000612f5186828701612e75565b9350506020612f6286828701612e75565b9250506040612f7386828701612eab565b9150509250925092565b6000819050919050565b612f9081612f7d565b8114612f9b57600080fd5b50565b600081359050612fad81612f87565b92915050565b600060208284031215612fc957612fc8612cac565b5b6000612fd784828501612f9e565b91505092915050565b612fe981612f7d565b82525050565b60006020820190506130046000830184612fe0565b92915050565b6000806040838503121561302157613020612cac565b5b600061302f85828601612f9e565b925050602061304085828601612e75565b9150509250929050565b600060ff82169050919050565b6130608161304a565b82525050565b600060208201905061307b6000830184613057565b92915050565b60006020828403121561309757613096612cac565b5b60006130a584828501612eab565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130f082612dc0565b810181811067ffffffffffffffff8211171561310f5761310e6130b8565b5b80604052505050565b6000613122612ca2565b905061312e82826130e7565b919050565b600067ffffffffffffffff82111561314e5761314d6130b8565b5b61315782612dc0565b9050602081019050919050565b82818337600083830152505050565b600061318661318184613133565b613118565b9050828152602081018484840111156131a2576131a16130b3565b5b6131ad848285613164565b509392505050565b600082601f8301126131ca576131c96130ae565b5b81356131da848260208601613173565b91505092915050565b600080604083850312156131fa576131f9612cac565b5b600083013567ffffffffffffffff81111561321857613217612cb1565b5b613224858286016131b5565b925050602083013567ffffffffffffffff81111561324557613244612cb1565b5b613251858286016131b5565b9150509250929050565b60006020828403121561327157613270612cac565b5b600061327f84828501612e75565b91505092915050565b6000806040838503121561329f5761329e612cac565b5b60006132ad85828601612f9e565b92505060206132be85828601612eab565b9150509250929050565b6132d181612e4c565b82525050565b60006020820190506132ec60008301846132c8565b92915050565b6000806040838503121561330957613308612cac565b5b600061331785828601612e75565b925050602061332885828601612e75565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061337957607f821691505b6020821081141561338d5761338c613332565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006133ef602883612d7c565b91506133fa82613393565b604082019050919050565b6000602082019050818103600083015261341e816133e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061345f82612e8a565b915061346a83612e8a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561349f5761349e613425565b5b828201905092915050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f20756e706175736500000000000000602082015250565b6000613506603983612d7c565b9150613511826134aa565b604082019050919050565b60006020820190508181036000830152613535816134f9565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f7665206d696e74657220726f6c6520746f206d696e7400000000000000000000602082015250565b6000613598603683612d7c565b91506135a38261353c565b604082019050919050565b600060208201905081810360008301526135c78161358b565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b600061362a602e83612d7c565b9150613635826135ce565b604082019050919050565b600060208201905081810360008301526136598161361d565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b60006136bc602483612d7c565b91506136c782613660565b604082019050919050565b600060208201905081810360008301526136eb816136af565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f207061757365000000000000000000602082015250565b600061374e603783612d7c565b9150613759826136f2565b604082019050919050565b6000602082019050818103600083015261377d81613741565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006137e0602583612d7c565b91506137eb82613784565b604082019050919050565b6000602082019050818103600083015261380f816137d3565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061384c601f83612d7c565b915061385782613816565b602082019050919050565b6000602082019050818103600083015261387b8161383f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138de602483612d7c565b91506138e982613882565b604082019050919050565b6000602082019050818103600083015261390d816138d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613970602283612d7c565b915061397b82613914565b604082019050919050565b6000602082019050818103600083015261399f81613963565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a02602583612d7c565b9150613a0d826139a6565b604082019050919050565b60006020820190508181036000830152613a31816139f5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a94602383612d7c565b9150613a9f82613a38565b604082019050919050565b60006020820190508181036000830152613ac381613a87565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b26602683612d7c565b9150613b3182613aca565b604082019050919050565b60006020820190508181036000830152613b5581613b19565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613bb8602f83612d7c565b9150613bc382613b5c565b604082019050919050565b60006020820190508181036000830152613be781613bab565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613c24601483612d7c565b9150613c2f82613bee565b602082019050919050565b60006020820190508181036000830152613c5381613c17565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cb6602183612d7c565b9150613cc182613c5a565b604082019050919050565b60006020820190508181036000830152613ce581613ca9565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d48602283612d7c565b9150613d5382613cec565b604082019050919050565b60006020820190508181036000830152613d7781613d3b565b9050919050565b6000613d8982612e8a565b9150613d9483612e8a565b925082821015613da757613da6613425565b5b828203905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613de8601083612d7c565b9150613df382613db2565b602082019050919050565b60006020820190508181036000830152613e1781613ddb565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613e5f601783613e1e565b9150613e6a82613e29565b601782019050919050565b6000613e8082612d71565b613e8a8185613e1e565b9350613e9a818560208601612d8d565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000613edc601183613e1e565b9150613ee782613ea6565b601182019050919050565b6000613efd82613e52565b9150613f098285613e75565b9150613f1482613ecf565b9150613f208284613e75565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6000613fe6602a83612d7c565b9150613ff182613f8a565b604082019050919050565b6000602082019050818103600083015261401581613fd9565b9050919050565b600061402782612e8a565b915061403283612e8a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561406b5761406a613425565b5b828202905092915050565b600061408182612e8a565b9150600082141561409557614094613425565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006140d6602083612d7c565b91506140e1826140a0565b602082019050919050565b60006020820190508181036000830152614105816140c9565b905091905056fea2646970667358221220a4c702030d9cd71d9923bdefa000f828d314b58c8cb38c03e77342f297704c8764736f6c63430008080033",
720
720
  "linkReferences": {},
721
721
  "deployedLinkReferences": {}
722
722
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3209e5b39cdfe6834e6f6442881fa1e6.json"
3
+ "buildInfo": "../../../build-info/c95fb6bb6c0347b906a7ac81aab25093.json"
4
4
  }
@@ -17,8 +17,8 @@
17
17
  "type": "function"
18
18
  }
19
19
  ],
20
- "bytecode": "0x608060405234801561001057600080fd5b5060bc8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806350d25bcd14602d575b600080fd5b60336047565b604051603e91906063565b60405180910390f35b6000660136935742d8b9905090565b605d81607c565b82525050565b6000602082019050607660008301846056565b92915050565b600081905091905056fea26469706673582212206b5d4280ec21c3613c088bf2f0435aac7f6d5c96454d442c2d69821cbc177d8a64736f6c63430008030033",
21
- "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c806350d25bcd14602d575b600080fd5b60336047565b604051603e91906063565b60405180910390f35b6000660136935742d8b9905090565b605d81607c565b82525050565b6000602082019050607660008301846056565b92915050565b600081905091905056fea26469706673582212206b5d4280ec21c3613c088bf2f0435aac7f6d5c96454d442c2d69821cbc177d8a64736f6c63430008030033",
20
+ "bytecode": "0x608060405234801561001057600080fd5b5060bc8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806350d25bcd14602d575b600080fd5b60336047565b604051603e9190606d565b60405180910390f35b6000660136935742d8b9905090565b6000819050919050565b6067816056565b82525050565b6000602082019050608060008301846060565b9291505056fea26469706673582212207b8235e457dc03245cd6e0a9fed0b4808db419f6e101a90569acf48526d9be1664736f6c63430008080033",
21
+ "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c806350d25bcd14602d575b600080fd5b60336047565b604051603e9190606d565b60405180910390f35b6000660136935742d8b9905090565b6000819050919050565b6067816056565b82525050565b6000602082019050608060008301846060565b9291505056fea26469706673582212207b8235e457dc03245cd6e0a9fed0b4808db419f6e101a90569acf48526d9be1664736f6c63430008080033",
22
22
  "linkReferences": {},
23
23
  "deployedLinkReferences": {}
24
24
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3209e5b39cdfe6834e6f6442881fa1e6.json"
3
+ "buildInfo": "../../../build-info/c95fb6bb6c0347b906a7ac81aab25093.json"
4
4
  }