@venusprotocol/venus-protocol 7.6.0-dev.2 → 7.6.0-dev.4

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 (131) hide show
  1. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +1 -1
  2. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +1 -1
  3. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +1 -1
  4. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +1 -1
  5. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +1 -1
  6. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +1 -1
  7. package/artifacts/@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +1 -1
  8. package/artifacts/@venusprotocol/solidity-utilities/contracts/TimeManagerV8.sol/TimeManagerV8.dbg.json +1 -1
  9. package/artifacts/build-info/{db82b17d0da6752b00ad696fe36aa8fb.json → f873604cc800d476500cd733aebbcd98.json} +1 -1
  10. package/artifacts/contracts/Admin/VBNBAdmin.sol/VBNBAdmin.dbg.json +1 -1
  11. package/artifacts/contracts/Admin/VBNBAdminStorage.sol/IProtocolShareReserve.dbg.json +1 -1
  12. package/artifacts/contracts/Admin/VBNBAdminStorage.sol/IWBNB.dbg.json +1 -1
  13. package/artifacts/contracts/Admin/VBNBAdminStorage.sol/VBNBAdminStorage.dbg.json +1 -1
  14. package/artifacts/contracts/Admin/VBNBAdminStorage.sol/VTokenInterface.dbg.json +1 -1
  15. package/artifacts/contracts/DelegateBorrowers/MoveDebtDelegate.sol/MoveDebtDelegate.dbg.json +1 -1
  16. package/artifacts/contracts/DelegateBorrowers/MoveDebtDelegate.sol/MoveDebtDelegate.json +2 -2
  17. package/artifacts/contracts/DelegateBorrowers/SwapDebtDelegate.sol/SwapDebtDelegate.dbg.json +1 -1
  18. package/artifacts/contracts/DelegateBorrowers/SwapDebtDelegate.sol/SwapDebtDelegate.json +2 -2
  19. package/artifacts/contracts/Governance/TokenRedeemer.sol/TokenRedeemer.dbg.json +1 -1
  20. package/artifacts/contracts/Governance/TokenRedeemer.sol/TokenRedeemer.json +71 -5
  21. package/artifacts/contracts/InterfacesV8.sol/IComptroller.dbg.json +1 -1
  22. package/artifacts/contracts/InterfacesV8.sol/ILiquidator.dbg.json +1 -1
  23. package/artifacts/contracts/InterfacesV8.sol/IProtocolShareReserve.dbg.json +1 -1
  24. package/artifacts/contracts/InterfacesV8.sol/IVAIController.dbg.json +1 -1
  25. package/artifacts/contracts/InterfacesV8.sol/IVBNB.dbg.json +1 -1
  26. package/artifacts/contracts/InterfacesV8.sol/IVBNB.json +83 -0
  27. package/artifacts/contracts/InterfacesV8.sol/IVBep20.dbg.json +1 -1
  28. package/artifacts/contracts/InterfacesV8.sol/IVBep20.json +52 -1
  29. package/artifacts/contracts/InterfacesV8.sol/IVToken.dbg.json +1 -1
  30. package/artifacts/contracts/InterfacesV8.sol/IVToken.json +70 -0
  31. package/artifacts/contracts/InterfacesV8.sol/IWBNB.dbg.json +1 -1
  32. package/artifacts/contracts/Liquidator/BUSDLiquidator.sol/BUSDLiquidator.dbg.json +1 -1
  33. package/artifacts/contracts/Liquidator/BUSDLiquidator.sol/BUSDLiquidator.json +2 -2
  34. package/artifacts/contracts/Liquidator/Liquidator.sol/Liquidator.dbg.json +1 -1
  35. package/artifacts/contracts/Liquidator/Liquidator.sol/Liquidator.json +2 -2
  36. package/artifacts/contracts/Liquidator/LiquidatorStorage.sol/LiquidatorStorage.dbg.json +1 -1
  37. package/artifacts/contracts/PegStability/IVAI.sol/IVAI.dbg.json +1 -1
  38. package/artifacts/contracts/PegStability/PegStability.sol/PegStability.dbg.json +1 -1
  39. package/artifacts/contracts/Swap/IRouterHelper.sol/IRouterHelper.dbg.json +1 -1
  40. package/artifacts/contracts/Swap/RouterHelper.sol/RouterHelper.dbg.json +1 -1
  41. package/artifacts/contracts/Swap/SwapRouter.sol/SwapRouter.dbg.json +1 -1
  42. package/artifacts/contracts/Swap/interfaces/IPancakePair.sol/IPancakePair.dbg.json +1 -1
  43. package/artifacts/contracts/Swap/interfaces/IPancakeSwapV2Factory.sol/IPancakeSwapV2Factory.dbg.json +1 -1
  44. package/artifacts/contracts/Swap/interfaces/IPancakeSwapV2Router.sol/IPancakeSwapV2Router.dbg.json +1 -1
  45. package/artifacts/contracts/Swap/interfaces/IVBNB.sol/IVBNB.dbg.json +1 -1
  46. package/artifacts/contracts/Swap/interfaces/IVtoken.sol/IVToken.dbg.json +1 -1
  47. package/artifacts/contracts/Swap/interfaces/IWBNB.sol/IWBNB.dbg.json +1 -1
  48. package/artifacts/contracts/Swap/interfaces/InterfaceComptroller.sol/InterfaceComptroller.dbg.json +1 -1
  49. package/artifacts/contracts/Swap/lib/PancakeLibrary.sol/PancakeLibrary.dbg.json +1 -1
  50. package/artifacts/contracts/Swap/lib/TransferHelper.sol/TransferHelper.dbg.json +1 -1
  51. package/artifacts/contracts/Tokens/Prime/Interfaces/IPoolRegistry.sol/PoolRegistryInterface.dbg.json +1 -1
  52. package/artifacts/contracts/Tokens/Prime/Interfaces/IPrime.sol/IPrime.dbg.json +1 -1
  53. package/artifacts/contracts/Tokens/Prime/Interfaces/IPrimeLiquidityProvider.sol/IPrimeLiquidityProvider.dbg.json +1 -1
  54. package/artifacts/contracts/Tokens/Prime/Interfaces/IVToken.sol/IVToken.dbg.json +1 -1
  55. package/artifacts/contracts/Tokens/Prime/Interfaces/IXVSVault.sol/IXVSVault.dbg.json +1 -1
  56. package/artifacts/contracts/Tokens/Prime/Interfaces/InterfaceComptroller.sol/InterfaceComptroller.dbg.json +1 -1
  57. package/artifacts/contracts/Tokens/Prime/Prime.sol/Prime.dbg.json +1 -1
  58. package/artifacts/contracts/Tokens/Prime/PrimeLiquidityProvider.sol/PrimeLiquidityProvider.dbg.json +1 -1
  59. package/artifacts/contracts/Tokens/Prime/PrimeLiquidityProviderStorage.sol/PrimeLiquidityProviderStorageV1.dbg.json +1 -1
  60. package/artifacts/contracts/Tokens/Prime/PrimeStorage.sol/PrimeStorageV1.dbg.json +1 -1
  61. package/artifacts/contracts/Tokens/Prime/libs/FixedMath.sol/FixedMath.dbg.json +1 -1
  62. package/artifacts/contracts/Tokens/Prime/libs/FixedMath0x.sol/FixedMath0x.dbg.json +1 -1
  63. package/artifacts/contracts/Tokens/Prime/libs/Scores.sol/Scores.dbg.json +1 -1
  64. package/artifacts/contracts/lib/Currency.sol/CurrencyLibrary.dbg.json +4 -0
  65. package/artifacts/contracts/lib/Currency.sol/CurrencyLibrary.json +29 -0
  66. package/artifacts/contracts/test/AccessControlManagerMock.sol/AccessControlManagerMock.dbg.json +1 -1
  67. package/artifacts/contracts/test/LiquidatorHarness.sol/LiquidatorHarness.dbg.json +1 -1
  68. package/artifacts/contracts/test/LiquidatorHarness.sol/LiquidatorHarness.json +2 -2
  69. package/artifacts/contracts/test/MockProtocolShareReserve.sol/IComptroller.dbg.json +1 -1
  70. package/artifacts/contracts/test/MockProtocolShareReserve.sol/IIncomeDestination.dbg.json +1 -1
  71. package/artifacts/contracts/test/MockProtocolShareReserve.sol/IMockProtocolShareReserve.dbg.json +1 -1
  72. package/artifacts/contracts/test/MockProtocolShareReserve.sol/IPoolRegistry.dbg.json +1 -1
  73. package/artifacts/contracts/test/MockProtocolShareReserve.sol/IPrime.dbg.json +1 -1
  74. package/artifacts/contracts/test/MockProtocolShareReserve.sol/IVToken.dbg.json +1 -1
  75. package/artifacts/contracts/test/MockProtocolShareReserve.sol/MaxLoopsLimitHelper.dbg.json +1 -1
  76. package/artifacts/contracts/test/MockProtocolShareReserve.sol/MockProtocolShareReserve.dbg.json +1 -1
  77. package/artifacts/contracts/test/PrimeScenario.sol/PrimeScenario.dbg.json +1 -1
  78. package/contracts/Governance/TokenRedeemer.sol +126 -20
  79. package/contracts/InterfacesV8.sol +10 -2
  80. package/contracts/lib/Currency.sol +82 -0
  81. package/deploy/012-deploy-token-redeemer.ts +2 -1
  82. package/deployments/bscmainnet/JumpRateModel_base0bps_slope10000bps_jump25000bps_kink8000bps.json +380 -0
  83. package/deployments/bscmainnet/JumpRateModel_base0bps_slope10000bps_jump50000bps_kink8000bps.json +380 -0
  84. package/deployments/bscmainnet/TokenRedeemer.json +105 -34
  85. package/deployments/bscmainnet/solcInputs/2aa2b00074af0ac8497255c1ed59bc86.json +348 -0
  86. package/deployments/bscmainnet/solcInputs/6fc684307aeb3185be94f869ed923bc8.json +348 -0
  87. package/deployments/bscmainnet.json +572 -4
  88. package/deployments/bscmainnet_addresses.json +3 -1
  89. package/dist/deploy/012-deploy-token-redeemer.js +2 -1
  90. package/dist/deployments/bscmainnet.json +572 -4
  91. package/dist/deployments/bscmainnet_addresses.json +3 -1
  92. package/dist/typechain/contracts/Governance/TokenRedeemer.d.ts +29 -1
  93. package/dist/typechain/contracts/InterfacesV8.sol/IVBNB.d.ts +73 -1
  94. package/dist/typechain/contracts/InterfacesV8.sol/IVBep20.d.ts +46 -6
  95. package/dist/typechain/contracts/InterfacesV8.sol/IVToken.d.ts +57 -1
  96. package/dist/typechain/contracts/index.d.ts +2 -0
  97. package/dist/typechain/contracts/lib/Currency.sol/CurrencyLibrary.d.ts +42 -0
  98. package/dist/typechain/contracts/lib/Currency.sol/CurrencyLibrary.js +3 -0
  99. package/dist/typechain/contracts/lib/Currency.sol/index.d.ts +1 -0
  100. package/dist/typechain/contracts/lib/Currency.sol/index.js +2 -0
  101. package/dist/typechain/contracts/lib/index.d.ts +2 -0
  102. package/dist/typechain/contracts/lib/index.js +3 -0
  103. package/dist/typechain/factories/contracts/DelegateBorrowers/MoveDebtDelegate__factory.d.ts +1 -1
  104. package/dist/typechain/factories/contracts/DelegateBorrowers/MoveDebtDelegate__factory.js +1 -1
  105. package/dist/typechain/factories/contracts/DelegateBorrowers/SwapDebtDelegate__factory.d.ts +1 -1
  106. package/dist/typechain/factories/contracts/DelegateBorrowers/SwapDebtDelegate__factory.js +1 -1
  107. package/dist/typechain/factories/contracts/Governance/TokenRedeemer__factory.d.ts +57 -6
  108. package/dist/typechain/factories/contracts/Governance/TokenRedeemer__factory.js +74 -8
  109. package/dist/typechain/factories/contracts/InterfacesV8.sol/IVBNB__factory.d.ts +62 -0
  110. package/dist/typechain/factories/contracts/InterfacesV8.sol/IVBNB__factory.js +83 -0
  111. package/dist/typechain/factories/contracts/InterfacesV8.sol/IVBep20__factory.d.ts +39 -1
  112. package/dist/typechain/factories/contracts/InterfacesV8.sol/IVBep20__factory.js +52 -1
  113. package/dist/typechain/factories/contracts/InterfacesV8.sol/IVToken__factory.d.ts +52 -0
  114. package/dist/typechain/factories/contracts/InterfacesV8.sol/IVToken__factory.js +70 -0
  115. package/dist/typechain/factories/contracts/Liquidator/BUSDLiquidator__factory.d.ts +1 -1
  116. package/dist/typechain/factories/contracts/Liquidator/BUSDLiquidator__factory.js +1 -1
  117. package/dist/typechain/factories/contracts/Liquidator/Liquidator__factory.d.ts +1 -1
  118. package/dist/typechain/factories/contracts/Liquidator/Liquidator__factory.js +1 -1
  119. package/dist/typechain/factories/contracts/index.d.ts +1 -0
  120. package/dist/typechain/factories/contracts/index.js +2 -1
  121. package/dist/typechain/factories/contracts/lib/Currency.sol/CurrencyLibrary__factory.d.ts +35 -0
  122. package/dist/typechain/factories/contracts/lib/Currency.sol/CurrencyLibrary__factory.js +58 -0
  123. package/dist/typechain/factories/contracts/lib/Currency.sol/index.d.ts +1 -0
  124. package/dist/typechain/factories/contracts/lib/Currency.sol/index.js +8 -0
  125. package/dist/typechain/factories/contracts/lib/index.d.ts +1 -0
  126. package/dist/typechain/factories/contracts/lib/index.js +30 -0
  127. package/dist/typechain/factories/contracts/test/LiquidatorHarness__factory.d.ts +1 -1
  128. package/dist/typechain/factories/contracts/test/LiquidatorHarness__factory.js +1 -1
  129. package/dist/typechain/index.d.ts +2 -0
  130. package/dist/typechain/index.js +6 -4
  131. package/package.json +1 -1
@@ -0,0 +1,35 @@
1
+ import type { PromiseOrValue } from "../../../../common";
2
+ import type { CurrencyLibrary, CurrencyLibraryInterface } from "../../../../contracts/lib/Currency.sol/CurrencyLibrary";
3
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
4
+ import { Signer, ContractFactory, Overrides } from "ethers";
5
+ type CurrencyLibraryConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
6
+ export declare class CurrencyLibrary__factory extends ContractFactory {
7
+ constructor(...args: CurrencyLibraryConstructorParams);
8
+ deploy(overrides?: Overrides & {
9
+ from?: PromiseOrValue<string>;
10
+ }): Promise<CurrencyLibrary>;
11
+ getDeployTransaction(overrides?: Overrides & {
12
+ from?: PromiseOrValue<string>;
13
+ }): TransactionRequest;
14
+ attach(address: string): CurrencyLibrary;
15
+ connect(signer: Signer): CurrencyLibrary__factory;
16
+ static readonly bytecode = "0x60a4610038600b82828239805160001a607314602b57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063a0cf0aea146038575b600080fd5b605273bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6040516001600160a01b03909116815260200160405180910390f3fea2646970667358221220358c52b1d368dd6ed81695187161c2a4513f5a6f7379b204d0e559746d2d51f164736f6c634300080d0033";
17
+ static readonly abi: readonly [{
18
+ readonly inputs: readonly [];
19
+ readonly name: "NativeTransferFailed";
20
+ readonly type: "error";
21
+ }, {
22
+ readonly inputs: readonly [];
23
+ readonly name: "NATIVE";
24
+ readonly outputs: readonly [{
25
+ readonly internalType: "Currency";
26
+ readonly name: "";
27
+ readonly type: "address";
28
+ }];
29
+ readonly stateMutability: "view";
30
+ readonly type: "function";
31
+ }];
32
+ static createInterface(): CurrencyLibraryInterface;
33
+ static connect(address: string, signerOrProvider: Signer | Provider): CurrencyLibrary;
34
+ }
35
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CurrencyLibrary__factory = void 0;
5
+ const ethers_1 = require("ethers");
6
+ const _abi = [
7
+ {
8
+ inputs: [],
9
+ name: "NativeTransferFailed",
10
+ type: "error",
11
+ },
12
+ {
13
+ inputs: [],
14
+ name: "NATIVE",
15
+ outputs: [
16
+ {
17
+ internalType: "Currency",
18
+ name: "",
19
+ type: "address",
20
+ },
21
+ ],
22
+ stateMutability: "view",
23
+ type: "function",
24
+ },
25
+ ];
26
+ const _bytecode = "0x60a4610038600b82828239805160001a607314602b57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063a0cf0aea146038575b600080fd5b605273bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6040516001600160a01b03909116815260200160405180910390f3fea2646970667358221220358c52b1d368dd6ed81695187161c2a4513f5a6f7379b204d0e559746d2d51f164736f6c634300080d0033";
27
+ const isSuperArgs = (xs) => xs.length > 1;
28
+ class CurrencyLibrary__factory extends ethers_1.ContractFactory {
29
+ constructor(...args) {
30
+ if (isSuperArgs(args)) {
31
+ super(...args);
32
+ }
33
+ else {
34
+ super(_abi, _bytecode, args[0]);
35
+ }
36
+ }
37
+ deploy(overrides) {
38
+ return super.deploy(overrides || {});
39
+ }
40
+ getDeployTransaction(overrides) {
41
+ return super.getDeployTransaction(overrides || {});
42
+ }
43
+ attach(address) {
44
+ return super.attach(address);
45
+ }
46
+ connect(signer) {
47
+ return super.connect(signer);
48
+ }
49
+ static createInterface() {
50
+ return new ethers_1.utils.Interface(_abi);
51
+ }
52
+ static connect(address, signerOrProvider) {
53
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
54
+ }
55
+ }
56
+ exports.CurrencyLibrary__factory = CurrencyLibrary__factory;
57
+ CurrencyLibrary__factory.bytecode = _bytecode;
58
+ CurrencyLibrary__factory.abi = _abi;
@@ -0,0 +1 @@
1
+ export { CurrencyLibrary__factory } from "./CurrencyLibrary__factory";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CurrencyLibrary__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ var CurrencyLibrary__factory_1 = require("./CurrencyLibrary__factory");
8
+ Object.defineProperty(exports, "CurrencyLibrary__factory", { enumerable: true, get: function () { return CurrencyLibrary__factory_1.CurrencyLibrary__factory; } });
@@ -0,0 +1 @@
1
+ export * as currencySol from "./Currency.sol";
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.currencySol = void 0;
27
+ /* Autogenerated file. Do not edit manually. */
28
+ /* tslint:disable */
29
+ /* eslint-disable */
30
+ exports.currencySol = __importStar(require("./Currency.sol"));
@@ -13,7 +13,7 @@ export declare class LiquidatorHarness__factory extends ContractFactory {
13
13
  }): TransactionRequest;
14
14
  attach(address: string): LiquidatorHarness;
15
15
  connect(signer: Signer): LiquidatorHarness__factory;
16
- static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620034f5380380620034f58339810160408190526200003591620001fa565b8282826200004382620000f8565b6200004e83620000f8565b6200005981620000f8565b6001600160a01b0380831660805281811660e052831660a081905260408051639254f5e560e01b81529051639254f5e5916004808201926020929091908290030181865afa158015620000b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d691906200024e565b6001600160a01b031660c052620000ec62000123565b50505050505062000275565b6001600160a01b03811662000120576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff1615620001905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620001e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200012057600080fd5b6000806000606084860312156200021057600080fd5b83516200021d81620001e4565b60208501519093506200023081620001e4565b60408501519092506200024381620001e4565b809150509250925092565b6000602082840312156200026157600080fd5b81516200026e81620001e4565b9392505050565b60805160a05160c05160e05161319e620003576000396000818161059f015281816125ca0152818161264b015281816126c1015261272c01526000818161047d01528181610b8a01528181611720015281816117c2015281816118fe0152818161196901528181611a0f01528181611a440152611a9a01526000818161035d01528181610963015281816117930152818161186601528181611b3d015281816120cf015281816121d70152818161269f015261289801526000818161031101528181610a7601528181610afd01528181611e770152611f91015261319e6000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063b8332db7116100a0578063e9a44fd91161006f578063e9a44fd9146105df578063f2531ea1146105ff578063f2fde38b1461061f578063f52421b31461063f578063f7dcd96e1461065f57600080fd5b8063b8332db714610543578063bbd98d7014610558578063d02eb3f41461058d578063e30c3978146105c157600080fd5b8063b09c7742116100dc578063b09c7742146104bf578063b26461de146104d4578063b4988fd014610504578063b4a0bdf31461052457600080fd5b80638da5cb5b146104375780638e3525fc146104555780639254f5e51461046b578063a093796a1461049f57600080fd5b80635fe3b567116101855780637debe3fe116101545780637debe3fe146103b35780638722ddf2146103d35780638765adcb146103f757806389a2bc251461041757600080fd5b80635fe3b5671461034b57806364fd70781461037f578063715018a61461039257806379ba50971461039e57600080fd5b806336eab4ae116101c157806336eab4ae1461027557806344b3716a146102a457806347a6a971146102df5780635ba3792d146102ff57600080fd5b80630d060ea8146101fe5780630e32cb8614610215578063107568df1461023557806311ec4b7a1461025557600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361067f565b005b34801561022157600080fd5b50610213610230366004612ce5565b61075e565b34801561024157600080fd5b50610213610250366004612ce5565b610772565b34801561026157600080fd5b50610213610270366004612ce5565b610783565b34801561028157600080fd5b5060cd5461028f9060ff1681565b60405190151581526020015b60405180910390f35b3480156102b057600080fd5b5061028f6102bf366004612d09565b60ca60209081526000928352604080842090915290825290205460ff1681565b3480156102eb57600080fd5b506102136102fa366004612d09565b610852565b34801561030b57600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161029b565b34801561035757600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b61021361038d366004612d42565b610926565b34801561021357600080fd5b3480156103aa57600080fd5b50610213610ce3565b3480156103bf57600080fd5b506102136103ce366004612d09565b610d5a565b3480156103df57600080fd5b506103e960cc5481565b60405190815260200161029b565b34801561040357600080fd5b50610213610412366004612ce5565b610e4f565b34801561042357600080fd5b50610213610432366004612d95565b610f1a565b34801561044357600080fd5b506033546001600160a01b0316610333565b34801561046157600080fd5b506103e960c95481565b34801561047757600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ab57600080fd5b506102136104ba366004612d95565b610fa2565b3480156104cb57600080fd5b50610213611049565b3480156104e057600080fd5b5061028f6104ef366004612ce5565b60cb6020526000908152604090205460ff1681565b34801561051057600080fd5b5061021361051f366004612dae565b611128565b34801561053057600080fd5b50610102546001600160a01b0316610333565b34801561054f57600080fd5b5061021361123e565b34801561056457600080fd5b50610578610573366004612df0565b611258565b6040805192835260208301919091520161029b565b34801561059957600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cd57600080fd5b506065546001600160a01b0316610333565b3480156105eb57600080fd5b5060cf54610333906001600160a01b031681565b34801561060b57600080fd5b5061057861061a366004612d95565b6112ac565b34801561062b57600080fd5b5061021361063a366004612ce5565b6112c1565b34801561064b57600080fd5b5061021361065a366004612d95565b611332565b34801561066b57600080fd5b5061033361067a366004612d95565b6113b1565b6106bd6040518060400160405280601881526020017f7061757365466f7263655641494c6971756964617465282900000000000000008152506113db565b60cd5460ff166107275760405162461bcd60e51b815260206004820152602a60248201527f466f726365204c69717569646174696f6e206f662056414920697320616c726560448201526918591e4814185d5cd95960b21b60648201526084015b60405180910390fd5b60cd805460ff1916905560405133907f42388332be4beb2ad2ff83017119b9d702ce7fbaf67e18e53a137508cf967e4390600090a2565b61076661147a565b61076f816114d4565b50565b61077a61147a565b61076f8161159a565b6107c16040518060400160405280601c81526020017f72657374726963744c69717569646174696f6e286164647265737329000000008152506113db565b6001600160a01b038116600090815260cb602052604090205460ff16156108065760405163404fe9fb60e11b81526001600160a01b038216600482015260240161071e565b6001600160a01b038116600081815260cb6020526040808220805460ff19166001179055517f614c47c82976e8f145409efb6366fe2cefa323f389ed9354649262e38dbb35899190a250565b610873604051806060016040528060248152602001613121602491396113db565b6001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff166108cc5760405163435aad4360e01b81526001600160a01b0380841660048301528216602482015260440161071e565b6001600160a01b03808316600081815260ca6020908152604080832094861680845294909152808220805460ff19169055517f6b0d38eafddac0d37e0aff8f4bbd5f3a3cfe124b8eabea27558bffc931ac05b59190a35050565b61092e6115ff565b61093783611658565b610941833361167f565b604051638e8f294b60e01b81526001600160a01b0382811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690638e8f294b90602401606060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190612e31565b50509050806109fd57604051635a9a1eb960e11b81526001600160a01b038316600482015260240161071e565b610a0785856116fe565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190612e6d565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031603610b6057348414610ad65760405163dd97100160e01b81526004810185905234602482015260440161071e565b604051635572051560e11b81526001600160a01b03868116600483015284811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063aae40a2a9034906044016000604051808303818588803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b5050505050610bdd565b3415610b885760405163dd97100160e01b81526000600482015234602482015260440161071e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031603610bd157610bcc858585611965565b610bdd565b610bdd86868686611b1b565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612e6d565b90506000610c568383612e9c565b9050600080610c658784611d04565b91509150610c71611ec4565b604080518981526001600160a01b038c8116602083015291810184905260608101839052818916918b169033907fdd091524d794aecdb5235b2d816620c2598790835e0f3849808504c2dcb4f1a99060800160405180910390a4505050505050610cdb6001609755565b50505050565b565b60655433906001600160a01b03168114610d515760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161071e565b61076f816120a9565b610d986040518060400160405280601f81526020017f616464546f416c6c6f776c69737428616464726573732c6164647265737329008152506113db565b6001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff1615610df25760405163071df39160e01b81526001600160a01b0380841660048301528216602482015260440161071e565b6001600160a01b03808316600081815260ca6020908152604080832094861680845294909152808220805460ff19166001179055517ffe40417b78788808c927141f806ef5082e7bba0f7790f2e85b811621a91094339190a35050565b610e8d6040518060400160405280601e81526020017f756e72657374726963744c69717569646174696f6e28616464726573732900008152506113db565b6001600160a01b038116600090815260cb602052604090205460ff16610ed157604051633bf9d98960e11b81526001600160a01b038216600482015260240161071e565b6001600160a01b038116600081815260cb6020526040808220805460ff19169055517fe1f03de94d16c262d2f0e89a1c42ede8899d540ac992cf53495a5cf29c2896af9190a250565b610f586040518060400160405280601b81526020017f736574547265617375727950657263656e742875696e743235362900000000008152506113db565b610f61816120c2565b60c95460408051918252602082018390527f0e9a1641744b21c49e4183ab9ce941d420e05a05a446c71875fb07814f362c1a910160405180910390a160c955565b610fc3604051806060016040528060248152602001613145602491396113db565b600081116110085760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206368756e6b2073697a6560701b604482015260640161071e565b60d05460408051918252602082018390527fe5eef53e396f0cb79322e15e72b6c6613ae3e62c9079f5a12f2c410867c28b2c910160405180910390a160d055565b6110876040518060400160405280601981526020017f726573756d65466f7263655641494c69717569646174652829000000000000008152506113db565b60cd5460ff16156110ee5760405162461bcd60e51b815260206004820152602b60248201527f466f726365204c69717569646174696f6e206f662056414920697320616c726560448201526a18591e481c995cdd5b595960aa1b606482015260840161071e565b60cd805460ff1916600117905560405133907fd4b8f320ada24d048ee6c25c53a31aa20b2ea37fa25542e6e239c80d31d5b60b90600090a2565b600054610100900460ff16158080156111485750600054600160ff909116105b806111625750303b158015611162575060005460ff166001145b6111c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071e565b6000805460ff1916600117905580156111e8576000805461ff0019166101001790555b6111f3848484612186565b8015610cdb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6112466115ff565b61124e611ec4565b610ce16001609755565b6000806112658484611d04565b60408051838152602081018390529294509092507f965c73d6a816dcbe4cc33516168787cb029afb2156ec3372a16e8c6cfbbe6e22910160405180910390a15b9250929050565b6000806112b8836121d0565b91509150915091565b6112c961147a565b606580546001600160a01b0383166001600160a01b031990911681179091556112fa6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6113706040518060400160405280601e81526020017f7365744d696e4c6971756964617461626c655641492875696e743235362900008152506113db565b60cc5460408051918252602082018390527f8df018dc5fe866d192a3f4d9f16dbfdb38f58a7470a65b92262ccc008c55fff0910160405180910390a160cc55565b60ce81815481106113c157600080fd5b6000918252602090912001546001600160a01b0316905081565b610102546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab9061140f9033908690600401612f0b565b602060405180830381865afa15801561142c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114509190612f2f565b90508061147657333083604051634a3fa29360e01b815260040161071e93929190612f4a565b5050565b6033546001600160a01b03163314610ce15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071e565b6001600160a01b0381166115385760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b606482015260840161071e565b61010280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6115a381611658565b60cf546040516001600160a01b038084169216907fafec95c8612496c3ecf5dddc71e393528fe29bd145fbaf9c6b496d78d7e2d79b90600090a360cf80546001600160a01b0319166001600160a01b0392909216919091179055565b6002609754036116515760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071e565b6002609755565b6001600160a01b03811661076f576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b038216600090815260cb602052604090205460ff1680156116cd57506001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff16155b156114765760405163074c80eb60e51b81526001600160a01b0380841660048301528216602482015260440161071e565b604051633c617c9160e11b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906378c2f92290602401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190612e6d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e85a29607f000000000000000000000000000000000000000000000000000000000000000060056040518363ffffffff1660e01b8152600401611800929190612f95565b602060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118419190612f2f565b60405163460d60c560e11b81526001600160a01b0386811660048301529192506000917f00000000000000000000000000000000000000000000000000000000000000001690638c1ac18a90602401602060405180830381865afa1580156118ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d19190612f2f565b905080806118dc5750815b806118ea575060cd5460ff16155b806118f6575060cc5483105b8061193257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b1561193e575050505050565b60cc546040516329eb1e8760e01b815261071e918591600401918252602082015260400190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cbeb2b286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e99190612fc2565b9050611a006001600160a01b038216333086612286565b611a356001600160a01b0382167f000000000000000000000000000000000000000000000000000000000000000060006122f1565b611a696001600160a01b0382167f0000000000000000000000000000000000000000000000000000000000000000856122f1565b6040516311b3d5e760e01b81526001600160a01b0385811660048301526024820185905283811660448301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906311b3d5e79060640160408051808303816000875af1158015611ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b089190612fdf565b509050611b1481612406565b5050505050565b604051638e8f294b60e01b81526001600160a01b0385811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690638e8f294b90602401606060405180830381865afa158015611b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baa9190612e31565b5050905080611bd757604051635a9a1eb960e11b81526001600160a01b038616600482015260240161071e565b6000856001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b9190612fc2565b90506000611c4b8233308861242a565b9050611c626001600160a01b0383168860006122f1565b611c766001600160a01b03831688836122f1565b604051637af1e23160e11b81526001600160a01b038781166004830152602482018390528581166044830152611cfb919089169063f5e3c462906064016020604051808303816000875af1158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf69190612e6d565b612406565b50505050505050565b600080611d10836121d0565b60405163a9059cbb60e01b81523360048201526024810182905291935091506001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d869190612f2f565b611db25760405163241165bb60e21b81523060048201523360248201526044810182905260640161071e565b600082118015611dc95750611dc78483612533565b155b15611e755760005b60ce54811015611e1a57846001600160a01b031660ce8281548110611df857611df8613003565b6000918252602090912001546001600160a01b031614611e1a57600101611dd1565b60ce548103611e6f5760ce80546001810182556000919091527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b0387161790555b506112a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611ebb57611eb66125c3565b6112a5565b6112a584612781565b60ce5460d054600090821015611eda5781611ede565b60d0545b9050805b801561209d57600060ce611ef7600184612e9c565b81548110611f0757611f07613003565b60009182526020822001546040516370a0823160e01b81523060048201526001600160a01b03909116925082906370a0823190602401602060405180830381865afa158015611f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7e9190612e6d565b9050611f8a8282612533565b15612092577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611fd557611fd06125c3565b611fde565b611fde82612781565b60ce8054611fee90600190612e9c565b81548110611ffe57611ffe613003565b6000918252602090912001546001600160a01b031660ce612020600186612e9c565b8154811061203057612030613003565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ce80548061206f5761206f613019565b600082815260209020810160001990810180546001600160a01b03191690550190555b505060001901611ee2565b505050565b6001609755565b606580546001600160a01b031916905561076f8161293c565b6000670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214f9190612e6d565b6121599190612e9c565b90508082111561147657604051635659cb3b60e01b8152600481018290526024810183905260440161071e565b600054610100900460ff166121ad5760405162461bcd60e51b815260040161071e9061302f565b6121b561298e565b6121bd6129bd565b6121c783826129ec565b61209d82612a2a565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122579190612e6d565b90508060c95485612268919061307a565b6122729190613099565b925061227e8385612e9c565b915050915091565b6040516001600160a01b0380851660248301528316604482015260648101829052610cdb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612a51565b80158061236b5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123699190612e6d565b155b6123d65760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161071e565b6040516001600160a01b03831660248201526044810182905261209d90849063095ea7b360e01b906064016122ba565b8061240e5750565b60405163125a96ab60e01b81526004810182905260240161071e565b6040516370a0823160e01b81526001600160a01b03838116600483015260009182918716906370a0823190602401602060405180830381865afa158015612475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124999190612e6d565b90506124b06001600160a01b038716868686612286565b6040516370a0823160e01b81526001600160a01b0385811660048301528291908816906370a0823190602401602060405180830381865afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190612e6d565b6125279190612e9c565b9150505b949350505050565b60405163db006a7560e01b8152600481018290526000906001600160a01b0384169063db006a75906024016020604051808303816000875af1925050508015612599575060408051601f3d908101601f1916820190925261259691810190612e6d565b60015b6125a5575060006125bd565b806000036125b75760019150506125bd565b60009150505b92915050565b60004790507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561262357600080fd5b505af1158015612637573d6000803e3d6000fd5b505060cf5461267793506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116935016905083612b26565b60cf546040516305bebb3b60e21b81526001600160a01b03909116906316faecec906126ec907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001906004016130bb565b600060405180830381600087803b15801561270657600080fd5b505af115801561271a573d6000803e3d6000fd5b50506040518381526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692503391507fb68163184d017d69dff908f587b51f68dc2689426509efd546fbf77b518cc8769060200160405180910390a350565b6000816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e59190612fc2565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561282f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128539190612e6d565b60cf54909150612870906001600160a01b03848116911683612b26565b60cf546040516305bebb3b60e21b81526001600160a01b03909116906316faecec906128c5907f00000000000000000000000000000000000000000000000000000000000000009086906001906004016130bb565b600060405180830381600087803b1580156128df57600080fd5b505af11580156128f3573d6000803e3d6000fd5b50506040518381526001600160a01b03851692503391507fb68163184d017d69dff908f587b51f68dc2689426509efd546fbf77b518cc8769060200160405180910390a3505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166129b55760405162461bcd60e51b815260040161071e9061302f565b610ce1612b56565b600054610100900460ff166129e45760405162461bcd60e51b815260040161071e9061302f565b610ce1612b86565b600054610100900460ff16612a135760405162461bcd60e51b815260040161071e9061302f565b612a1c826120c2565b60c98290556114768161159a565b600054610100900460ff166107665760405162461bcd60e51b815260040161071e9061302f565b6000612aa6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612bad9092919063ffffffff16565b9050805160001480612ac7575080806020019051810190612ac79190612f2f565b61209d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161071e565b6040516001600160a01b03831660248201526044810182905261209d90849063a9059cbb60e01b906064016122ba565b600054610100900460ff16612b7d5760405162461bcd60e51b815260040161071e9061302f565b610ce1336120a9565b600054610100900460ff166120a25760405162461bcd60e51b815260040161071e9061302f565b606061252b848460008585600080866001600160a01b03168587604051612bd491906130f1565b60006040518083038185875af1925050503d8060008114612c11576040519150601f19603f3d011682016040523d82523d6000602084013e612c16565b606091505b5091509150612c2787838387612c32565b979650505050505050565b60608315612ca1578251600003612c9a576001600160a01b0385163b612c9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161071e565b508161252b565b61252b8383815115612cb65781518083602001fd5b8060405162461bcd60e51b815260040161071e919061310d565b6001600160a01b038116811461076f57600080fd5b600060208284031215612cf757600080fd5b8135612d0281612cd0565b9392505050565b60008060408385031215612d1c57600080fd5b8235612d2781612cd0565b91506020830135612d3781612cd0565b809150509250929050565b60008060008060808587031215612d5857600080fd5b8435612d6381612cd0565b93506020850135612d7381612cd0565b9250604085013591506060850135612d8a81612cd0565b939692955090935050565b600060208284031215612da757600080fd5b5035919050565b600080600060608486031215612dc357600080fd5b833592506020840135612dd581612cd0565b91506040840135612de581612cd0565b809150509250925092565b60008060408385031215612e0357600080fd5b8235612e0e81612cd0565b946020939093013593505050565b80518015158114612e2c57600080fd5b919050565b600080600060608486031215612e4657600080fd5b612e4f84612e1c565b925060208401519150612e6460408501612e1c565b90509250925092565b600060208284031215612e7f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015612eae57612eae612e86565b500390565b60005b83811015612ece578181015183820152602001612eb6565b83811115610cdb5750506000910152565b60008151808452612ef7816020860160208601612eb3565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061252b90830184612edf565b600060208284031215612f4157600080fd5b612d0282612e1c565b6001600160a01b03848116825283166020820152606060408201819052600090612f7690830184612edf565b95945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03831681526040810160098310612fb557612fb5612f7f565b8260208301529392505050565b600060208284031215612fd457600080fd5b8151612d0281612cd0565b60008060408385031215612ff257600080fd5b505080516020909101519092909150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600081600019048311821515161561309457613094612e86565b500290565b6000826130b657634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b0384811682528316602082015260608101600283106130e3576130e3612f7f565b826040830152949350505050565b60008251613103818460208701612eb3565b9190910192915050565b602081526000612d026020830184612edf56fe72656d6f766546726f6d416c6c6f776c69737428616464726573732c616464726573732973657450656e64696e6752656465656d4368756e6b4c656e6774682875696e7432353629a264697066735822122031ffa44e37df8deda22f81e767db2e6d3d68948f4afc968bcba1d17f046a6daf64736f6c634300080d0033";
16
+ static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620034f5380380620034f58339810160408190526200003591620001fa565b8282826200004382620000f8565b6200004e83620000f8565b6200005981620000f8565b6001600160a01b0380831660805281811660e052831660a081905260408051639254f5e560e01b81529051639254f5e5916004808201926020929091908290030181865afa158015620000b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d691906200024e565b6001600160a01b031660c052620000ec62000123565b50505050505062000275565b6001600160a01b03811662000120576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff1615620001905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620001e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200012057600080fd5b6000806000606084860312156200021057600080fd5b83516200021d81620001e4565b60208501519093506200023081620001e4565b60408501519092506200024381620001e4565b809150509250925092565b6000602082840312156200026157600080fd5b81516200026e81620001e4565b9392505050565b60805160a05160c05160e05161319e620003576000396000818161059f015281816125ca0152818161264b015281816126c1015261272c01526000818161047d01528181610b8a01528181611720015281816117c2015281816118fe0152818161196901528181611a0f01528181611a440152611a9a01526000818161035d01528181610963015281816117930152818161186601528181611b3d015281816120cf015281816121d70152818161269f015261289801526000818161031101528181610a7601528181610afd01528181611e770152611f91015261319e6000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063b8332db7116100a0578063e9a44fd91161006f578063e9a44fd9146105df578063f2531ea1146105ff578063f2fde38b1461061f578063f52421b31461063f578063f7dcd96e1461065f57600080fd5b8063b8332db714610543578063bbd98d7014610558578063d02eb3f41461058d578063e30c3978146105c157600080fd5b8063b09c7742116100dc578063b09c7742146104bf578063b26461de146104d4578063b4988fd014610504578063b4a0bdf31461052457600080fd5b80638da5cb5b146104375780638e3525fc146104555780639254f5e51461046b578063a093796a1461049f57600080fd5b80635fe3b567116101855780637debe3fe116101545780637debe3fe146103b35780638722ddf2146103d35780638765adcb146103f757806389a2bc251461041757600080fd5b80635fe3b5671461034b57806364fd70781461037f578063715018a61461039257806379ba50971461039e57600080fd5b806336eab4ae116101c157806336eab4ae1461027557806344b3716a146102a457806347a6a971146102df5780635ba3792d146102ff57600080fd5b80630d060ea8146101fe5780630e32cb8614610215578063107568df1461023557806311ec4b7a1461025557600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361067f565b005b34801561022157600080fd5b50610213610230366004612ce5565b61075e565b34801561024157600080fd5b50610213610250366004612ce5565b610772565b34801561026157600080fd5b50610213610270366004612ce5565b610783565b34801561028157600080fd5b5060cd5461028f9060ff1681565b60405190151581526020015b60405180910390f35b3480156102b057600080fd5b5061028f6102bf366004612d09565b60ca60209081526000928352604080842090915290825290205460ff1681565b3480156102eb57600080fd5b506102136102fa366004612d09565b610852565b34801561030b57600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161029b565b34801561035757600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b61021361038d366004612d42565b610926565b34801561021357600080fd5b3480156103aa57600080fd5b50610213610ce3565b3480156103bf57600080fd5b506102136103ce366004612d09565b610d5a565b3480156103df57600080fd5b506103e960cc5481565b60405190815260200161029b565b34801561040357600080fd5b50610213610412366004612ce5565b610e4f565b34801561042357600080fd5b50610213610432366004612d95565b610f1a565b34801561044357600080fd5b506033546001600160a01b0316610333565b34801561046157600080fd5b506103e960c95481565b34801561047757600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ab57600080fd5b506102136104ba366004612d95565b610fa2565b3480156104cb57600080fd5b50610213611049565b3480156104e057600080fd5b5061028f6104ef366004612ce5565b60cb6020526000908152604090205460ff1681565b34801561051057600080fd5b5061021361051f366004612dae565b611128565b34801561053057600080fd5b50610102546001600160a01b0316610333565b34801561054f57600080fd5b5061021361123e565b34801561056457600080fd5b50610578610573366004612df0565b611258565b6040805192835260208301919091520161029b565b34801561059957600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cd57600080fd5b506065546001600160a01b0316610333565b3480156105eb57600080fd5b5060cf54610333906001600160a01b031681565b34801561060b57600080fd5b5061057861061a366004612d95565b6112ac565b34801561062b57600080fd5b5061021361063a366004612ce5565b6112c1565b34801561064b57600080fd5b5061021361065a366004612d95565b611332565b34801561066b57600080fd5b5061033361067a366004612d95565b6113b1565b6106bd6040518060400160405280601881526020017f7061757365466f7263655641494c6971756964617465282900000000000000008152506113db565b60cd5460ff166107275760405162461bcd60e51b815260206004820152602a60248201527f466f726365204c69717569646174696f6e206f662056414920697320616c726560448201526918591e4814185d5cd95960b21b60648201526084015b60405180910390fd5b60cd805460ff1916905560405133907f42388332be4beb2ad2ff83017119b9d702ce7fbaf67e18e53a137508cf967e4390600090a2565b61076661147a565b61076f816114d4565b50565b61077a61147a565b61076f8161159a565b6107c16040518060400160405280601c81526020017f72657374726963744c69717569646174696f6e286164647265737329000000008152506113db565b6001600160a01b038116600090815260cb602052604090205460ff16156108065760405163404fe9fb60e11b81526001600160a01b038216600482015260240161071e565b6001600160a01b038116600081815260cb6020526040808220805460ff19166001179055517f614c47c82976e8f145409efb6366fe2cefa323f389ed9354649262e38dbb35899190a250565b610873604051806060016040528060248152602001613121602491396113db565b6001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff166108cc5760405163435aad4360e01b81526001600160a01b0380841660048301528216602482015260440161071e565b6001600160a01b03808316600081815260ca6020908152604080832094861680845294909152808220805460ff19169055517f6b0d38eafddac0d37e0aff8f4bbd5f3a3cfe124b8eabea27558bffc931ac05b59190a35050565b61092e6115ff565b61093783611658565b610941833361167f565b604051638e8f294b60e01b81526001600160a01b0382811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690638e8f294b90602401606060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190612e31565b50509050806109fd57604051635a9a1eb960e11b81526001600160a01b038316600482015260240161071e565b610a0785856116fe565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190612e6d565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031603610b6057348414610ad65760405163dd97100160e01b81526004810185905234602482015260440161071e565b604051635572051560e11b81526001600160a01b03868116600483015284811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063aae40a2a9034906044016000604051808303818588803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b5050505050610bdd565b3415610b885760405163dd97100160e01b81526000600482015234602482015260440161071e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031603610bd157610bcc858585611965565b610bdd565b610bdd86868686611b1b565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612e6d565b90506000610c568383612e9c565b9050600080610c658784611d04565b91509150610c71611ec4565b604080518981526001600160a01b038c8116602083015291810184905260608101839052818916918b169033907fdd091524d794aecdb5235b2d816620c2598790835e0f3849808504c2dcb4f1a99060800160405180910390a4505050505050610cdb6001609755565b50505050565b565b60655433906001600160a01b03168114610d515760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161071e565b61076f816120a9565b610d986040518060400160405280601f81526020017f616464546f416c6c6f776c69737428616464726573732c6164647265737329008152506113db565b6001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff1615610df25760405163071df39160e01b81526001600160a01b0380841660048301528216602482015260440161071e565b6001600160a01b03808316600081815260ca6020908152604080832094861680845294909152808220805460ff19166001179055517ffe40417b78788808c927141f806ef5082e7bba0f7790f2e85b811621a91094339190a35050565b610e8d6040518060400160405280601e81526020017f756e72657374726963744c69717569646174696f6e28616464726573732900008152506113db565b6001600160a01b038116600090815260cb602052604090205460ff16610ed157604051633bf9d98960e11b81526001600160a01b038216600482015260240161071e565b6001600160a01b038116600081815260cb6020526040808220805460ff19169055517fe1f03de94d16c262d2f0e89a1c42ede8899d540ac992cf53495a5cf29c2896af9190a250565b610f586040518060400160405280601b81526020017f736574547265617375727950657263656e742875696e743235362900000000008152506113db565b610f61816120c2565b60c95460408051918252602082018390527f0e9a1641744b21c49e4183ab9ce941d420e05a05a446c71875fb07814f362c1a910160405180910390a160c955565b610fc3604051806060016040528060248152602001613145602491396113db565b600081116110085760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206368756e6b2073697a6560701b604482015260640161071e565b60d05460408051918252602082018390527fe5eef53e396f0cb79322e15e72b6c6613ae3e62c9079f5a12f2c410867c28b2c910160405180910390a160d055565b6110876040518060400160405280601981526020017f726573756d65466f7263655641494c69717569646174652829000000000000008152506113db565b60cd5460ff16156110ee5760405162461bcd60e51b815260206004820152602b60248201527f466f726365204c69717569646174696f6e206f662056414920697320616c726560448201526a18591e481c995cdd5b595960aa1b606482015260840161071e565b60cd805460ff1916600117905560405133907fd4b8f320ada24d048ee6c25c53a31aa20b2ea37fa25542e6e239c80d31d5b60b90600090a2565b600054610100900460ff16158080156111485750600054600160ff909116105b806111625750303b158015611162575060005460ff166001145b6111c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071e565b6000805460ff1916600117905580156111e8576000805461ff0019166101001790555b6111f3848484612186565b8015610cdb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6112466115ff565b61124e611ec4565b610ce16001609755565b6000806112658484611d04565b60408051838152602081018390529294509092507f965c73d6a816dcbe4cc33516168787cb029afb2156ec3372a16e8c6cfbbe6e22910160405180910390a15b9250929050565b6000806112b8836121d0565b91509150915091565b6112c961147a565b606580546001600160a01b0383166001600160a01b031990911681179091556112fa6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6113706040518060400160405280601e81526020017f7365744d696e4c6971756964617461626c655641492875696e743235362900008152506113db565b60cc5460408051918252602082018390527f8df018dc5fe866d192a3f4d9f16dbfdb38f58a7470a65b92262ccc008c55fff0910160405180910390a160cc55565b60ce81815481106113c157600080fd5b6000918252602090912001546001600160a01b0316905081565b610102546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab9061140f9033908690600401612f0b565b602060405180830381865afa15801561142c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114509190612f2f565b90508061147657333083604051634a3fa29360e01b815260040161071e93929190612f4a565b5050565b6033546001600160a01b03163314610ce15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071e565b6001600160a01b0381166115385760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b606482015260840161071e565b61010280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6115a381611658565b60cf546040516001600160a01b038084169216907fafec95c8612496c3ecf5dddc71e393528fe29bd145fbaf9c6b496d78d7e2d79b90600090a360cf80546001600160a01b0319166001600160a01b0392909216919091179055565b6002609754036116515760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071e565b6002609755565b6001600160a01b03811661076f576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b038216600090815260cb602052604090205460ff1680156116cd57506001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff16155b156114765760405163074c80eb60e51b81526001600160a01b0380841660048301528216602482015260440161071e565b604051633c617c9160e11b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906378c2f92290602401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190612e6d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e85a29607f000000000000000000000000000000000000000000000000000000000000000060056040518363ffffffff1660e01b8152600401611800929190612f95565b602060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118419190612f2f565b60405163460d60c560e11b81526001600160a01b0386811660048301529192506000917f00000000000000000000000000000000000000000000000000000000000000001690638c1ac18a90602401602060405180830381865afa1580156118ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d19190612f2f565b905080806118dc5750815b806118ea575060cd5460ff16155b806118f6575060cc5483105b8061193257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b1561193e575050505050565b60cc546040516329eb1e8760e01b815261071e918591600401918252602082015260400190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cbeb2b286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e99190612fc2565b9050611a006001600160a01b038216333086612286565b611a356001600160a01b0382167f000000000000000000000000000000000000000000000000000000000000000060006122f1565b611a696001600160a01b0382167f0000000000000000000000000000000000000000000000000000000000000000856122f1565b6040516311b3d5e760e01b81526001600160a01b0385811660048301526024820185905283811660448301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906311b3d5e79060640160408051808303816000875af1158015611ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b089190612fdf565b509050611b1481612406565b5050505050565b604051638e8f294b60e01b81526001600160a01b0385811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690638e8f294b90602401606060405180830381865afa158015611b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baa9190612e31565b5050905080611bd757604051635a9a1eb960e11b81526001600160a01b038616600482015260240161071e565b6000856001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b9190612fc2565b90506000611c4b8233308861242a565b9050611c626001600160a01b0383168860006122f1565b611c766001600160a01b03831688836122f1565b604051637af1e23160e11b81526001600160a01b038781166004830152602482018390528581166044830152611cfb919089169063f5e3c462906064016020604051808303816000875af1158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf69190612e6d565b612406565b50505050505050565b600080611d10836121d0565b60405163a9059cbb60e01b81523360048201526024810182905291935091506001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d869190612f2f565b611db25760405163241165bb60e21b81523060048201523360248201526044810182905260640161071e565b600082118015611dc95750611dc78483612533565b155b15611e755760005b60ce54811015611e1a57846001600160a01b031660ce8281548110611df857611df8613003565b6000918252602090912001546001600160a01b031614611e1a57600101611dd1565b60ce548103611e6f5760ce80546001810182556000919091527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b0387161790555b506112a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611ebb57611eb66125c3565b6112a5565b6112a584612781565b60ce5460d054600090821015611eda5781611ede565b60d0545b9050805b801561209d57600060ce611ef7600184612e9c565b81548110611f0757611f07613003565b60009182526020822001546040516370a0823160e01b81523060048201526001600160a01b03909116925082906370a0823190602401602060405180830381865afa158015611f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7e9190612e6d565b9050611f8a8282612533565b15612092577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611fd557611fd06125c3565b611fde565b611fde82612781565b60ce8054611fee90600190612e9c565b81548110611ffe57611ffe613003565b6000918252602090912001546001600160a01b031660ce612020600186612e9c565b8154811061203057612030613003565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ce80548061206f5761206f613019565b600082815260209020810160001990810180546001600160a01b03191690550190555b505060001901611ee2565b505050565b6001609755565b606580546001600160a01b031916905561076f8161293c565b6000670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214f9190612e6d565b6121599190612e9c565b90508082111561147657604051635659cb3b60e01b8152600481018290526024810183905260440161071e565b600054610100900460ff166121ad5760405162461bcd60e51b815260040161071e9061302f565b6121b561298e565b6121bd6129bd565b6121c783826129ec565b61209d82612a2a565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122579190612e6d565b90508060c95485612268919061307a565b6122729190613099565b925061227e8385612e9c565b915050915091565b6040516001600160a01b0380851660248301528316604482015260648101829052610cdb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612a51565b80158061236b5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123699190612e6d565b155b6123d65760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161071e565b6040516001600160a01b03831660248201526044810182905261209d90849063095ea7b360e01b906064016122ba565b8061240e5750565b60405163125a96ab60e01b81526004810182905260240161071e565b6040516370a0823160e01b81526001600160a01b03838116600483015260009182918716906370a0823190602401602060405180830381865afa158015612475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124999190612e6d565b90506124b06001600160a01b038716868686612286565b6040516370a0823160e01b81526001600160a01b0385811660048301528291908816906370a0823190602401602060405180830381865afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190612e6d565b6125279190612e9c565b9150505b949350505050565b60405163db006a7560e01b8152600481018290526000906001600160a01b0384169063db006a75906024016020604051808303816000875af1925050508015612599575060408051601f3d908101601f1916820190925261259691810190612e6d565b60015b6125a5575060006125bd565b806000036125b75760019150506125bd565b60009150505b92915050565b60004790507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561262357600080fd5b505af1158015612637573d6000803e3d6000fd5b505060cf5461267793506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116935016905083612b26565b60cf546040516305bebb3b60e21b81526001600160a01b03909116906316faecec906126ec907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001906004016130bb565b600060405180830381600087803b15801561270657600080fd5b505af115801561271a573d6000803e3d6000fd5b50506040518381526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692503391507fb68163184d017d69dff908f587b51f68dc2689426509efd546fbf77b518cc8769060200160405180910390a350565b6000816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e59190612fc2565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561282f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128539190612e6d565b60cf54909150612870906001600160a01b03848116911683612b26565b60cf546040516305bebb3b60e21b81526001600160a01b03909116906316faecec906128c5907f00000000000000000000000000000000000000000000000000000000000000009086906001906004016130bb565b600060405180830381600087803b1580156128df57600080fd5b505af11580156128f3573d6000803e3d6000fd5b50506040518381526001600160a01b03851692503391507fb68163184d017d69dff908f587b51f68dc2689426509efd546fbf77b518cc8769060200160405180910390a3505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166129b55760405162461bcd60e51b815260040161071e9061302f565b610ce1612b56565b600054610100900460ff166129e45760405162461bcd60e51b815260040161071e9061302f565b610ce1612b86565b600054610100900460ff16612a135760405162461bcd60e51b815260040161071e9061302f565b612a1c826120c2565b60c98290556114768161159a565b600054610100900460ff166107665760405162461bcd60e51b815260040161071e9061302f565b6000612aa6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612bad9092919063ffffffff16565b9050805160001480612ac7575080806020019051810190612ac79190612f2f565b61209d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161071e565b6040516001600160a01b03831660248201526044810182905261209d90849063a9059cbb60e01b906064016122ba565b600054610100900460ff16612b7d5760405162461bcd60e51b815260040161071e9061302f565b610ce1336120a9565b600054610100900460ff166120a25760405162461bcd60e51b815260040161071e9061302f565b606061252b848460008585600080866001600160a01b03168587604051612bd491906130f1565b60006040518083038185875af1925050503d8060008114612c11576040519150601f19603f3d011682016040523d82523d6000602084013e612c16565b606091505b5091509150612c2787838387612c32565b979650505050505050565b60608315612ca1578251600003612c9a576001600160a01b0385163b612c9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161071e565b508161252b565b61252b8383815115612cb65781518083602001fd5b8060405162461bcd60e51b815260040161071e919061310d565b6001600160a01b038116811461076f57600080fd5b600060208284031215612cf757600080fd5b8135612d0281612cd0565b9392505050565b60008060408385031215612d1c57600080fd5b8235612d2781612cd0565b91506020830135612d3781612cd0565b809150509250929050565b60008060008060808587031215612d5857600080fd5b8435612d6381612cd0565b93506020850135612d7381612cd0565b9250604085013591506060850135612d8a81612cd0565b939692955090935050565b600060208284031215612da757600080fd5b5035919050565b600080600060608486031215612dc357600080fd5b833592506020840135612dd581612cd0565b91506040840135612de581612cd0565b809150509250925092565b60008060408385031215612e0357600080fd5b8235612e0e81612cd0565b946020939093013593505050565b80518015158114612e2c57600080fd5b919050565b600080600060608486031215612e4657600080fd5b612e4f84612e1c565b925060208401519150612e6460408501612e1c565b90509250925092565b600060208284031215612e7f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015612eae57612eae612e86565b500390565b60005b83811015612ece578181015183820152602001612eb6565b83811115610cdb5750506000910152565b60008151808452612ef7816020860160208601612eb3565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061252b90830184612edf565b600060208284031215612f4157600080fd5b612d0282612e1c565b6001600160a01b03848116825283166020820152606060408201819052600090612f7690830184612edf565b95945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03831681526040810160098310612fb557612fb5612f7f565b8260208301529392505050565b600060208284031215612fd457600080fd5b8151612d0281612cd0565b60008060408385031215612ff257600080fd5b505080516020909101519092909150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600081600019048311821515161561309457613094612e86565b500290565b6000826130b657634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b0384811682528316602082015260608101600283106130e3576130e3612f7f565b826040830152949350505050565b60008251613103818460208701612eb3565b9190910192915050565b602081526000612d026020830184612edf56fe72656d6f766546726f6d416c6c6f776c69737428616464726573732c616464726573732973657450656e64696e6752656465656d4368756e6b4c656e6774682875696e7432353629a26469706673582212204b609eff30160a8945e0b0a5c94465d46d3f1c03211d6125ec80f64df19ec3f564736f6c634300080d0033";
17
17
  static readonly abi: readonly [{
18
18
  readonly inputs: readonly [{
19
19
  readonly internalType: "address";
@@ -1030,7 +1030,7 @@ const _abi = [
1030
1030
  type: "receive",
1031
1031
  },
1032
1032
  ];
1033
- const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620034f5380380620034f58339810160408190526200003591620001fa565b8282826200004382620000f8565b6200004e83620000f8565b6200005981620000f8565b6001600160a01b0380831660805281811660e052831660a081905260408051639254f5e560e01b81529051639254f5e5916004808201926020929091908290030181865afa158015620000b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d691906200024e565b6001600160a01b031660c052620000ec62000123565b50505050505062000275565b6001600160a01b03811662000120576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff1615620001905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620001e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200012057600080fd5b6000806000606084860312156200021057600080fd5b83516200021d81620001e4565b60208501519093506200023081620001e4565b60408501519092506200024381620001e4565b809150509250925092565b6000602082840312156200026157600080fd5b81516200026e81620001e4565b9392505050565b60805160a05160c05160e05161319e620003576000396000818161059f015281816125ca0152818161264b015281816126c1015261272c01526000818161047d01528181610b8a01528181611720015281816117c2015281816118fe0152818161196901528181611a0f01528181611a440152611a9a01526000818161035d01528181610963015281816117930152818161186601528181611b3d015281816120cf015281816121d70152818161269f015261289801526000818161031101528181610a7601528181610afd01528181611e770152611f91015261319e6000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063b8332db7116100a0578063e9a44fd91161006f578063e9a44fd9146105df578063f2531ea1146105ff578063f2fde38b1461061f578063f52421b31461063f578063f7dcd96e1461065f57600080fd5b8063b8332db714610543578063bbd98d7014610558578063d02eb3f41461058d578063e30c3978146105c157600080fd5b8063b09c7742116100dc578063b09c7742146104bf578063b26461de146104d4578063b4988fd014610504578063b4a0bdf31461052457600080fd5b80638da5cb5b146104375780638e3525fc146104555780639254f5e51461046b578063a093796a1461049f57600080fd5b80635fe3b567116101855780637debe3fe116101545780637debe3fe146103b35780638722ddf2146103d35780638765adcb146103f757806389a2bc251461041757600080fd5b80635fe3b5671461034b57806364fd70781461037f578063715018a61461039257806379ba50971461039e57600080fd5b806336eab4ae116101c157806336eab4ae1461027557806344b3716a146102a457806347a6a971146102df5780635ba3792d146102ff57600080fd5b80630d060ea8146101fe5780630e32cb8614610215578063107568df1461023557806311ec4b7a1461025557600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361067f565b005b34801561022157600080fd5b50610213610230366004612ce5565b61075e565b34801561024157600080fd5b50610213610250366004612ce5565b610772565b34801561026157600080fd5b50610213610270366004612ce5565b610783565b34801561028157600080fd5b5060cd5461028f9060ff1681565b60405190151581526020015b60405180910390f35b3480156102b057600080fd5b5061028f6102bf366004612d09565b60ca60209081526000928352604080842090915290825290205460ff1681565b3480156102eb57600080fd5b506102136102fa366004612d09565b610852565b34801561030b57600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161029b565b34801561035757600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b61021361038d366004612d42565b610926565b34801561021357600080fd5b3480156103aa57600080fd5b50610213610ce3565b3480156103bf57600080fd5b506102136103ce366004612d09565b610d5a565b3480156103df57600080fd5b506103e960cc5481565b60405190815260200161029b565b34801561040357600080fd5b50610213610412366004612ce5565b610e4f565b34801561042357600080fd5b50610213610432366004612d95565b610f1a565b34801561044357600080fd5b506033546001600160a01b0316610333565b34801561046157600080fd5b506103e960c95481565b34801561047757600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ab57600080fd5b506102136104ba366004612d95565b610fa2565b3480156104cb57600080fd5b50610213611049565b3480156104e057600080fd5b5061028f6104ef366004612ce5565b60cb6020526000908152604090205460ff1681565b34801561051057600080fd5b5061021361051f366004612dae565b611128565b34801561053057600080fd5b50610102546001600160a01b0316610333565b34801561054f57600080fd5b5061021361123e565b34801561056457600080fd5b50610578610573366004612df0565b611258565b6040805192835260208301919091520161029b565b34801561059957600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cd57600080fd5b506065546001600160a01b0316610333565b3480156105eb57600080fd5b5060cf54610333906001600160a01b031681565b34801561060b57600080fd5b5061057861061a366004612d95565b6112ac565b34801561062b57600080fd5b5061021361063a366004612ce5565b6112c1565b34801561064b57600080fd5b5061021361065a366004612d95565b611332565b34801561066b57600080fd5b5061033361067a366004612d95565b6113b1565b6106bd6040518060400160405280601881526020017f7061757365466f7263655641494c6971756964617465282900000000000000008152506113db565b60cd5460ff166107275760405162461bcd60e51b815260206004820152602a60248201527f466f726365204c69717569646174696f6e206f662056414920697320616c726560448201526918591e4814185d5cd95960b21b60648201526084015b60405180910390fd5b60cd805460ff1916905560405133907f42388332be4beb2ad2ff83017119b9d702ce7fbaf67e18e53a137508cf967e4390600090a2565b61076661147a565b61076f816114d4565b50565b61077a61147a565b61076f8161159a565b6107c16040518060400160405280601c81526020017f72657374726963744c69717569646174696f6e286164647265737329000000008152506113db565b6001600160a01b038116600090815260cb602052604090205460ff16156108065760405163404fe9fb60e11b81526001600160a01b038216600482015260240161071e565b6001600160a01b038116600081815260cb6020526040808220805460ff19166001179055517f614c47c82976e8f145409efb6366fe2cefa323f389ed9354649262e38dbb35899190a250565b610873604051806060016040528060248152602001613121602491396113db565b6001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff166108cc5760405163435aad4360e01b81526001600160a01b0380841660048301528216602482015260440161071e565b6001600160a01b03808316600081815260ca6020908152604080832094861680845294909152808220805460ff19169055517f6b0d38eafddac0d37e0aff8f4bbd5f3a3cfe124b8eabea27558bffc931ac05b59190a35050565b61092e6115ff565b61093783611658565b610941833361167f565b604051638e8f294b60e01b81526001600160a01b0382811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690638e8f294b90602401606060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190612e31565b50509050806109fd57604051635a9a1eb960e11b81526001600160a01b038316600482015260240161071e565b610a0785856116fe565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190612e6d565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031603610b6057348414610ad65760405163dd97100160e01b81526004810185905234602482015260440161071e565b604051635572051560e11b81526001600160a01b03868116600483015284811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063aae40a2a9034906044016000604051808303818588803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b5050505050610bdd565b3415610b885760405163dd97100160e01b81526000600482015234602482015260440161071e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031603610bd157610bcc858585611965565b610bdd565b610bdd86868686611b1b565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612e6d565b90506000610c568383612e9c565b9050600080610c658784611d04565b91509150610c71611ec4565b604080518981526001600160a01b038c8116602083015291810184905260608101839052818916918b169033907fdd091524d794aecdb5235b2d816620c2598790835e0f3849808504c2dcb4f1a99060800160405180910390a4505050505050610cdb6001609755565b50505050565b565b60655433906001600160a01b03168114610d515760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161071e565b61076f816120a9565b610d986040518060400160405280601f81526020017f616464546f416c6c6f776c69737428616464726573732c6164647265737329008152506113db565b6001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff1615610df25760405163071df39160e01b81526001600160a01b0380841660048301528216602482015260440161071e565b6001600160a01b03808316600081815260ca6020908152604080832094861680845294909152808220805460ff19166001179055517ffe40417b78788808c927141f806ef5082e7bba0f7790f2e85b811621a91094339190a35050565b610e8d6040518060400160405280601e81526020017f756e72657374726963744c69717569646174696f6e28616464726573732900008152506113db565b6001600160a01b038116600090815260cb602052604090205460ff16610ed157604051633bf9d98960e11b81526001600160a01b038216600482015260240161071e565b6001600160a01b038116600081815260cb6020526040808220805460ff19169055517fe1f03de94d16c262d2f0e89a1c42ede8899d540ac992cf53495a5cf29c2896af9190a250565b610f586040518060400160405280601b81526020017f736574547265617375727950657263656e742875696e743235362900000000008152506113db565b610f61816120c2565b60c95460408051918252602082018390527f0e9a1641744b21c49e4183ab9ce941d420e05a05a446c71875fb07814f362c1a910160405180910390a160c955565b610fc3604051806060016040528060248152602001613145602491396113db565b600081116110085760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206368756e6b2073697a6560701b604482015260640161071e565b60d05460408051918252602082018390527fe5eef53e396f0cb79322e15e72b6c6613ae3e62c9079f5a12f2c410867c28b2c910160405180910390a160d055565b6110876040518060400160405280601981526020017f726573756d65466f7263655641494c69717569646174652829000000000000008152506113db565b60cd5460ff16156110ee5760405162461bcd60e51b815260206004820152602b60248201527f466f726365204c69717569646174696f6e206f662056414920697320616c726560448201526a18591e481c995cdd5b595960aa1b606482015260840161071e565b60cd805460ff1916600117905560405133907fd4b8f320ada24d048ee6c25c53a31aa20b2ea37fa25542e6e239c80d31d5b60b90600090a2565b600054610100900460ff16158080156111485750600054600160ff909116105b806111625750303b158015611162575060005460ff166001145b6111c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071e565b6000805460ff1916600117905580156111e8576000805461ff0019166101001790555b6111f3848484612186565b8015610cdb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6112466115ff565b61124e611ec4565b610ce16001609755565b6000806112658484611d04565b60408051838152602081018390529294509092507f965c73d6a816dcbe4cc33516168787cb029afb2156ec3372a16e8c6cfbbe6e22910160405180910390a15b9250929050565b6000806112b8836121d0565b91509150915091565b6112c961147a565b606580546001600160a01b0383166001600160a01b031990911681179091556112fa6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6113706040518060400160405280601e81526020017f7365744d696e4c6971756964617461626c655641492875696e743235362900008152506113db565b60cc5460408051918252602082018390527f8df018dc5fe866d192a3f4d9f16dbfdb38f58a7470a65b92262ccc008c55fff0910160405180910390a160cc55565b60ce81815481106113c157600080fd5b6000918252602090912001546001600160a01b0316905081565b610102546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab9061140f9033908690600401612f0b565b602060405180830381865afa15801561142c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114509190612f2f565b90508061147657333083604051634a3fa29360e01b815260040161071e93929190612f4a565b5050565b6033546001600160a01b03163314610ce15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071e565b6001600160a01b0381166115385760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b606482015260840161071e565b61010280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6115a381611658565b60cf546040516001600160a01b038084169216907fafec95c8612496c3ecf5dddc71e393528fe29bd145fbaf9c6b496d78d7e2d79b90600090a360cf80546001600160a01b0319166001600160a01b0392909216919091179055565b6002609754036116515760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071e565b6002609755565b6001600160a01b03811661076f576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b038216600090815260cb602052604090205460ff1680156116cd57506001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff16155b156114765760405163074c80eb60e51b81526001600160a01b0380841660048301528216602482015260440161071e565b604051633c617c9160e11b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906378c2f92290602401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190612e6d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e85a29607f000000000000000000000000000000000000000000000000000000000000000060056040518363ffffffff1660e01b8152600401611800929190612f95565b602060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118419190612f2f565b60405163460d60c560e11b81526001600160a01b0386811660048301529192506000917f00000000000000000000000000000000000000000000000000000000000000001690638c1ac18a90602401602060405180830381865afa1580156118ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d19190612f2f565b905080806118dc5750815b806118ea575060cd5460ff16155b806118f6575060cc5483105b8061193257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b1561193e575050505050565b60cc546040516329eb1e8760e01b815261071e918591600401918252602082015260400190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cbeb2b286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e99190612fc2565b9050611a006001600160a01b038216333086612286565b611a356001600160a01b0382167f000000000000000000000000000000000000000000000000000000000000000060006122f1565b611a696001600160a01b0382167f0000000000000000000000000000000000000000000000000000000000000000856122f1565b6040516311b3d5e760e01b81526001600160a01b0385811660048301526024820185905283811660448301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906311b3d5e79060640160408051808303816000875af1158015611ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b089190612fdf565b509050611b1481612406565b5050505050565b604051638e8f294b60e01b81526001600160a01b0385811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690638e8f294b90602401606060405180830381865afa158015611b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baa9190612e31565b5050905080611bd757604051635a9a1eb960e11b81526001600160a01b038616600482015260240161071e565b6000856001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b9190612fc2565b90506000611c4b8233308861242a565b9050611c626001600160a01b0383168860006122f1565b611c766001600160a01b03831688836122f1565b604051637af1e23160e11b81526001600160a01b038781166004830152602482018390528581166044830152611cfb919089169063f5e3c462906064016020604051808303816000875af1158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf69190612e6d565b612406565b50505050505050565b600080611d10836121d0565b60405163a9059cbb60e01b81523360048201526024810182905291935091506001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d869190612f2f565b611db25760405163241165bb60e21b81523060048201523360248201526044810182905260640161071e565b600082118015611dc95750611dc78483612533565b155b15611e755760005b60ce54811015611e1a57846001600160a01b031660ce8281548110611df857611df8613003565b6000918252602090912001546001600160a01b031614611e1a57600101611dd1565b60ce548103611e6f5760ce80546001810182556000919091527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b0387161790555b506112a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611ebb57611eb66125c3565b6112a5565b6112a584612781565b60ce5460d054600090821015611eda5781611ede565b60d0545b9050805b801561209d57600060ce611ef7600184612e9c565b81548110611f0757611f07613003565b60009182526020822001546040516370a0823160e01b81523060048201526001600160a01b03909116925082906370a0823190602401602060405180830381865afa158015611f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7e9190612e6d565b9050611f8a8282612533565b15612092577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611fd557611fd06125c3565b611fde565b611fde82612781565b60ce8054611fee90600190612e9c565b81548110611ffe57611ffe613003565b6000918252602090912001546001600160a01b031660ce612020600186612e9c565b8154811061203057612030613003565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ce80548061206f5761206f613019565b600082815260209020810160001990810180546001600160a01b03191690550190555b505060001901611ee2565b505050565b6001609755565b606580546001600160a01b031916905561076f8161293c565b6000670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214f9190612e6d565b6121599190612e9c565b90508082111561147657604051635659cb3b60e01b8152600481018290526024810183905260440161071e565b600054610100900460ff166121ad5760405162461bcd60e51b815260040161071e9061302f565b6121b561298e565b6121bd6129bd565b6121c783826129ec565b61209d82612a2a565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122579190612e6d565b90508060c95485612268919061307a565b6122729190613099565b925061227e8385612e9c565b915050915091565b6040516001600160a01b0380851660248301528316604482015260648101829052610cdb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612a51565b80158061236b5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123699190612e6d565b155b6123d65760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161071e565b6040516001600160a01b03831660248201526044810182905261209d90849063095ea7b360e01b906064016122ba565b8061240e5750565b60405163125a96ab60e01b81526004810182905260240161071e565b6040516370a0823160e01b81526001600160a01b03838116600483015260009182918716906370a0823190602401602060405180830381865afa158015612475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124999190612e6d565b90506124b06001600160a01b038716868686612286565b6040516370a0823160e01b81526001600160a01b0385811660048301528291908816906370a0823190602401602060405180830381865afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190612e6d565b6125279190612e9c565b9150505b949350505050565b60405163db006a7560e01b8152600481018290526000906001600160a01b0384169063db006a75906024016020604051808303816000875af1925050508015612599575060408051601f3d908101601f1916820190925261259691810190612e6d565b60015b6125a5575060006125bd565b806000036125b75760019150506125bd565b60009150505b92915050565b60004790507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561262357600080fd5b505af1158015612637573d6000803e3d6000fd5b505060cf5461267793506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116935016905083612b26565b60cf546040516305bebb3b60e21b81526001600160a01b03909116906316faecec906126ec907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001906004016130bb565b600060405180830381600087803b15801561270657600080fd5b505af115801561271a573d6000803e3d6000fd5b50506040518381526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692503391507fb68163184d017d69dff908f587b51f68dc2689426509efd546fbf77b518cc8769060200160405180910390a350565b6000816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e59190612fc2565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561282f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128539190612e6d565b60cf54909150612870906001600160a01b03848116911683612b26565b60cf546040516305bebb3b60e21b81526001600160a01b03909116906316faecec906128c5907f00000000000000000000000000000000000000000000000000000000000000009086906001906004016130bb565b600060405180830381600087803b1580156128df57600080fd5b505af11580156128f3573d6000803e3d6000fd5b50506040518381526001600160a01b03851692503391507fb68163184d017d69dff908f587b51f68dc2689426509efd546fbf77b518cc8769060200160405180910390a3505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166129b55760405162461bcd60e51b815260040161071e9061302f565b610ce1612b56565b600054610100900460ff166129e45760405162461bcd60e51b815260040161071e9061302f565b610ce1612b86565b600054610100900460ff16612a135760405162461bcd60e51b815260040161071e9061302f565b612a1c826120c2565b60c98290556114768161159a565b600054610100900460ff166107665760405162461bcd60e51b815260040161071e9061302f565b6000612aa6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612bad9092919063ffffffff16565b9050805160001480612ac7575080806020019051810190612ac79190612f2f565b61209d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161071e565b6040516001600160a01b03831660248201526044810182905261209d90849063a9059cbb60e01b906064016122ba565b600054610100900460ff16612b7d5760405162461bcd60e51b815260040161071e9061302f565b610ce1336120a9565b600054610100900460ff166120a25760405162461bcd60e51b815260040161071e9061302f565b606061252b848460008585600080866001600160a01b03168587604051612bd491906130f1565b60006040518083038185875af1925050503d8060008114612c11576040519150601f19603f3d011682016040523d82523d6000602084013e612c16565b606091505b5091509150612c2787838387612c32565b979650505050505050565b60608315612ca1578251600003612c9a576001600160a01b0385163b612c9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161071e565b508161252b565b61252b8383815115612cb65781518083602001fd5b8060405162461bcd60e51b815260040161071e919061310d565b6001600160a01b038116811461076f57600080fd5b600060208284031215612cf757600080fd5b8135612d0281612cd0565b9392505050565b60008060408385031215612d1c57600080fd5b8235612d2781612cd0565b91506020830135612d3781612cd0565b809150509250929050565b60008060008060808587031215612d5857600080fd5b8435612d6381612cd0565b93506020850135612d7381612cd0565b9250604085013591506060850135612d8a81612cd0565b939692955090935050565b600060208284031215612da757600080fd5b5035919050565b600080600060608486031215612dc357600080fd5b833592506020840135612dd581612cd0565b91506040840135612de581612cd0565b809150509250925092565b60008060408385031215612e0357600080fd5b8235612e0e81612cd0565b946020939093013593505050565b80518015158114612e2c57600080fd5b919050565b600080600060608486031215612e4657600080fd5b612e4f84612e1c565b925060208401519150612e6460408501612e1c565b90509250925092565b600060208284031215612e7f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015612eae57612eae612e86565b500390565b60005b83811015612ece578181015183820152602001612eb6565b83811115610cdb5750506000910152565b60008151808452612ef7816020860160208601612eb3565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061252b90830184612edf565b600060208284031215612f4157600080fd5b612d0282612e1c565b6001600160a01b03848116825283166020820152606060408201819052600090612f7690830184612edf565b95945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03831681526040810160098310612fb557612fb5612f7f565b8260208301529392505050565b600060208284031215612fd457600080fd5b8151612d0281612cd0565b60008060408385031215612ff257600080fd5b505080516020909101519092909150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600081600019048311821515161561309457613094612e86565b500290565b6000826130b657634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b0384811682528316602082015260608101600283106130e3576130e3612f7f565b826040830152949350505050565b60008251613103818460208701612eb3565b9190910192915050565b602081526000612d026020830184612edf56fe72656d6f766546726f6d416c6c6f776c69737428616464726573732c616464726573732973657450656e64696e6752656465656d4368756e6b4c656e6774682875696e7432353629a264697066735822122031ffa44e37df8deda22f81e767db2e6d3d68948f4afc968bcba1d17f046a6daf64736f6c634300080d0033";
1033
+ const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620034f5380380620034f58339810160408190526200003591620001fa565b8282826200004382620000f8565b6200004e83620000f8565b6200005981620000f8565b6001600160a01b0380831660805281811660e052831660a081905260408051639254f5e560e01b81529051639254f5e5916004808201926020929091908290030181865afa158015620000b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d691906200024e565b6001600160a01b031660c052620000ec62000123565b50505050505062000275565b6001600160a01b03811662000120576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff1615620001905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620001e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200012057600080fd5b6000806000606084860312156200021057600080fd5b83516200021d81620001e4565b60208501519093506200023081620001e4565b60408501519092506200024381620001e4565b809150509250925092565b6000602082840312156200026157600080fd5b81516200026e81620001e4565b9392505050565b60805160a05160c05160e05161319e620003576000396000818161059f015281816125ca0152818161264b015281816126c1015261272c01526000818161047d01528181610b8a01528181611720015281816117c2015281816118fe0152818161196901528181611a0f01528181611a440152611a9a01526000818161035d01528181610963015281816117930152818161186601528181611b3d015281816120cf015281816121d70152818161269f015261289801526000818161031101528181610a7601528181610afd01528181611e770152611f91015261319e6000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063b8332db7116100a0578063e9a44fd91161006f578063e9a44fd9146105df578063f2531ea1146105ff578063f2fde38b1461061f578063f52421b31461063f578063f7dcd96e1461065f57600080fd5b8063b8332db714610543578063bbd98d7014610558578063d02eb3f41461058d578063e30c3978146105c157600080fd5b8063b09c7742116100dc578063b09c7742146104bf578063b26461de146104d4578063b4988fd014610504578063b4a0bdf31461052457600080fd5b80638da5cb5b146104375780638e3525fc146104555780639254f5e51461046b578063a093796a1461049f57600080fd5b80635fe3b567116101855780637debe3fe116101545780637debe3fe146103b35780638722ddf2146103d35780638765adcb146103f757806389a2bc251461041757600080fd5b80635fe3b5671461034b57806364fd70781461037f578063715018a61461039257806379ba50971461039e57600080fd5b806336eab4ae116101c157806336eab4ae1461027557806344b3716a146102a457806347a6a971146102df5780635ba3792d146102ff57600080fd5b80630d060ea8146101fe5780630e32cb8614610215578063107568df1461023557806311ec4b7a1461025557600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361067f565b005b34801561022157600080fd5b50610213610230366004612ce5565b61075e565b34801561024157600080fd5b50610213610250366004612ce5565b610772565b34801561026157600080fd5b50610213610270366004612ce5565b610783565b34801561028157600080fd5b5060cd5461028f9060ff1681565b60405190151581526020015b60405180910390f35b3480156102b057600080fd5b5061028f6102bf366004612d09565b60ca60209081526000928352604080842090915290825290205460ff1681565b3480156102eb57600080fd5b506102136102fa366004612d09565b610852565b34801561030b57600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161029b565b34801561035757600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b61021361038d366004612d42565b610926565b34801561021357600080fd5b3480156103aa57600080fd5b50610213610ce3565b3480156103bf57600080fd5b506102136103ce366004612d09565b610d5a565b3480156103df57600080fd5b506103e960cc5481565b60405190815260200161029b565b34801561040357600080fd5b50610213610412366004612ce5565b610e4f565b34801561042357600080fd5b50610213610432366004612d95565b610f1a565b34801561044357600080fd5b506033546001600160a01b0316610333565b34801561046157600080fd5b506103e960c95481565b34801561047757600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ab57600080fd5b506102136104ba366004612d95565b610fa2565b3480156104cb57600080fd5b50610213611049565b3480156104e057600080fd5b5061028f6104ef366004612ce5565b60cb6020526000908152604090205460ff1681565b34801561051057600080fd5b5061021361051f366004612dae565b611128565b34801561053057600080fd5b50610102546001600160a01b0316610333565b34801561054f57600080fd5b5061021361123e565b34801561056457600080fd5b50610578610573366004612df0565b611258565b6040805192835260208301919091520161029b565b34801561059957600080fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cd57600080fd5b506065546001600160a01b0316610333565b3480156105eb57600080fd5b5060cf54610333906001600160a01b031681565b34801561060b57600080fd5b5061057861061a366004612d95565b6112ac565b34801561062b57600080fd5b5061021361063a366004612ce5565b6112c1565b34801561064b57600080fd5b5061021361065a366004612d95565b611332565b34801561066b57600080fd5b5061033361067a366004612d95565b6113b1565b6106bd6040518060400160405280601881526020017f7061757365466f7263655641494c6971756964617465282900000000000000008152506113db565b60cd5460ff166107275760405162461bcd60e51b815260206004820152602a60248201527f466f726365204c69717569646174696f6e206f662056414920697320616c726560448201526918591e4814185d5cd95960b21b60648201526084015b60405180910390fd5b60cd805460ff1916905560405133907f42388332be4beb2ad2ff83017119b9d702ce7fbaf67e18e53a137508cf967e4390600090a2565b61076661147a565b61076f816114d4565b50565b61077a61147a565b61076f8161159a565b6107c16040518060400160405280601c81526020017f72657374726963744c69717569646174696f6e286164647265737329000000008152506113db565b6001600160a01b038116600090815260cb602052604090205460ff16156108065760405163404fe9fb60e11b81526001600160a01b038216600482015260240161071e565b6001600160a01b038116600081815260cb6020526040808220805460ff19166001179055517f614c47c82976e8f145409efb6366fe2cefa323f389ed9354649262e38dbb35899190a250565b610873604051806060016040528060248152602001613121602491396113db565b6001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff166108cc5760405163435aad4360e01b81526001600160a01b0380841660048301528216602482015260440161071e565b6001600160a01b03808316600081815260ca6020908152604080832094861680845294909152808220805460ff19169055517f6b0d38eafddac0d37e0aff8f4bbd5f3a3cfe124b8eabea27558bffc931ac05b59190a35050565b61092e6115ff565b61093783611658565b610941833361167f565b604051638e8f294b60e01b81526001600160a01b0382811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690638e8f294b90602401606060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190612e31565b50509050806109fd57604051635a9a1eb960e11b81526001600160a01b038316600482015260240161071e565b610a0785856116fe565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190612e6d565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031603610b6057348414610ad65760405163dd97100160e01b81526004810185905234602482015260440161071e565b604051635572051560e11b81526001600160a01b03868116600483015284811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063aae40a2a9034906044016000604051808303818588803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b5050505050610bdd565b3415610b885760405163dd97100160e01b81526000600482015234602482015260440161071e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031603610bd157610bcc858585611965565b610bdd565b610bdd86868686611b1b565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612e6d565b90506000610c568383612e9c565b9050600080610c658784611d04565b91509150610c71611ec4565b604080518981526001600160a01b038c8116602083015291810184905260608101839052818916918b169033907fdd091524d794aecdb5235b2d816620c2598790835e0f3849808504c2dcb4f1a99060800160405180910390a4505050505050610cdb6001609755565b50505050565b565b60655433906001600160a01b03168114610d515760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161071e565b61076f816120a9565b610d986040518060400160405280601f81526020017f616464546f416c6c6f776c69737428616464726573732c6164647265737329008152506113db565b6001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff1615610df25760405163071df39160e01b81526001600160a01b0380841660048301528216602482015260440161071e565b6001600160a01b03808316600081815260ca6020908152604080832094861680845294909152808220805460ff19166001179055517ffe40417b78788808c927141f806ef5082e7bba0f7790f2e85b811621a91094339190a35050565b610e8d6040518060400160405280601e81526020017f756e72657374726963744c69717569646174696f6e28616464726573732900008152506113db565b6001600160a01b038116600090815260cb602052604090205460ff16610ed157604051633bf9d98960e11b81526001600160a01b038216600482015260240161071e565b6001600160a01b038116600081815260cb6020526040808220805460ff19169055517fe1f03de94d16c262d2f0e89a1c42ede8899d540ac992cf53495a5cf29c2896af9190a250565b610f586040518060400160405280601b81526020017f736574547265617375727950657263656e742875696e743235362900000000008152506113db565b610f61816120c2565b60c95460408051918252602082018390527f0e9a1641744b21c49e4183ab9ce941d420e05a05a446c71875fb07814f362c1a910160405180910390a160c955565b610fc3604051806060016040528060248152602001613145602491396113db565b600081116110085760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206368756e6b2073697a6560701b604482015260640161071e565b60d05460408051918252602082018390527fe5eef53e396f0cb79322e15e72b6c6613ae3e62c9079f5a12f2c410867c28b2c910160405180910390a160d055565b6110876040518060400160405280601981526020017f726573756d65466f7263655641494c69717569646174652829000000000000008152506113db565b60cd5460ff16156110ee5760405162461bcd60e51b815260206004820152602b60248201527f466f726365204c69717569646174696f6e206f662056414920697320616c726560448201526a18591e481c995cdd5b595960aa1b606482015260840161071e565b60cd805460ff1916600117905560405133907fd4b8f320ada24d048ee6c25c53a31aa20b2ea37fa25542e6e239c80d31d5b60b90600090a2565b600054610100900460ff16158080156111485750600054600160ff909116105b806111625750303b158015611162575060005460ff166001145b6111c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071e565b6000805460ff1916600117905580156111e8576000805461ff0019166101001790555b6111f3848484612186565b8015610cdb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6112466115ff565b61124e611ec4565b610ce16001609755565b6000806112658484611d04565b60408051838152602081018390529294509092507f965c73d6a816dcbe4cc33516168787cb029afb2156ec3372a16e8c6cfbbe6e22910160405180910390a15b9250929050565b6000806112b8836121d0565b91509150915091565b6112c961147a565b606580546001600160a01b0383166001600160a01b031990911681179091556112fa6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6113706040518060400160405280601e81526020017f7365744d696e4c6971756964617461626c655641492875696e743235362900008152506113db565b60cc5460408051918252602082018390527f8df018dc5fe866d192a3f4d9f16dbfdb38f58a7470a65b92262ccc008c55fff0910160405180910390a160cc55565b60ce81815481106113c157600080fd5b6000918252602090912001546001600160a01b0316905081565b610102546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab9061140f9033908690600401612f0b565b602060405180830381865afa15801561142c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114509190612f2f565b90508061147657333083604051634a3fa29360e01b815260040161071e93929190612f4a565b5050565b6033546001600160a01b03163314610ce15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071e565b6001600160a01b0381166115385760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b606482015260840161071e565b61010280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6115a381611658565b60cf546040516001600160a01b038084169216907fafec95c8612496c3ecf5dddc71e393528fe29bd145fbaf9c6b496d78d7e2d79b90600090a360cf80546001600160a01b0319166001600160a01b0392909216919091179055565b6002609754036116515760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071e565b6002609755565b6001600160a01b03811661076f576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b038216600090815260cb602052604090205460ff1680156116cd57506001600160a01b03808316600090815260ca602090815260408083209385168352929052205460ff16155b156114765760405163074c80eb60e51b81526001600160a01b0380841660048301528216602482015260440161071e565b604051633c617c9160e11b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906378c2f92290602401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190612e6d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e85a29607f000000000000000000000000000000000000000000000000000000000000000060056040518363ffffffff1660e01b8152600401611800929190612f95565b602060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118419190612f2f565b60405163460d60c560e11b81526001600160a01b0386811660048301529192506000917f00000000000000000000000000000000000000000000000000000000000000001690638c1ac18a90602401602060405180830381865afa1580156118ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d19190612f2f565b905080806118dc5750815b806118ea575060cd5460ff16155b806118f6575060cc5483105b8061193257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b1561193e575050505050565b60cc546040516329eb1e8760e01b815261071e918591600401918252602082015260400190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cbeb2b286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e99190612fc2565b9050611a006001600160a01b038216333086612286565b611a356001600160a01b0382167f000000000000000000000000000000000000000000000000000000000000000060006122f1565b611a696001600160a01b0382167f0000000000000000000000000000000000000000000000000000000000000000856122f1565b6040516311b3d5e760e01b81526001600160a01b0385811660048301526024820185905283811660448301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906311b3d5e79060640160408051808303816000875af1158015611ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b089190612fdf565b509050611b1481612406565b5050505050565b604051638e8f294b60e01b81526001600160a01b0385811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690638e8f294b90602401606060405180830381865afa158015611b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baa9190612e31565b5050905080611bd757604051635a9a1eb960e11b81526001600160a01b038616600482015260240161071e565b6000856001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b9190612fc2565b90506000611c4b8233308861242a565b9050611c626001600160a01b0383168860006122f1565b611c766001600160a01b03831688836122f1565b604051637af1e23160e11b81526001600160a01b038781166004830152602482018390528581166044830152611cfb919089169063f5e3c462906064016020604051808303816000875af1158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf69190612e6d565b612406565b50505050505050565b600080611d10836121d0565b60405163a9059cbb60e01b81523360048201526024810182905291935091506001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d869190612f2f565b611db25760405163241165bb60e21b81523060048201523360248201526044810182905260640161071e565b600082118015611dc95750611dc78483612533565b155b15611e755760005b60ce54811015611e1a57846001600160a01b031660ce8281548110611df857611df8613003565b6000918252602090912001546001600160a01b031614611e1a57600101611dd1565b60ce548103611e6f5760ce80546001810182556000919091527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b0387161790555b506112a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611ebb57611eb66125c3565b6112a5565b6112a584612781565b60ce5460d054600090821015611eda5781611ede565b60d0545b9050805b801561209d57600060ce611ef7600184612e9c565b81548110611f0757611f07613003565b60009182526020822001546040516370a0823160e01b81523060048201526001600160a01b03909116925082906370a0823190602401602060405180830381865afa158015611f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7e9190612e6d565b9050611f8a8282612533565b15612092577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611fd557611fd06125c3565b611fde565b611fde82612781565b60ce8054611fee90600190612e9c565b81548110611ffe57611ffe613003565b6000918252602090912001546001600160a01b031660ce612020600186612e9c565b8154811061203057612030613003565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ce80548061206f5761206f613019565b600082815260209020810160001990810180546001600160a01b03191690550190555b505060001901611ee2565b505050565b6001609755565b606580546001600160a01b031916905561076f8161293c565b6000670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214f9190612e6d565b6121599190612e9c565b90508082111561147657604051635659cb3b60e01b8152600481018290526024810183905260440161071e565b600054610100900460ff166121ad5760405162461bcd60e51b815260040161071e9061302f565b6121b561298e565b6121bd6129bd565b6121c783826129ec565b61209d82612a2a565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122579190612e6d565b90508060c95485612268919061307a565b6122729190613099565b925061227e8385612e9c565b915050915091565b6040516001600160a01b0380851660248301528316604482015260648101829052610cdb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612a51565b80158061236b5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123699190612e6d565b155b6123d65760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161071e565b6040516001600160a01b03831660248201526044810182905261209d90849063095ea7b360e01b906064016122ba565b8061240e5750565b60405163125a96ab60e01b81526004810182905260240161071e565b6040516370a0823160e01b81526001600160a01b03838116600483015260009182918716906370a0823190602401602060405180830381865afa158015612475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124999190612e6d565b90506124b06001600160a01b038716868686612286565b6040516370a0823160e01b81526001600160a01b0385811660048301528291908816906370a0823190602401602060405180830381865afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190612e6d565b6125279190612e9c565b9150505b949350505050565b60405163db006a7560e01b8152600481018290526000906001600160a01b0384169063db006a75906024016020604051808303816000875af1925050508015612599575060408051601f3d908101601f1916820190925261259691810190612e6d565b60015b6125a5575060006125bd565b806000036125b75760019150506125bd565b60009150505b92915050565b60004790507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561262357600080fd5b505af1158015612637573d6000803e3d6000fd5b505060cf5461267793506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116935016905083612b26565b60cf546040516305bebb3b60e21b81526001600160a01b03909116906316faecec906126ec907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001906004016130bb565b600060405180830381600087803b15801561270657600080fd5b505af115801561271a573d6000803e3d6000fd5b50506040518381526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692503391507fb68163184d017d69dff908f587b51f68dc2689426509efd546fbf77b518cc8769060200160405180910390a350565b6000816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e59190612fc2565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561282f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128539190612e6d565b60cf54909150612870906001600160a01b03848116911683612b26565b60cf546040516305bebb3b60e21b81526001600160a01b03909116906316faecec906128c5907f00000000000000000000000000000000000000000000000000000000000000009086906001906004016130bb565b600060405180830381600087803b1580156128df57600080fd5b505af11580156128f3573d6000803e3d6000fd5b50506040518381526001600160a01b03851692503391507fb68163184d017d69dff908f587b51f68dc2689426509efd546fbf77b518cc8769060200160405180910390a3505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166129b55760405162461bcd60e51b815260040161071e9061302f565b610ce1612b56565b600054610100900460ff166129e45760405162461bcd60e51b815260040161071e9061302f565b610ce1612b86565b600054610100900460ff16612a135760405162461bcd60e51b815260040161071e9061302f565b612a1c826120c2565b60c98290556114768161159a565b600054610100900460ff166107665760405162461bcd60e51b815260040161071e9061302f565b6000612aa6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612bad9092919063ffffffff16565b9050805160001480612ac7575080806020019051810190612ac79190612f2f565b61209d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161071e565b6040516001600160a01b03831660248201526044810182905261209d90849063a9059cbb60e01b906064016122ba565b600054610100900460ff16612b7d5760405162461bcd60e51b815260040161071e9061302f565b610ce1336120a9565b600054610100900460ff166120a25760405162461bcd60e51b815260040161071e9061302f565b606061252b848460008585600080866001600160a01b03168587604051612bd491906130f1565b60006040518083038185875af1925050503d8060008114612c11576040519150601f19603f3d011682016040523d82523d6000602084013e612c16565b606091505b5091509150612c2787838387612c32565b979650505050505050565b60608315612ca1578251600003612c9a576001600160a01b0385163b612c9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161071e565b508161252b565b61252b8383815115612cb65781518083602001fd5b8060405162461bcd60e51b815260040161071e919061310d565b6001600160a01b038116811461076f57600080fd5b600060208284031215612cf757600080fd5b8135612d0281612cd0565b9392505050565b60008060408385031215612d1c57600080fd5b8235612d2781612cd0565b91506020830135612d3781612cd0565b809150509250929050565b60008060008060808587031215612d5857600080fd5b8435612d6381612cd0565b93506020850135612d7381612cd0565b9250604085013591506060850135612d8a81612cd0565b939692955090935050565b600060208284031215612da757600080fd5b5035919050565b600080600060608486031215612dc357600080fd5b833592506020840135612dd581612cd0565b91506040840135612de581612cd0565b809150509250925092565b60008060408385031215612e0357600080fd5b8235612e0e81612cd0565b946020939093013593505050565b80518015158114612e2c57600080fd5b919050565b600080600060608486031215612e4657600080fd5b612e4f84612e1c565b925060208401519150612e6460408501612e1c565b90509250925092565b600060208284031215612e7f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015612eae57612eae612e86565b500390565b60005b83811015612ece578181015183820152602001612eb6565b83811115610cdb5750506000910152565b60008151808452612ef7816020860160208601612eb3565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061252b90830184612edf565b600060208284031215612f4157600080fd5b612d0282612e1c565b6001600160a01b03848116825283166020820152606060408201819052600090612f7690830184612edf565b95945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03831681526040810160098310612fb557612fb5612f7f565b8260208301529392505050565b600060208284031215612fd457600080fd5b8151612d0281612cd0565b60008060408385031215612ff257600080fd5b505080516020909101519092909150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600081600019048311821515161561309457613094612e86565b500290565b6000826130b657634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b0384811682528316602082015260608101600283106130e3576130e3612f7f565b826040830152949350505050565b60008251613103818460208701612eb3565b9190910192915050565b602081526000612d026020830184612edf56fe72656d6f766546726f6d416c6c6f776c69737428616464726573732c616464726573732973657450656e64696e6752656465656d4368756e6b4c656e6774682875696e7432353629a26469706673582212204b609eff30160a8945e0b0a5c94465d46d3f1c03211d6125ec80f64df19ec3f564736f6c634300080d0033";
1034
1034
  const isSuperArgs = (xs) => xs.length > 1;
1035
1035
  class LiquidatorHarness__factory extends ethers_1.ContractFactory {
1036
1036
  constructor(...args) {
@@ -203,6 +203,8 @@ export type { SnapshotLens } from "./contracts/Lens/SnapshotLens";
203
203
  export { SnapshotLens__factory } from "./factories/contracts/Lens/SnapshotLens__factory";
204
204
  export type { VenusLens } from "./contracts/Lens/VenusLens";
205
205
  export { VenusLens__factory } from "./factories/contracts/Lens/VenusLens__factory";
206
+ export type { CurrencyLibrary } from "./contracts/lib/Currency.sol/CurrencyLibrary";
207
+ export { CurrencyLibrary__factory } from "./factories/contracts/lib/Currency.sol/CurrencyLibrary__factory";
206
208
  export type { BUSDLiquidator } from "./contracts/Liquidator/BUSDLiquidator";
207
209
  export { BUSDLiquidator__factory } from "./factories/contracts/Liquidator/BUSDLiquidator__factory";
208
210
  export type { Liquidator } from "./contracts/Liquidator/Liquidator";
@@ -26,10 +26,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  exports.ComptrollerInterface__factory = exports.VTokenInterface__factory = exports.VBNBAdminStorage__factory = exports.IWBNB__factory = exports.IProtocolShareReserve__factory = exports.VBNBAdmin__factory = exports.TimeManagerV8__factory = exports.MaxLoopsLimitHelper__factory = exports.TwapInterface__factory = exports.ResilientOracleInterface__factory = exports.OracleInterface__factory = exports.BoundValidatorInterface__factory = exports.IAccessControlManagerV8__factory = exports.IAccessControlManagerV5__factory = exports.XvsVaultInterface__factory = exports.TimelockInterface__factory = exports.GovernorBravoEvents__factory = exports.GovernorBravoDelegatorStorage__factory = exports.GovernorBravoDelegateStorageV2__factory = exports.GovernorBravoDelegateStorageV1__factory = exports.GovernorAlphaInterface__factory = exports.GovernorBravoDelegate__factory = exports.AccessControlledV8__factory = exports.AccessControlledV5__factory = exports.IERC20__factory = exports.IERC20Permit__factory = exports.IERC20Metadata__factory = exports.ERC20__factory = exports.TransparentUpgradeableProxy__factory = exports.ITransparentUpgradeableProxy__factory = exports.ProxyAdmin__factory = exports.Proxy__factory = exports.ERC1967Upgrade__factory = exports.ERC1967Proxy__factory = exports.IBeacon__factory = exports.IERC1967__factory = exports.IERC1822Proxiable__factory = exports.Ownable2Step__factory = exports.Ownable__factory = exports.IAccessControl__factory = exports.ContextUpgradeable__factory = exports.IERC20Upgradeable__factory = exports.IERC20PermitUpgradeable__factory = exports.IERC20MetadataUpgradeable__factory = exports.ReentrancyGuardUpgradeable__factory = exports.PausableUpgradeable__factory = exports.Initializable__factory = exports.OwnableUpgradeable__factory = exports.Ownable2StepUpgradeable__factory = exports.factories = void 0;
28
28
  exports.VenusLens__factory = exports.SnapshotLens__factory = exports.ComptrollerLens__factory = exports.IVToken__factory = exports.IVBNB__factory = exports.IVBep20__factory = exports.IVAIController__factory = exports.ILiquidator__factory = exports.WhitePaperInterestRateModel__factory = exports.JumpRateModel__factory = exports.InterestRateModel__factory = exports.VTreasuryV8__factory = exports.VTreasury__factory = exports.TokenRedeemer__factory = exports.SwapDebtDelegate__factory = exports.MoveDebtDelegate__factory = exports.Unitroller__factory = exports.ISetterFacet__factory = exports.IRewardFacet__factory = exports.IPolicyFacet__factory = exports.IMarketFacet__factory = exports.IDiamondCut__factory = exports.XVSRewardsHelper__factory = exports.SetterFacet__factory = exports.RewardFacet__factory = exports.PolicyFacet__factory = exports.MarketFacet__factory = exports.FacetBase__factory = exports.DiamondConsolidated__factory = exports.Diamond__factory = exports.UnitrollerAdminStorage__factory = exports.ComptrollerV9Storage__factory = exports.ComptrollerV8Storage__factory = exports.ComptrollerV7Storage__factory = exports.ComptrollerV6Storage__factory = exports.ComptrollerV5Storage__factory = exports.ComptrollerV4Storage__factory = exports.ComptrollerV3Storage__factory = exports.ComptrollerV2Storage__factory = exports.ComptrollerV1Storage__factory = exports.ComptrollerV16Storage__factory = exports.ComptrollerV15Storage__factory = exports.ComptrollerV14Storage__factory = exports.ComptrollerV13Storage__factory = exports.ComptrollerV12Storage__factory = exports.ComptrollerV11Storage__factory = exports.ComptrollerV10Storage__factory = exports.ComptrollerLensInterface__factory = exports.IVAIVault__factory = exports.IComptroller__factory = void 0;
29
- exports.DeflatingERC20__factory = exports.LiquidatorHarness__factory = exports.InterestRateModelHarness__factory = exports.FixedPriceOracle__factory = exports.FeeToken__factory = exports.FaucetTokenReEntrantHarness__factory = exports.FaucetToken__factory = exports.FaucetNonStandardToken__factory = exports.Fauceteer__factory = exports.FalseMarkerMethodInterestRateModel__factory = exports.FalseMarkerMethodComptroller__factory = exports.VBep20Scenario__factory = exports.EvilXToken__factory = exports.EvilXDelegator__factory = exports.EvilToken__factory = exports.DiamondHarnessInterface__factory = exports.DiamondHarness__factory = exports.Counter__factory = exports.ConstSub__factory = exports.ConstBase__factory = exports.ComptrollerScenario__factory = exports.ComptrollerMock__factory = exports.EchoTypesComptroller__factory = exports.ComptrollerHarness__factory = exports.StandardToken__factory = exports.NonStandardToken__factory = exports.BEP20NS__factory = exports.BEP20Harness__factory = exports.BEP20Base__factory = exports.BEP20__factory = exports.BEP20XRP__factory = exports.BEP20Ethereum__factory = exports.BEP20Token__factory = exports.IBEP20__factory = exports.Context__factory = exports.BEP20BitcoinCash__factory = exports.AccessControlManagerMock__factory = exports.SwapRouter__factory = exports.RouterHelper__factory = exports.IRouterHelper__factory = exports.IPancakeSwapV2Router__factory = exports.IPancakeSwapV2Factory__factory = exports.IPancakePair__factory = exports.InterfaceComptroller__factory = exports.PegStability__factory = exports.IVAI__factory = exports.PriceOracle__factory = exports.LiquidatorStorage__factory = exports.Liquidator__factory = exports.BUSDLiquidator__factory = void 0;
30
- exports.PrimeLiquidityProviderStorageV1__factory = exports.PrimeLiquidityProvider__factory = exports.Prime__factory = exports.FixedMath__factory = exports.IXVSVault__factory = exports.IPrimeLiquidityProvider__factory = exports.PoolRegistryInterface__factory = exports.EIP20NonStandardInterface__factory = exports.EIP20Interface__factory = exports.BEP20Interface__factory = exports.XVSVestingHarness__factory = exports.XVSVaultScenario__factory = exports.XVSVaultHarness__factory = exports.XVSScenario__factory = exports.WBTVToken__factory = exports.PausableToken__factory = exports.Pausable__factory = exports.OwnableContract__factory = exports.MintableToken__factory = exports.DetailedBEP20__factory = exports.Claimable__factory = exports.CanReclaimToken__factory = exports.BurnableToken__factory = exports.BEP20Basic__factory = exports.BasivToken__factory = exports.WBNB__factory = exports.VRTVaultHarness__factory = exports.VRTConverterHarness__factory = exports.VBep20MockDelegate__factory = exports.VEvil__factory = exports.VBep20Harness__factory = exports.VBep20DelegatorScenario__factory = exports.VBep20DelegateScenarioExtra__factory = exports.VBep20DelegateScenario__factory = exports.VBep20DelegateHarness__factory = exports.VAIScenario__factory = exports.VAIControllerHarness__factory = exports.Structs__factory = exports.SimplePriceOracle__factory = exports.RefreshSpeedsProxy__factory = exports.PrimeScenario__factory = exports.MockVBNB__factory = exports.MockToken__factory = exports.MockProtocolShareReserve__factory = exports.IPrime__factory = exports.IPoolRegistry__factory = exports.IMockProtocolShareReserve__factory = exports.IIncomeDestination__factory = exports.MockPot__factory = exports.MockJug__factory = void 0;
31
- exports.TimeManagerV5__factory = exports.VRTVaultStorage__factory = exports.VRTVaultAdminStorage__factory = exports.VRTVaultProxy__factory = exports.VRTVault__factory = exports.IVRTVaultProxy__factory = exports.VAIVaultStorage__factory = exports.VAIVaultAdminStorage__factory = exports.VAIVaultProxy__factory = exports.VAIVaultErrorReporter__factory = exports.VAIVault__factory = exports.Tokenlock__factory = exports.Owned__factory = exports.VAIControllerErrorReporter__factory = exports.TokenErrorReporter__factory = exports.ComptrollerErrorReporter__factory = exports.XVSVestingStorage__factory = exports.XVSVestingAdminStorage__factory = exports.XVSVestingProxy__factory = exports.XVSVesting__factory = exports.XVS__factory = exports.IXVSVesting__factory = exports.VTokenStorageBase__factory = exports.VTokenStorage__factory = exports.VDelegatorInterface__factory = exports.VDelegateInterface__factory = exports.VBep20Interface__factory = exports.IProtocolShareReserveV5__factory = exports.VToken__factory = exports.VBNB__factory = exports.VBep20Immutable__factory = exports.VBep20Delegator__factory = exports.VBep20Delegate__factory = exports.VBep20__factory = exports.VRTConverterStorage__factory = exports.VRTConverterAdminStorage__factory = exports.VRTConverterProxy__factory = exports.VRTConverter__factory = exports.VRT__factory = exports.VAIUnitroller__factory = exports.VAIUnitrollerAdminStorage__factory = exports.VAIControllerStorageG4__factory = exports.VAIControllerStorageG3__factory = exports.VAIControllerStorageG2__factory = exports.VAIControllerStorageG1__factory = exports.VAIControllerInterface__factory = exports.VAIController__factory = exports.VAI__factory = exports.LibNote__factory = exports.PrimeStorageV1__factory = void 0;
32
- exports.XVSVaultStorageV1__factory = exports.XVSVaultStorage__factory = exports.XVSVaultAdminStorage__factory = exports.XVSVaultProxy__factory = exports.XVSVaultErrorReporter__factory = exports.XVSVault__factory = exports.XVSStore__factory = void 0;
29
+ exports.LiquidatorHarness__factory = exports.InterestRateModelHarness__factory = exports.FixedPriceOracle__factory = exports.FeeToken__factory = exports.FaucetTokenReEntrantHarness__factory = exports.FaucetToken__factory = exports.FaucetNonStandardToken__factory = exports.Fauceteer__factory = exports.FalseMarkerMethodInterestRateModel__factory = exports.FalseMarkerMethodComptroller__factory = exports.VBep20Scenario__factory = exports.EvilXToken__factory = exports.EvilXDelegator__factory = exports.EvilToken__factory = exports.DiamondHarnessInterface__factory = exports.DiamondHarness__factory = exports.Counter__factory = exports.ConstSub__factory = exports.ConstBase__factory = exports.ComptrollerScenario__factory = exports.ComptrollerMock__factory = exports.EchoTypesComptroller__factory = exports.ComptrollerHarness__factory = exports.StandardToken__factory = exports.NonStandardToken__factory = exports.BEP20NS__factory = exports.BEP20Harness__factory = exports.BEP20Base__factory = exports.BEP20__factory = exports.BEP20XRP__factory = exports.BEP20Ethereum__factory = exports.BEP20Token__factory = exports.IBEP20__factory = exports.Context__factory = exports.BEP20BitcoinCash__factory = exports.AccessControlManagerMock__factory = exports.SwapRouter__factory = exports.RouterHelper__factory = exports.IRouterHelper__factory = exports.IPancakeSwapV2Router__factory = exports.IPancakeSwapV2Factory__factory = exports.IPancakePair__factory = exports.InterfaceComptroller__factory = exports.PegStability__factory = exports.IVAI__factory = exports.PriceOracle__factory = exports.LiquidatorStorage__factory = exports.Liquidator__factory = exports.BUSDLiquidator__factory = exports.CurrencyLibrary__factory = void 0;
30
+ exports.PrimeLiquidityProvider__factory = exports.Prime__factory = exports.FixedMath__factory = exports.IXVSVault__factory = exports.IPrimeLiquidityProvider__factory = exports.PoolRegistryInterface__factory = exports.EIP20NonStandardInterface__factory = exports.EIP20Interface__factory = exports.BEP20Interface__factory = exports.XVSVestingHarness__factory = exports.XVSVaultScenario__factory = exports.XVSVaultHarness__factory = exports.XVSScenario__factory = exports.WBTVToken__factory = exports.PausableToken__factory = exports.Pausable__factory = exports.OwnableContract__factory = exports.MintableToken__factory = exports.DetailedBEP20__factory = exports.Claimable__factory = exports.CanReclaimToken__factory = exports.BurnableToken__factory = exports.BEP20Basic__factory = exports.BasivToken__factory = exports.WBNB__factory = exports.VRTVaultHarness__factory = exports.VRTConverterHarness__factory = exports.VBep20MockDelegate__factory = exports.VEvil__factory = exports.VBep20Harness__factory = exports.VBep20DelegatorScenario__factory = exports.VBep20DelegateScenarioExtra__factory = exports.VBep20DelegateScenario__factory = exports.VBep20DelegateHarness__factory = exports.VAIScenario__factory = exports.VAIControllerHarness__factory = exports.Structs__factory = exports.SimplePriceOracle__factory = exports.RefreshSpeedsProxy__factory = exports.PrimeScenario__factory = exports.MockVBNB__factory = exports.MockToken__factory = exports.MockProtocolShareReserve__factory = exports.IPrime__factory = exports.IPoolRegistry__factory = exports.IMockProtocolShareReserve__factory = exports.IIncomeDestination__factory = exports.MockPot__factory = exports.MockJug__factory = exports.DeflatingERC20__factory = void 0;
31
+ exports.VRTVaultStorage__factory = exports.VRTVaultAdminStorage__factory = exports.VRTVaultProxy__factory = exports.VRTVault__factory = exports.IVRTVaultProxy__factory = exports.VAIVaultStorage__factory = exports.VAIVaultAdminStorage__factory = exports.VAIVaultProxy__factory = exports.VAIVaultErrorReporter__factory = exports.VAIVault__factory = exports.Tokenlock__factory = exports.Owned__factory = exports.VAIControllerErrorReporter__factory = exports.TokenErrorReporter__factory = exports.ComptrollerErrorReporter__factory = exports.XVSVestingStorage__factory = exports.XVSVestingAdminStorage__factory = exports.XVSVestingProxy__factory = exports.XVSVesting__factory = exports.XVS__factory = exports.IXVSVesting__factory = exports.VTokenStorageBase__factory = exports.VTokenStorage__factory = exports.VDelegatorInterface__factory = exports.VDelegateInterface__factory = exports.VBep20Interface__factory = exports.IProtocolShareReserveV5__factory = exports.VToken__factory = exports.VBNB__factory = exports.VBep20Immutable__factory = exports.VBep20Delegator__factory = exports.VBep20Delegate__factory = exports.VBep20__factory = exports.VRTConverterStorage__factory = exports.VRTConverterAdminStorage__factory = exports.VRTConverterProxy__factory = exports.VRTConverter__factory = exports.VRT__factory = exports.VAIUnitroller__factory = exports.VAIUnitrollerAdminStorage__factory = exports.VAIControllerStorageG4__factory = exports.VAIControllerStorageG3__factory = exports.VAIControllerStorageG2__factory = exports.VAIControllerStorageG1__factory = exports.VAIControllerInterface__factory = exports.VAIController__factory = exports.VAI__factory = exports.LibNote__factory = exports.PrimeStorageV1__factory = exports.PrimeLiquidityProviderStorageV1__factory = void 0;
32
+ exports.XVSVaultStorageV1__factory = exports.XVSVaultStorage__factory = exports.XVSVaultAdminStorage__factory = exports.XVSVaultProxy__factory = exports.XVSVaultErrorReporter__factory = exports.XVSVault__factory = exports.XVSStore__factory = exports.TimeManagerV5__factory = void 0;
33
33
  exports.factories = __importStar(require("./factories"));
34
34
  var Ownable2StepUpgradeable__factory_1 = require("./factories/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable__factory");
35
35
  Object.defineProperty(exports, "Ownable2StepUpgradeable__factory", { enumerable: true, get: function () { return Ownable2StepUpgradeable__factory_1.Ownable2StepUpgradeable__factory; } });
@@ -229,6 +229,8 @@ var SnapshotLens__factory_1 = require("./factories/contracts/Lens/SnapshotLens__
229
229
  Object.defineProperty(exports, "SnapshotLens__factory", { enumerable: true, get: function () { return SnapshotLens__factory_1.SnapshotLens__factory; } });
230
230
  var VenusLens__factory_1 = require("./factories/contracts/Lens/VenusLens__factory");
231
231
  Object.defineProperty(exports, "VenusLens__factory", { enumerable: true, get: function () { return VenusLens__factory_1.VenusLens__factory; } });
232
+ var CurrencyLibrary__factory_1 = require("./factories/contracts/lib/Currency.sol/CurrencyLibrary__factory");
233
+ Object.defineProperty(exports, "CurrencyLibrary__factory", { enumerable: true, get: function () { return CurrencyLibrary__factory_1.CurrencyLibrary__factory; } });
232
234
  var BUSDLiquidator__factory_1 = require("./factories/contracts/Liquidator/BUSDLiquidator__factory");
233
235
  Object.defineProperty(exports, "BUSDLiquidator__factory", { enumerable: true, get: function () { return BUSDLiquidator__factory_1.BUSDLiquidator__factory; } });
234
236
  var Liquidator__factory_1 = require("./factories/contracts/Liquidator/Liquidator__factory");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venusprotocol/venus-protocol",
3
- "version": "7.6.0-dev.2",
3
+ "version": "7.6.0-dev.4",
4
4
  "description": "The Venus Money Market",
5
5
  "repository": "git@github.com:VenusProtocol/venus-protocol.git",
6
6
  "author": "Venus",