@pendle/core-v2 5.1.1 → 5.2.0-beta-2
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.
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +23 -67
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +6 -19
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/{SYBaseWithoutPermitUpg.json → SYBaseUpg.json} +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
- package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.json +122 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.json +91 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.json +262 -0
- package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +2 -27
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +274 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleBase.sol/PendleChainlinkOracleBase.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleBase.sol/PendleChainlinkOracleBase.json +253 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +300 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +305 -0
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +6 -27
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +2 -3
- package/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol +1 -1
- package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +2 -1
- package/contracts/interfaces/IPChainlinkOracle.sol +15 -0
- package/contracts/interfaces/IPChainlinkOracleFactory.sol +22 -0
- package/contracts/interfaces/IPChainlinkOracleWithQuote.sol +8 -0
- package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +0 -5
- package/contracts/oracles/factory/PendleChainlinkOracle.sol +21 -0
- package/contracts/oracles/factory/PendleChainlinkOracleBase.sol +138 -0
- package/contracts/oracles/factory/PendleChainlinkOracleFactory.sol +106 -0
- package/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol +46 -0
- package/package.json +1 -1
- package/typechain-types/IPChainlinkOracle.ts +221 -0
- package/typechain-types/IPChainlinkOracleFactory.ts +123 -0
- package/typechain-types/IPChainlinkOracleWithQuote.ts +404 -0
- package/typechain-types/PendleChainlinkOracle.ts +299 -0
- package/typechain-types/PendleChainlinkOracleBase.ts +299 -0
- package/typechain-types/PendleChainlinkOracleFactory.ts +389 -0
- package/typechain-types/PendleChainlinkOracleWithQuote.ts +335 -0
- package/typechain-types/PendleVotingControllerUpg.ts +43 -135
- package/typechain-types/VotingControllerStorageUpg.ts +15 -34
- package/typechain-types/factories/IPChainlinkOracleFactory__factory.ts +110 -0
- package/typechain-types/factories/IPChainlinkOracleWithQuote__factory.ts +281 -0
- package/typechain-types/factories/IPChainlinkOracle__factory.ts +137 -0
- package/typechain-types/factories/PendleChainlinkOracleBase__factory.ts +272 -0
- package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +362 -0
- package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +389 -0
- package/typechain-types/factories/PendleChainlinkOracle__factory.ts +354 -0
- package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +22 -66
- package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1 -26
- package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +6 -19
- package/typechain-types/hardhat.d.ts +67 -40
- package/typechain-types/index.ts +14 -10
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseWithoutPermitUpg.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.json +0 -1160
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.json +0 -1049
- package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.json +0 -116
- package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.json +0 -39
- package/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol +0 -130
- package/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol +0 -82
- package/contracts/interfaces/AaveV3/IAaveStkGHO.sol +0 -17
- package/contracts/interfaces/Angle/IAngleDistributor.sol +0 -12
- package/deployments/1-markets/STKGHO-MAINNET-APR2025.json +0 -14
- package/deployments/42161-markets/DOLOMITE-USDC-ARBITRUM-JUN2025.json +0 -14
- package/deployments/42161-markets/DOLOMITE-WBTC-ARBITRUM-JUN2025.json +0 -14
- package/deployments/5000-markets/CMETH-MANTLE-FEB2025.json +0 -14
- package/deployments/56-markets/VENUS-BNB-BSC-JUN2025.json +0 -14
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import {
|
|
5
|
+
Signer,
|
|
6
|
+
utils,
|
|
7
|
+
Contract,
|
|
8
|
+
ContractFactory,
|
|
9
|
+
Overrides,
|
|
10
|
+
BigNumberish,
|
|
11
|
+
} from "ethers";
|
|
12
|
+
import { Provider, TransactionRequest } from "@ethersproject/providers";
|
|
13
|
+
import type {
|
|
14
|
+
PendleChainlinkOracle,
|
|
15
|
+
PendleChainlinkOracleInterface,
|
|
16
|
+
} from "../PendleChainlinkOracle";
|
|
17
|
+
|
|
18
|
+
const _abi = [
|
|
19
|
+
{
|
|
20
|
+
inputs: [
|
|
21
|
+
{
|
|
22
|
+
internalType: "address",
|
|
23
|
+
name: "_market",
|
|
24
|
+
type: "address",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
internalType: "uint32",
|
|
28
|
+
name: "_twapDuration",
|
|
29
|
+
type: "uint32",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
internalType: "enum PendleOracleType",
|
|
33
|
+
name: "_baseOracleType",
|
|
34
|
+
type: "uint8",
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
stateMutability: "nonpayable",
|
|
38
|
+
type: "constructor",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
inputs: [],
|
|
42
|
+
name: "InvalidRoundId",
|
|
43
|
+
type: "error",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
inputs: [
|
|
47
|
+
{
|
|
48
|
+
internalType: "int256",
|
|
49
|
+
name: "exchangeRate",
|
|
50
|
+
type: "int256",
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
name: "MarketExchangeRateBelowOne",
|
|
54
|
+
type: "error",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
inputs: [],
|
|
58
|
+
name: "MarketExpired",
|
|
59
|
+
type: "error",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
inputs: [],
|
|
63
|
+
name: "MarketProportionMustNotEqualOne",
|
|
64
|
+
type: "error",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
inputs: [
|
|
68
|
+
{
|
|
69
|
+
internalType: "int256",
|
|
70
|
+
name: "rateScalar",
|
|
71
|
+
type: "int256",
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
name: "MarketRateScalarBelowZero",
|
|
75
|
+
type: "error",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
inputs: [
|
|
79
|
+
{
|
|
80
|
+
internalType: "int256",
|
|
81
|
+
name: "totalPt",
|
|
82
|
+
type: "int256",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
internalType: "int256",
|
|
86
|
+
name: "totalAsset",
|
|
87
|
+
type: "int256",
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
name: "MarketZeroTotalPtOrTotalAsset",
|
|
91
|
+
type: "error",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
inputs: [],
|
|
95
|
+
name: "baseOracleType",
|
|
96
|
+
outputs: [
|
|
97
|
+
{
|
|
98
|
+
internalType: "enum PendleOracleType",
|
|
99
|
+
name: "",
|
|
100
|
+
type: "uint8",
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
stateMutability: "view",
|
|
104
|
+
type: "function",
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
inputs: [],
|
|
108
|
+
name: "decimals",
|
|
109
|
+
outputs: [
|
|
110
|
+
{
|
|
111
|
+
internalType: "uint8",
|
|
112
|
+
name: "",
|
|
113
|
+
type: "uint8",
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
stateMutability: "pure",
|
|
117
|
+
type: "function",
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
inputs: [],
|
|
121
|
+
name: "description",
|
|
122
|
+
outputs: [
|
|
123
|
+
{
|
|
124
|
+
internalType: "string",
|
|
125
|
+
name: "",
|
|
126
|
+
type: "string",
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
stateMutability: "pure",
|
|
130
|
+
type: "function",
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
inputs: [],
|
|
134
|
+
name: "factory",
|
|
135
|
+
outputs: [
|
|
136
|
+
{
|
|
137
|
+
internalType: "address",
|
|
138
|
+
name: "",
|
|
139
|
+
type: "address",
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
stateMutability: "view",
|
|
143
|
+
type: "function",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
inputs: [],
|
|
147
|
+
name: "fromTokenDecimals",
|
|
148
|
+
outputs: [
|
|
149
|
+
{
|
|
150
|
+
internalType: "uint8",
|
|
151
|
+
name: "",
|
|
152
|
+
type: "uint8",
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
stateMutability: "view",
|
|
156
|
+
type: "function",
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
inputs: [
|
|
160
|
+
{
|
|
161
|
+
internalType: "uint80",
|
|
162
|
+
name: "roundId",
|
|
163
|
+
type: "uint80",
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
name: "getRoundData",
|
|
167
|
+
outputs: [
|
|
168
|
+
{
|
|
169
|
+
internalType: "uint80",
|
|
170
|
+
name: "",
|
|
171
|
+
type: "uint80",
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
internalType: "int256",
|
|
175
|
+
name: "",
|
|
176
|
+
type: "int256",
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
internalType: "uint256",
|
|
180
|
+
name: "",
|
|
181
|
+
type: "uint256",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
internalType: "uint256",
|
|
185
|
+
name: "",
|
|
186
|
+
type: "uint256",
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
internalType: "uint80",
|
|
190
|
+
name: "",
|
|
191
|
+
type: "uint80",
|
|
192
|
+
},
|
|
193
|
+
],
|
|
194
|
+
stateMutability: "view",
|
|
195
|
+
type: "function",
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
inputs: [],
|
|
199
|
+
name: "latestRoundData",
|
|
200
|
+
outputs: [
|
|
201
|
+
{
|
|
202
|
+
internalType: "uint80",
|
|
203
|
+
name: "roundId",
|
|
204
|
+
type: "uint80",
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
internalType: "int256",
|
|
208
|
+
name: "answer",
|
|
209
|
+
type: "int256",
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
internalType: "uint256",
|
|
213
|
+
name: "startedAt",
|
|
214
|
+
type: "uint256",
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
internalType: "uint256",
|
|
218
|
+
name: "updatedAt",
|
|
219
|
+
type: "uint256",
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
internalType: "uint80",
|
|
223
|
+
name: "answeredInRound",
|
|
224
|
+
type: "uint80",
|
|
225
|
+
},
|
|
226
|
+
],
|
|
227
|
+
stateMutability: "view",
|
|
228
|
+
type: "function",
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
inputs: [],
|
|
232
|
+
name: "market",
|
|
233
|
+
outputs: [
|
|
234
|
+
{
|
|
235
|
+
internalType: "address",
|
|
236
|
+
name: "",
|
|
237
|
+
type: "address",
|
|
238
|
+
},
|
|
239
|
+
],
|
|
240
|
+
stateMutability: "view",
|
|
241
|
+
type: "function",
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
inputs: [],
|
|
245
|
+
name: "toTokenDecimals",
|
|
246
|
+
outputs: [
|
|
247
|
+
{
|
|
248
|
+
internalType: "uint8",
|
|
249
|
+
name: "",
|
|
250
|
+
type: "uint8",
|
|
251
|
+
},
|
|
252
|
+
],
|
|
253
|
+
stateMutability: "view",
|
|
254
|
+
type: "function",
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
inputs: [],
|
|
258
|
+
name: "twapDuration",
|
|
259
|
+
outputs: [
|
|
260
|
+
{
|
|
261
|
+
internalType: "uint32",
|
|
262
|
+
name: "",
|
|
263
|
+
type: "uint32",
|
|
264
|
+
},
|
|
265
|
+
],
|
|
266
|
+
stateMutability: "view",
|
|
267
|
+
type: "function",
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
inputs: [],
|
|
271
|
+
name: "version",
|
|
272
|
+
outputs: [
|
|
273
|
+
{
|
|
274
|
+
internalType: "uint256",
|
|
275
|
+
name: "",
|
|
276
|
+
type: "uint256",
|
|
277
|
+
},
|
|
278
|
+
],
|
|
279
|
+
stateMutability: "pure",
|
|
280
|
+
type: "function",
|
|
281
|
+
},
|
|
282
|
+
];
|
|
283
|
+
|
|
284
|
+
const _bytecode =
|
|
285
|
+
"0x6101606040523480156200001257600080fd5b5060405162003fc138038062003fc1833981016040819052620000359162001ac2565b336080526001600160a01b03831660a05263ffffffff821660c05282828280600581111562000068576200006862001b21565b61012081600581111562000080576200008062001b21565b9052506200008f8382620000c0565b60ff908116610100521660e052620000a662000303565b6001600160401b0316610140525062002037945050505050565b6000806000846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000104573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012a919062001b37565b505090506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000195919062001b92565b90506000826001600160a01b031663a40bee506040518163ffffffff1660e01b8152600401606060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe919062001bb0565b9250600591506200020c9050565b86600581111562000221576200022162001b21565b036200023657601294509250620002fc915050565b60048660058111156200024d576200024d62001b21565b03620002625750601293509150620002fc9050565b600186600581111562000279576200027962001b21565b14806200029a5750600386600581111562000298576200029862001b21565b145b15620002ae579350839250620002fc915050565b6000866005811115620002c557620002c562001b21565b1480620002e657506002866005811115620002e457620002e462001b21565b145b15620002f85793509150620002fc9050565b5050505b9250929050565b620018a962001a9060201b17600061012051600581111562000329576200032962001b21565b036200033f5750620002d06200046c60201b1790565b600161012051600581111562000359576200035962001b21565b036200036f57506200031d620004c360201b1790565b600261012051600581111562000389576200038962001b21565b036200039f5750620003606200051060201b1790565b6003610120516005811115620003b957620003b962001b21565b03620003cf5750620003956200054d60201b1790565b6004610120516005811115620003e957620003e962001b21565b03620003ff5750620003c46200058260201b1790565b600561012051600581111562000419576200041962001b21565b036200042f575062000413620005db60201b1790565b60405162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b60448201526064015b60405180910390fd5b600080806200047b8562000635565b91509150808210620004a9576200049f8262000498878762000879565b906200095e565b92505050620004bd565b6200049f8162000498878762000879565b50505b92915050565b60008080620004d28562000635565b91509150808210620004ea576200049f858562000879565b8082620004f8878762000879565b62000504919062001c18565b6200049f919062001c48565b600080806200051f8562000635565b915091508082106200053c576200049f8262000498878762000992565b6200049f8162000498878762000992565b600080806200055c8562000635565b9150915080821062000574576200049f858562000992565b8082620004f8878762000992565b600080806200059a6001600160a01b03861662000635565b90925090506000620005ae868684620009bb565b9050818310620005cf57620005c481846200095e565b9350505050620004bd565b620005c481836200095e565b60008080620005f36001600160a01b03861662000635565b9092509050600062000607868684620009bb565b90508183106200061c579250620004bd915050565b8162000629848362001c18565b620005c4919062001c48565b600080600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156200067a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006a0919062001b37565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200070a919062001c5f565b93506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200074d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000773919062001c5f565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007da919062001c79565b801562000853575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000822573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000848919062001c9d565b6001600160801b0316145b15620008625780935062000871565b6200086e858262000b73565b93505b505050915091565b600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008e1919062001c5f565b9050428111620008fd57670de0b6b3a7640000915050620004bd565b60006200090b858562000b8b565b905060006200091b428462001cc8565b90506000620009356200092f848462000cc4565b62000d09565b90506200094b670de0b6b3a7640000826200095e565b945050505050620004bd565b5092915050565b60008062000975670de0b6b3a76400008562001c18565b905082818162000989576200098962001c32565b04949350505050565b6000620009a0838362000879565b620009b490670de0b6b3a764000062001cc8565b9392505050565b60405163794052f360e01b81526000600482018190529081906001600160a01b0386169063794052f39060240161012060405180830381865afa15801562000a07573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a2d919062001d53565b90506000428260a001511162000a695762000a5384836020015162000d1d60201b60201c565b825162000a61919062001dda565b905062000b52565b600062000a7883864262000d63565b905060008062000a8a89868a62000e71565b91509150600062000ab962000ab385604001518562000aaa919062001dfd565b86519062000ef2565b62000f17565b9050600062000b0862000acd838562001345565b62000ae190670de0b6b3a764000062001dda565b8851602088015162000af590869062000ef2565b62000b01919062001dfd565b9062001345565b905062000b218482896000015162000b01919062001dda565b62000b2d828562001345565b866020015162000b3e919062001dfd565b62000b4a919062001dda565b955050505050505b604082015162000b69906200092f90839062001345565b9695505050505050565b600081831162000b845781620009b4565b5090919050565b60408051600280825260608201835260009283929190602083019080368337019050509050828160008151811062000bc75762000bc762001e20565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526000906001600160a01b0386169063883bdbfd9062000c0d90859060040162001e36565b600060405180830381865afa15801562000c2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000c55919081019062001e82565b90508363ffffffff168160008151811062000c745762000c7462001e20565b60200260200101518260018151811062000c925762000c9262001e20565b602002602001015162000ca6919062001f4c565b62000cb2919062001f6f565b6001600160d81b031695945050505050565b60008062000cd86201518061016d62001c18565b62000ce4848662001c18565b62000cf0919062001c48565b905062000d0162000ab38262001370565b949350505050565b60008082121562000d1957600080fd5b5090565b6000806000831262000d3157600162000d35565b6000195b905062000d5762000d518562000d4b8662001387565b6200139c565b62001370565b62000d01908262001f98565b62000d8f6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a0840151821062000db45760405163b2094b5960e01b815260040160405180910390fd5b6000828560a0015162000dc8919062001cc8565b905062000dd68582620013bf565b8252602085015162000dea90859062000d1d565b60208301528451158062000e0057506020820151155b1562000e30578451602083015160405163b1c4aefb60e01b81526004810192909252602482015260440162000463565b84516101008601516020840151845162000e4e939291908562001426565b604083015260c085015162000e64908262000cc4565b6060830152509392505050565b6000808062000e8a6001600160a01b0387168562000b8b565b90506000428660a0015162000ea0919062001cc8565b905062000eae828262000cc4565b9350600062000ec98761010001518362000cc460201b60201c565b9050600262000ed9868362001dda565b62000ee5919062001fce565b9350505050935093915050565b60008062000f01838562001f98565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff19821215801562000f3d575068070c1cc73b00c800008213155b62000f7e5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640162000463565b600082121562000fbe5762000f97600083900362000f17565b6ec097ce7bc90715b34b9f10000000008162000fb75762000fb762001c32565b0592915050565b60006806f05b59d3b200000083126200100057506806f05b59d3b1ffffff1990910190770195e54c5dd42177f53a27172fa9ec63026282700000000062001038565b6803782dace9d900000083126200103457506803782dace9d8ffffff19909101906b1425982cf597cd205cef738062001038565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412620010895768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412620010c6576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126200110157682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126200113c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126200117657680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412620011b05768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412620011ea576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412620012245768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000806200135c670de0b6b3a76400008562001f98565b905082818162000f0e5762000f0e62001c32565b60006001600160ff1b0382111562000d1957600080fd5b600080821362000d1957620004bd8262002002565b6000670de0b6b3a7640000620013b3848462001c18565b620009b4919062001c48565b6000620013cc8262001370565b620013e162000d516201518061016d62001c18565b8460800151620013f2919062001f98565b620013fe919062001fce565b905060008113620004bd57604051630e520c3b60e11b81526004810182905260240162000463565b60008062001435868462000cc4565b9050670de0b6b3a7640000811215620014655760405163329e322960e21b81526004810182905260240162000463565b60006200147f62001477878a62001dda565b899062001345565b905060006200148e82620014b5565b90506200149c818762001345565b620014a8908462001dfd565b9998505050505050505050565b6000670de0b6b3a76400008203620014e05760405163a9c8b14d60e01b815260040160405180910390fd5b600062001502620014fa84670de0b6b3a764000062001dfd565b849062001345565b9050620009b48160008082136200154c5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015260640162000463565b670c7d713b49da0000821380156200156b5750670f43fc2c04ee000082125b156200159557670de0b6b3a76400006200158583620015a5565b8162000fb75762000fb762001c32565b620004bd82620016d0565b919050565b670de0b6b3a7640000026000806ec097ce7bc90715b34b9f1000000000808401906ec097ce7bc90715b34b9f0fffffffff1985010281620015ea57620015ea62001c32565b05905060006ec097ce7bc90715b34b9f100000000082800205905081806ec097ce7bc90715b34b9f100000000081840205915060038205016ec097ce7bc90715b34b9f100000000082840205915060058205016ec097ce7bc90715b34b9f100000000082840205915060078205016ec097ce7bc90715b34b9f100000000082840205915060098205016ec097ce7bc90715b34b9f1000000000828402059150600b8205016ec097ce7bc90715b34b9f1000000000828402059150600d8205016ec097ce7bc90715b34b9f1000000000828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121562001718576200170f826ec097ce7bc90715b34b9f10000000008162001708576200170862001c32565b05620016d0565b60000392915050565b60007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c000000000000083126200176a57770195e54c5dd42177f53a27172fa9ec630262827000000000830592506806f05b59d3b2000000015b73011798004d755d3c8bc8e03204cf44619e0000008312620017a3576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312620017ec576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831262001828576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf85083126200186057693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126200189857690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312620018ce5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312620018fa57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d831262001930576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f1775788937937831262001966576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126200199b576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312620019d0576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281620019fc57620019fc62001c32565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b62001a9a62002021565b565b6001600160a01b038116811462001ab257600080fd5b50565b8051620015a08162001a9c565b60008060006060848603121562001ad857600080fd5b835162001ae58162001a9c565b602085015190935063ffffffff8116811462001b0057600080fd5b60408501519092506006811062001b1657600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60008060006060848603121562001b4d57600080fd5b835162001b5a8162001a9c565b602085015190935062001b6d8162001a9c565b604085015190925062001b168162001a9c565b805160ff81168114620015a057600080fd5b60006020828403121562001ba557600080fd5b620009b48262001b80565b60008060006060848603121562001bc657600080fd5b83516002811062001bd657600080fd5b602085015190935062001be98162001a9c565b915062001bf96040850162001b80565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620004bd57620004bd62001c02565b634e487b7160e01b600052601260045260246000fd5b60008262001c5a5762001c5a62001c32565b500490565b60006020828403121562001c7257600080fd5b5051919050565b60006020828403121562001c8c57600080fd5b81518015158114620009b457600080fd5b60006020828403121562001cb057600080fd5b81516001600160801b0381168114620009b457600080fd5b81810381811115620004bd57620004bd62001c02565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562001d1a5762001d1a62001cde565b60405290565b604051601f8201601f191681016001600160401b038111828210171562001d4b5762001d4b62001cde565b604052919050565b6000610120828403121562001d6757600080fd5b62001d7162001cf4565b82518152602083015160208201526040830151604082015262001d976060840162001ab5565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b8082018281126000831280158216821582161715620004ba57620004ba62001c02565b818103600083128015838313168383128216171562000957576200095762001c02565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101562001e7657835163ffffffff168352928401929184019160010162001e52565b50909695505050505050565b6000602080838503121562001e9657600080fd5b82516001600160401b038082111562001eae57600080fd5b818501915085601f83011262001ec357600080fd5b81518181111562001ed85762001ed862001cde565b8060051b915062001eeb84830162001d20565b818152918301840191848101908884111562001f0657600080fd5b938501935b8385101562001f4057845192506001600160d81b038316831462001f2f5760008081fd5b828252938501939085019062001f0b565b98975050505050505050565b6001600160d81b0382811682821603908082111562000957576200095762001c02565b60006001600160d81b038381168062001f8c5762001f8c62001c32565b92169190910492915050565b80820260008212600160ff1b8414161562001fb75762001fb762001c02565b8181058314821517620004bd57620004bd62001c02565b60008262001fe05762001fe062001c32565b600160ff1b82146000198414161562001ffd5762001ffd62001c02565b500590565b6000600160ff1b82016200201a576200201a62001c02565b5060000390565b634e487b7160e01b600052605160045260246000fd5b60805160a05160c05160e051610100516101205161014051611f15620020ac60003960006109a90152600060a3015260008181610155015261117a0152600081816101f701526111a501526000818160e0015261098801526000818161017c01526109670152600061021e0152611f156000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c80630aa33a241461009e57806326d89545146100db578063313ce5671461011757806354fd4d501461012c5780637284e4161461013b5780637ae19f151461015057806380f55605146101775780639a6fc8f5146101ab578063bafd4e38146101f2578063c45a015514610219578063feaf968c14610240575b600080fd5b6100c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d291906118b3565b60405180910390f35b6101027f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100d2565b60125b60405160ff90911681526020016100d2565b604051600181526020016100d2565b610143610248565b6040516100d291906118db565b61011a7f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d2919061192a565b6101be6101b936600461193e565b610268565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100d2565b61011a7f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b6101be6102b2565b6060604051806060016040528060228152602001611ebe60229139905090565b600080808080856001600160501b038116156102975760405163bfbe031f60e01b815260040160405180910390fd5b61029f6102b2565b939b929a50909850965090945092505050565b6000808080806102c0610463565b9495600094504293508492509050565b60008060006102de85610472565b91509150808210610306576102fd826102f787876106a2565b90610777565b92505050610317565b6102fd816102f787876106a2565b50505b92915050565b600080600061032b85610472565b91509150808210610340576102fd85856106a2565b808261034c87876106a2565b610356919061197d565b6102fd91906119aa565b600080600061036e85610472565b91509150808210610387576102fd826102f787876107a6565b6102fd816102f787876107a6565b60008060006103a385610472565b915091508082106103b8576102fd85856107a6565b808261034c87876107a6565b60008060006103db856001600160a01b0316610472565b9150915060006103ec8686846107cb565b9050818310610409576103ff8184610777565b9350505050610317565b6103ff8183610777565b600080600061042a856001600160a01b0316610472565b91509150600061043b8686846107cb565b905081831061044e579250610317915050565b81610459848361197d565b6103ff91906119aa565b600061046d61095d565b905090565b600080600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da91906119d6565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561051d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190611a23565b93506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a79190611a23565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060b9190611a3c565b8015610680575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190611a5e565b6001600160801b0316145b1561068d5780935061069a565b61069785826109d5565b93505b505050915091565b600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107079190611a23565b905042811161072157670de0b6b3a7640000915050610317565b600061072d85856109eb565b9050600061073b4284611a87565b9050600061075161074c8484610b12565b610b4e565b9050610765670de0b6b3a764000082610777565b945050505050610317565b5092915050565b60008061078c670de0b6b3a76400008561197d565b905082818161079d5761079d611994565b04949350505050565b60006107b283836106a2565b6107c490670de0b6b3a7640000611a87565b9392505050565b600080846001600160a01b031663794052f360006040518263ffffffff1660e01b81526004016107fb919061192a565b61012060405180830381865afa158015610819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083d9190611b14565b90506000428260a001511161086d5761085a848360200151610b61565b82516108669190611b96565b9050610939565b600061087a838642610b9d565b905060008061088a89868a610ca3565b9150915060006108b36108ae8560400151856108a69190611bb6565b865190610d12565b610d35565b905060006108f86108c4838561114a565b6108d690670de0b6b3a7640000611b96565b885160208801516108e8908690610d12565b6108f29190611bb6565b9061114a565b905061090e848289600001516108f29190611b96565b610918828561114a565b86602001516109279190611bb6565b6109319190611b96565b955050505050505b61095361074c83604001518361114a90919063ffffffff16565b9695505050505050565b600061046d6109d07f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b611170565b60008183116109e457816107c4565b5090919050565b604080516002808252606082018352600092839291906020830190803683370190505090508281600081518110610a2457610a24611bd6565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526000906001600160a01b0386169063883bdbfd90610a68908590600401611bec565b600060405180830381865afa158015610a85573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aad9190810190611c36565b90508363ffffffff1681600081518110610ac957610ac9611bd6565b602002602001015182600181518110610ae457610ae4611bd6565b6020026020010151610af69190611cf4565b610b009190611d14565b6001600160d81b031695945050505050565b600080610b246201518061016d61197d565b610b2e848661197d565b610b3891906119aa565b9050610b466108ae826111df565b949350505050565b600080821215610b5d57600080fd5b5090565b60008060008312610b73576001610b77565b6000195b9050610b93610b8e85610b89866111f5565b61120c565b6111df565b610b469082611d3a565b610bc86040518060800160405280600081526020016000815260200160008152602001600081525090565b60a08401518210610bec5760405163b2094b5960e01b815260040160405180910390fd5b6000828560a00151610bfe9190611a87565b9050610c0a858261122b565b82526020850151610c1c908590610b61565b602083015284511580610c3157506020820151155b15610c64578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044015b60405180910390fd5b610c8285600001518661010001518460200151856000015185611287565b604083015260c0850151610c969082610b12565b6060830152509392505050565b60008080610cba6001600160a01b038716856109eb565b90506000428660a00151610cce9190611a87565b9050610cda8282610b12565b93506000610ced87610100015183610b12565b90506002610cfb8683611b96565b610d059190611d6a565b9350505050935093915050565b600080610d1f8385611d3a565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015610d5a575068070c1cc73b00c800008213155b610d995760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610c5b565b6000821215610dd157610dae82600003610d35565b6a0c097ce7bc90715b34b9f160241b81610dca57610dca611994565b0592915050565b60006806f05b59d3b20000008312610e0f57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b610e45565b6803782dace9d90000008312610e4157506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380610e45565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412610e955768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412610ed1576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412610f0b57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412610f45576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412610f7e57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412610fb75768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412610ff0576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126110295768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008061115f670de0b6b3a764000085611d3a565b9050828181610d2c57610d2c611994565b60006103176111a07f0000000000000000000000000000000000000000000000000000000000000000600a611e7c565b6111cb7f0000000000000000000000000000000000000000000000000000000000000000600a611e7c565b6111d5908561197d565b610b8e91906119aa565b60006001600160ff1b03821115610b5d57600080fd5b6000808213610b5d5761120782611e8b565b610317565b6000670de0b6b3a7640000611221848461197d565b6107c491906119aa565b6000611236826111df565b611248610b8e6201518061016d61197d565b84608001516112579190611d3a565b6112619190611d6a565b90506000811361031757604051630e520c3b60e11b815260048101829052602401610c5b565b6000806112948684610b12565b9050670de0b6b3a76400008112156112c25760405163329e322960e21b815260048101829052602401610c5b565b60006112d86112d1878a611b96565b899061114a565b905060006112e582611308565b90506112f1818761114a565b6112fb9084611bb6565b9998505050505050505050565b6000670de0b6b3a764000082036113325760405163a9c8b14d60e01b815260040160405180910390fd5b600061135061134984670de0b6b3a7640000611bb6565b849061114a565b90506107c48160008082136113975760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610c5b565b670c7d713b49da0000821380156113b55750670f43fc2c04ee000082125b156113d957670de0b6b3a76400006113cc836113e7565b81610dca57610dca611994565b61031782611506565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff198501028161142857611428611994565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156115475761153e826a0c097ce7bc90715b34b9f160241b8161153857611538611994565b05611506565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126115925772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126115c9576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611611576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261164c576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261168357693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126116ba57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126116ef5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261171a57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d831261174f576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611784576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126117b8576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126117ec576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161181557611815611994565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6118b1611ea7565b565b60208101600683106118d557634e487b7160e01b600052602160045260246000fd5b91905290565b60006020808352835180602085015260005b81811015611909578581018301518582016040015282016118ed565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0391909116815260200190565b60006020828403121561195057600080fd5b81356001600160501b03811681146107c457600080fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761031757610317611967565b634e487b7160e01b600052601260045260246000fd5b6000826119b9576119b9611994565b500490565b6001600160a01b03811681146119d357600080fd5b50565b6000806000606084860312156119eb57600080fd5b83516119f6816119be565b6020850151909350611a07816119be565b6040850151909250611a18816119be565b809150509250925092565b600060208284031215611a3557600080fd5b5051919050565b600060208284031215611a4e57600080fd5b815180151581146107c457600080fd5b600060208284031215611a7057600080fd5b81516001600160801b03811681146107c457600080fd5b8181038181111561031757610317611967565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715611ad357611ad3611a9a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611b0157611b01611a9a565b604052919050565b80516113e2816119be565b60006101208284031215611b2757600080fd5b611b2f611ab0565b825181526020830151602082015260408301516040820152611b5360608401611b09565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b808201828112600083128015821682158216171561031457610314611967565b818103600083128015838313168383128216171561077057610770611967565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015611c2a57835163ffffffff1683529284019291840191600101611c08565b50909695505050505050565b60006020808385031215611c4957600080fd5b82516001600160401b0380821115611c6057600080fd5b818501915085601f830112611c7457600080fd5b815181811115611c8657611c86611a9a565b8060051b9150611c97848301611ad9565b8181529183018401918481019088841115611cb157600080fd5b938501935b83851015611ce857845192506001600160d81b0383168314611cd85760008081fd5b8282529385019390850190611cb6565b98975050505050505050565b6001600160d81b0382811682821603908082111561077057610770611967565b60006001600160d81b0383811680611d2e57611d2e611994565b92169190910492915050565b80820260008212600160ff1b84141615611d5657611d56611967565b818105831482151761031757610317611967565b600082611d7957611d79611994565b600160ff1b821460001984141615611d9357611d93611967565b500590565b600181815b80851115611dd3578160001904821115611db957611db9611967565b80851615611dc657918102915b93841c9390800290611d9d565b509250929050565b600082611dea57506001610317565b81611df757506000610317565b8160018114611e0d5760028114611e1757611e33565b6001915050610317565b60ff841115611e2857611e28611967565b50506001821b610317565b5060208310610133831016604e8410600b8410161715611e56575081810a610317565b611e608383611d98565b8060001904821115611e7457611e74611967565b029392505050565b60006107c460ff841683611ddb565b6000600160ff1b8201611ea057611ea0611967565b5060000390565b634e487b7160e01b600052605160045260246000fdfe50656e646c6520436861696e6c696e6b2d636f6d70617469626c65204f7261636c65a2646970667358221220ffa7b70693dfa0d3162e831f7cc84a74afee56abf28af9c7482c9d61f40a44fe64736f6c63430008170033";
|
|
286
|
+
|
|
287
|
+
type PendleChainlinkOracleConstructorParams =
|
|
288
|
+
| [signer?: Signer]
|
|
289
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
290
|
+
|
|
291
|
+
const isSuperArgs = (
|
|
292
|
+
xs: PendleChainlinkOracleConstructorParams
|
|
293
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
294
|
+
|
|
295
|
+
export class PendleChainlinkOracle__factory extends ContractFactory {
|
|
296
|
+
constructor(...args: PendleChainlinkOracleConstructorParams) {
|
|
297
|
+
if (isSuperArgs(args)) {
|
|
298
|
+
super(...args);
|
|
299
|
+
} else {
|
|
300
|
+
super(_abi, _bytecode, args[0]);
|
|
301
|
+
}
|
|
302
|
+
this.contractName = "PendleChainlinkOracle";
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
deploy(
|
|
306
|
+
_market: string,
|
|
307
|
+
_twapDuration: BigNumberish,
|
|
308
|
+
_baseOracleType: BigNumberish,
|
|
309
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
310
|
+
): Promise<PendleChainlinkOracle> {
|
|
311
|
+
return super.deploy(
|
|
312
|
+
_market,
|
|
313
|
+
_twapDuration,
|
|
314
|
+
_baseOracleType,
|
|
315
|
+
overrides || {}
|
|
316
|
+
) as Promise<PendleChainlinkOracle>;
|
|
317
|
+
}
|
|
318
|
+
getDeployTransaction(
|
|
319
|
+
_market: string,
|
|
320
|
+
_twapDuration: BigNumberish,
|
|
321
|
+
_baseOracleType: BigNumberish,
|
|
322
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
323
|
+
): TransactionRequest {
|
|
324
|
+
return super.getDeployTransaction(
|
|
325
|
+
_market,
|
|
326
|
+
_twapDuration,
|
|
327
|
+
_baseOracleType,
|
|
328
|
+
overrides || {}
|
|
329
|
+
);
|
|
330
|
+
}
|
|
331
|
+
attach(address: string): PendleChainlinkOracle {
|
|
332
|
+
return super.attach(address) as PendleChainlinkOracle;
|
|
333
|
+
}
|
|
334
|
+
connect(signer: Signer): PendleChainlinkOracle__factory {
|
|
335
|
+
return super.connect(signer) as PendleChainlinkOracle__factory;
|
|
336
|
+
}
|
|
337
|
+
static readonly contractName: "PendleChainlinkOracle";
|
|
338
|
+
public readonly contractName: "PendleChainlinkOracle";
|
|
339
|
+
static readonly bytecode = _bytecode;
|
|
340
|
+
static readonly abi = _abi;
|
|
341
|
+
static createInterface(): PendleChainlinkOracleInterface {
|
|
342
|
+
return new utils.Interface(_abi) as PendleChainlinkOracleInterface;
|
|
343
|
+
}
|
|
344
|
+
static connect(
|
|
345
|
+
address: string,
|
|
346
|
+
signerOrProvider: Signer | Provider
|
|
347
|
+
): PendleChainlinkOracle {
|
|
348
|
+
return new Contract(
|
|
349
|
+
address,
|
|
350
|
+
_abi,
|
|
351
|
+
signerOrProvider
|
|
352
|
+
) as PendleChainlinkOracle;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
@@ -1207,7 +1207,7 @@ const _abi = [
|
|
|
1207
1207
|
];
|
|
1208
1208
|
|
|
1209
1209
|
const _bytecode =
|
|
1210
|
-
"0x6101c0604052733963ffc9dff443c2a94f21b129d429891e32ec18610180523480156200002b57600080fd5b5060405162005c2438038062005c248339810160408190526200004e91620002f2565b8085806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200008f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b5919062000373565b60ff16608052610134805460ff191690556001600160a01b03811660a052620000dd62000207565b506001600160a01b03811660c08190526040805163f5b91b7b60e01b8152905163f5b91b7b916004808201926020929091908290030181865afa15801562000129573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014f91906200039f565b6001600160a01b031660e052506200016662000207565b6001600160a01b03808716610100528481166101205283811661014052821661016081905260408051633fc8cef360e01b81529051633fc8cef3916004808201926020929091908290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed91906200039f565b6001600160a01b03166101a05250620003bd945050505050565b600154600160a81b900460ff1615620002765760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154600160a01b900460ff90811614620002d3576001805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620002ed57600080fd5b919050565b60008060008060008060c087890312156200030c57600080fd5b6200031787620002d5565b95506200032760208801620002d5565b94506200033760408801620002d5565b93506200034760608801620002d5565b92506200035760808801620002d5565b91506200036760a08801620002d5565b90509295509295509295565b6000602082840312156200038657600080fd5b815160ff811681146200039857600080fd5b9392505050565b600060208284031215620003b257600080fd5b6200039882620002d5565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516156b0620005746000396000818161045f01528181611e10015281816129390152612afe0152600081816108d601528181611655015281816129740152612b3901526000818161080b01528181611f3301528181611feb01528181612663015261270c0152600081816104a801526140e40152600081816102fa0152818161102c01528181611c9001528181611ed0015281816125df015281816128eb0152612ab00152600081816105f60152818161137f015281816113a0015281816129ed0152612bb201526000818161386c01528181613aca01528181613b460152614a8001526000818161090a0152818161108e015281816114a101528181611547015281816115d401528181611ab201528181611b5801528181611be5015281816137860152818161383b01528181613942015281816139c401528181613a9901528181613b9701528181613c8201528181613d040152818161440f015281816144b001528181614546015281816145eb01528181614b380152614bb2015260006105a2015260006103d401526156b06000f3fe60806040526004361061023d5760003560e01c806306fdde0314610249578063071bc3c914610274578063078dfbe714610296578063095ea7b3146102b85780630ddc56d3146102e8578063126082cf14610329578063128fced11461034d57806318160ddd1461037a57806320e8c5651461038f578063213cae631461027457806323b872dd146103a2578063313ce567146103c25780633644e515146104085780633ba0b9a91461041d5780633f4ba83a146104385780633fc8cef31461044d5780634e71e0c8146104815780635a3bb989146104965780635c975abb146104ca5780635cbadbe4146104e357806370a0823114610550578063769f8e5d1461057057806376d5de8514610590578063784367d6146105c457806378a207ee146105e45780637ecebe00146106185780638129fc1c146106385780638456cb591461064d57806384b0196e146106625780638da5cb5b1461068a57806395082d25146106aa57806395d89b41146106ca578063a40bee50146106df578063a9059cbb14610703578063a9f8d18114610723578063b8e387ce1461073a578063b8f82b261461074f578063c4f59f9b1461076f578063cbe52ae314610784578063d505accf146107a4578063da88ecb4146107c4578063dd62ed3e146107d9578063e016e44b146107f9578063e30c39781461082d578063ea64a8201461084d578063ef5cfb8c1461088f578063f8b2f991146108af578063fa5a4f06146105c4578063fa6db1bc146108c4578063fbfa77cf146108f857600080fd5b3661024457005b600080fd5b34801561025557600080fd5b5061025e61092c565b60405161026b9190614e1c565b60405180910390f35b34801561028057600080fd5b506102896109be565b60405161026b9190614e74565b3480156102a257600080fd5b506102b66102b1366004614eaa565b6109cd565b005b3480156102c457600080fd5b506102d86102d3366004614ef5565b610ad2565b604051901515815260200161026b565b3480156102f457600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161026b9190614f21565b34801561033557600080fd5b5061033f61271081565b60405190815260200161026b565b34801561035957600080fd5b5061036d610368366004614f35565b610aec565b60405161026b9190614f83565b34801561038657600080fd5b5061033f610bf9565b61033f61039d366004614f96565b610c08565b3480156103ae57600080fd5b506102d86103bd366004614fdc565b610d51565b3480156103ce57600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161026b565b34801561041457600080fd5b5061033f610dcf565b34801561042957600080fd5b50670de0b6b3a764000061033f565b34801561044457600080fd5b506102b6610dd9565b34801561045957600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048d57600080fd5b506102b6610e0d565b3480156104a257600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d657600080fd5b506101345460ff166102d8565b3480156104ef57600080fd5b506105306104fe36600461501d565b6101996020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161026b565b34801561055c57600080fd5b5061033f61056b366004614f35565b610eb8565b34801561057c57600080fd5b5061033f61058b366004615056565b610ed3565b34801561059c57600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d057600080fd5b506102d86105df366004614f35565b611028565b3480156105f057600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b5061033f610633366004614f35565b611104565b34801561064457600080fd5b506102b6611122565b34801561065957600080fd5b506102b6611297565b34801561066e57600080fd5b506106776112c9565b60405161026b97969594939291906150b5565b34801561069657600080fd5b5060005461031c906001600160a01b031681565b3480156106b657600080fd5b5061033f68327cb2734119d3b7a9601e1b81565b3480156106d657600080fd5b5061025e611367565b3480156106eb57600080fd5b506106f4611376565b60405161026b9392919061513b565b34801561070f57600080fd5b506102d861071e366004614ef5565b61142b565b34801561072f57600080fd5b5061033f61019a5481565b34801561074657600080fd5b506102b661149d565b34801561075b57600080fd5b5061033f61076a366004614ef5565b611686565b34801561077b57600080fd5b506102896116c1565b34801561079057600080fd5b5061033f61079f366004614ef5565b6116cb565b3480156107b057600080fd5b506102b66107bf36600461518c565b6116ff565b3480156107d057600080fd5b5061036d611863565b3480156107e557600080fd5b5061033f6107f436600461501d565b611935565b34801561080557600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561083957600080fd5b5060015461031c906001600160a01b031681565b34801561085957600080fd5b50610530610868366004614f35565b61019b602052600090815260409020546001600160801b0380821691600160801b90041682565b34801561089b57600080fd5b5061036d6108aa366004614f35565b611960565b3480156108bb57600080fd5b5061036d611a27565b3480156108d057600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561090457600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b60606005805461093b906151fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610967906151fd565b80156109b45780601f10610989576101008083540402835291602001916109b4565b820191906000526020600020905b81548152906001019060200180831161099757829003601f168201915b5050505050905090565b60606109c8611a98565b905090565b6000546001600160a01b03163314610a005760405162461bcd60e51b81526004016109f790615231565b60405180910390fd5b8115610ab1576001600160a01b038316151580610a1a5750805b610a5e5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016109f7565b600080546040516001600160a01b038087169392169160008051602061563b83398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b600033610ae0818585611cc7565b60019150505b92915050565b60606000610af8611dec565b905080516001600160401b03811115610b1357610b13615266565b604051908082528060200260200182016040528015610b3c578160200160208202803683370190505b50915060005b8151811015610bf2576101996000838381518110610b6257610b6261527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110610bdf57610bdf61527c565b6020908102919091010152600101610b42565b5050919050565b6004546001600160f81b031690565b600454600090600119600160f81b90910460ff1601610c395760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055610c5784611028565b610c7657836040516315d57ce360e31b81526004016109f79190614f21565b82600003610c9757604051630a907f2f60e41b815260040160405180910390fd5b610ca2843385611e65565b610cac8484611ecc565b905081811015610cd3578082604051635e38f95d60e11b81526004016109f79291906152c9565b610cdd8582612058565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610d2c9291906152c9565b60405180910390a4600480546001600160f81b0316600160f81b179055949350505050565b600454600090600119600160f81b90910460ff1601610d825760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b17905533610da385828561216f565b610dae8585856121e9565b6001915050600480546001600160f81b0316600160f81b1790559392505050565b60006109c861240b565b6000546001600160a01b03163314610e035760405162461bcd60e51b81526004016109f790615231565b610e0b612415565b565b6001546001600160a01b0316338114610e685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016109f7565b600080546040516001600160a01b038085169392169160008051602061563b83398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6001600160a01b031660009081526002602052604090205490565b600454600090600119600160f81b90910460ff1601610f045760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055610f2284611028565b610f4157836040516388a5056160e01b81526004016109f79190614f21565b84600003610f625760405163c3d83b0760e01b815260040160405180910390fd5b8115610f7757610f723086612462565b610f81565b610f813386612462565b610f8c8685876125db565b905082811015610fb35780836040516305ff726560e51b81526004016109f79291906152c9565b836001600160a01b0316866001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c88856040516110029291906152c9565b60405180910390a4600480546001600160f81b0316600160f81b17905595945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061107157506001600160a01b038216155b80610ae65750604051630daf9c2160e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c210906110c3908590600401614f21565b602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae691906152d7565b6001600160a01b0381166000908152609f6020526040812054610ae6565b600154600160a81b900460ff1615808015611148575060018054600160a01b900460ff16105b8061116f575061115730612781565b15801561116f575060018054600160a01b900460ff16145b6111d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109f7565b6001805460ff60a01b1916600160a01b17905580156111ff576001805460ff60a81b1916600160a81b1790555b611245604051806040016040528060068152602001650535920474c560d41b81525060405180604001604052806006815260200165053592d474c560d41b815250612790565b61124d61149d565b8015611294576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6000546001600160a01b031633146112c15760405162461bcd60e51b81526004016109f790615231565b610e0b6127cb565b600060608060008060006060606b546000801b1480156112e95750606c54155b61132d5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109f7565b611335612809565b61133d612818565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606006805461093b906151fd565b600080600060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142091906152f4565b925092509250909192565b600454600090600119600160f81b90910460ff160161145c5760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b1790553361147d8185856121e9565b6001915050600480546001600160f81b0316600160f81b17905592915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630842b0766040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115219190615311565b905060005b8181101561168257604051630e468baf60e41b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e468baf090602401602060405180830381865afa158015611596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ba919061532a565b604051630daf9c2160e41b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c21090611609908490600401614f21565b602060405180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a91906152d7565b1561167957611679817f0000000000000000000000000000000000000000000000000000000000000000612827565b50600101611526565b5050565b600061169183611028565b6116b057826040516315d57ce360e31b81526004016109f79190614f21565b6116ba83836128e7565b9392505050565b60606109c8611dec565b60006116d683611028565b6116f557826040516388a5056160e01b81526004016109f79190614f21565b6116ba8383612aac565b8342111561174f5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016109f7565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861177e8c612c59565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006117d982612c81565b905060006117e982878787612cae565b9050896001600160a01b0316816001600160a01b03161461184c5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016109f7565b6118578a8a8a611cc7565b50505050505050505050565b6060600061186f611dec565b905080516001600160401b0381111561188a5761188a615266565b6040519080825280602002602001820160405280156118b3578160200160208202803683370190505b50915060005b81518110156119305761019b60008383815181106118d9576118d961527c565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b039091169084908390811061191d5761191d61527c565b60209081029190910101526001016118b9565b505090565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b600454606090600119600160f81b90910460ff16016119915760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b1790556119ae612cd6565b6119b782612d1d565b6119c18283612d28565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f6119f6611dec565b83604051611a05929190615347565b60405180910390a2600480546001600160f81b0316600160f81b179055919050565b600454606090600119600160f81b90910460ff1601611a585760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055611a75612cd6565b611a7d612fc9565b600480546001600160f81b0316600160f81b17905592915050565b6040805160008082526020820190925260609150905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630842b0766040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b329190615311565b905060005b81811015611c8957604051630e468baf60e41b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e468baf090602401602060405180830381865afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb919061532a565b604051630daf9c2160e41b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c21090611c1a908490600401614f21565b602060405180830381865afa158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5b91906152d7565b8015611c6e5750611c6c848261324a565b155b15611c8057611c7d84826132a9565b93505b50600101611b37565b50611cb4827f00000000000000000000000000000000000000000000000000000000000000006132a9565b9150611cc18260006132a9565b91505090565b6001600160a01b038316611d295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f7565b6001600160a01b038216611d8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f7565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001808252818301909252606091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611e4257611e4261527c565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6001600160a01b038316611eb157803414610acd5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016109f7565b8015610acd57610acd6001600160a01b03841683308461338e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611f0e575080610ae6565b6001600160a01b038316611fb7576040516353a8aa0360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906353a8aa03903490611f6d9060009081906004016152c9565b60206040518083038185885af1158015611f8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb09190615311565b9050610ae6565b60405163364e231160e01b81526001600160a01b0384811660048301526024820184905260006044830181905260648301527f0000000000000000000000000000000000000000000000000000000000000000169063364e2311906084016020604051808303816000875af1158015612034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190615311565b6001600160a01b0382166120ae5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109f7565b6120ba600083836133f9565b6120c38161340b565b600480546000906120de9084906001600160f81b0316615382565b92506101000a8154816001600160f81b0302191690836001600160f81b031602179055508060026000846001600160a01b03166001600160a01b03168152602001908152602001600020600082825461213791906153a9565b90915550506040518181526001600160a01b0383169060009060008051602061565b8339815191529060200160405180910390a35050565b600061217b8484611935565b905060001981146121e357818110156121d65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109f7565b6121e38484848403611cc7565b50505050565b6001600160a01b03831661224d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f7565b6001600160a01b0382166122af5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f7565b816001600160a01b0316836001600160a01b03160361230a5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016109f7565b6123158383836133f9565b6001600160a01b0383166000908152600260205260409020548181101561238d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109f7565b6001600160a01b038085166000908152600260205260408082208585039055918516815290812080548492906123c49084906153a9565b92505081905550826001600160a01b0316846001600160a01b031660008051602061565b833981519152846040516123fe91815260200190565b60405180910390a36121e3565b60006109c8613425565b61241d613499565b610134805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516124589190614f21565b60405180910390a1565b6001600160a01b0382166124c25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109f7565b6124ce826000836133f9565b6001600160a01b038216600090815260026020526040902054818110156125425760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109f7565b6001600160a01b038316600090815260026020526040902082820390556125688261340b565b600480546000906125839084906001600160f81b03166153bc565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b031660008051602061565b83398151915284604051611ddf91815260200190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036126285750806126238385836134e3565b6116ba565b6001600160a01b0383166126d7576040516355daf2f160e11b815260048101839052600060248201526001600160a01b0385811660448301527f0000000000000000000000000000000000000000000000000000000000000000169063abb5e5e2906064016020604051808303816000875af11580156126ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d09190615311565b90506116ba565b6040516303cea95560e21b81526001600160a01b038481166004830152602482018490526000604483015285811660648301527f00000000000000000000000000000000000000000000000000000000000000001690630f3aa554906084016020604051808303816000875af1158015612755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127799190615311565b949350505050565b6001600160a01b03163b151590565b600154600160a81b900460ff166127b95760405162461bcd60e51b81526004016109f7906153dc565b6127c382826135a7565b6116826135fd565b6127d3612cd6565b610134805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861244b3390565b6060606d805461093b906151fd565b6060606e805461093b906151fd565b6001600160a01b038216612839575050565b61284b60026001600160601b0361543d565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156128a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c89190615311565b1015611682576128da8282600061363a565b611682828260001961363a565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612929575080610ae6565b6001600160a01b03831661295b577f000000000000000000000000000000000000000000000000000000000000000092505b604051630345051f60e51b8152600160048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368a0a3e090602401602060405180830381865afa1580156129c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e79190615311565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6d9190615311565b90506000612a7b868661374e565b905060008315612a9f5783612a908484615463565b612a9a919061547a565b612aa1565b815b979650505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612aee575080610ae6565b6001600160a01b038316612b20577f000000000000000000000000000000000000000000000000000000000000000092505b604051630345051f60e51b8152600060048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368a0a3e090602401602060405180830381865afa158015612b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bac9190615311565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c329190615311565b9050600081612c418487615463565b612c4b919061547a565b90506000612aa18783613b3f565b6001600160a01b0381166000908152609f602052604090208054600181018255905b50919050565b6000610ae6612c8e61240b565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612cbf87878787613e05565b91509150612ccc81613ebf565b5095945050505050565b6101345460ff1615610e0b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109f7565b611294816000614004565b60606000612d34611dec565b905080516001600160401b03811115612d4f57612d4f615266565b604051908082528060200260200182016040528015612d78578160200160208202803683370190505b50915060005b8151811015612fc1576101996000838381518110612d9e57612d9e61527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110612e1b57612e1b61527c565b602002602001018181525050828181518110612e3957612e3961527c565b6020026020010151600014612fb95760006101996000848481518110612e6157612e6161527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b03160217905550612ef5838281518110612ee857612ee861527c565b6020026020010151614084565b61019b6000848481518110612f0c57612f0c61527c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b0316612f58919061548e565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550612fb9828281518110612f9157612f9161527c565b602002602001015185858481518110612fac57612fac61527c565b60200260200101516134e3565b600101612d7e565b505092915050565b606080612fd4611dec565b915081516001600160401b03811115612fef57612fef615266565b604051908082528060200260200182016040528015613018578160200160208202803683370190505b5090508151600003613028579091565b4361019a54146131cb574361019a55600061304161409a565b905061304b6140a4565b60005b83518110156131c557600084828151811061306b5761306b61527c565b6020908102919091018101516001600160a01b038116600090815261019b835260408082208151808301909252546001600160801b03808216808452600160801b90920416948201859052895193955090939290919083906130e6908b90899081106130d9576130d961527c565b6020026020010151614144565b6130f091906154ae565b9050816000036130ff57600191505b861561311c5761310f81886141ce565b61311990836153a9565b91505b604051806040016040528061313084614084565b6001600160801b0316815260200161315061314b84876153a9565b614084565b6001600160801b039081169091526001600160a01b038716600090815261019b60209081526040909120835193909101518216600160801b0292909116919091179055875182908990889081106131a9576131a961527c565b602002602001018181525050505050505080600101905061304e565b50509091565b60005b82518110156132455761019b60008483815181106131ee576131ee61527c565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b03909116908390839081106132325761323261527c565b60209081029190910101526001016131ce565b509091565b8151600090815b8181101561329e57836001600160a01b03168582815181106132755761327561527c565b60200260200101516001600160a01b03160361329657600192505050610ae6565b600101613251565b506000949350505050565b81516060906132b98160016153a9565b6001600160401b038111156132d0576132d0615266565b6040519080825280602002602001820160405280156132f9578160200160208202803683370190505b50915060005b81811015613353578481815181106133195761331961527c565b60200260200101518382815181106133335761333361527c565b6001600160a01b03909216602092830291909101909101526001016132ff565b50828282815181106133675761336761527c565b60200260200101906001600160a01b031690816001600160a01b0316815250505092915050565b6040516001600160a01b03808516602483015283166044820152606481018290526121e39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526141fd565b613401612cd6565b610acd8383614004565b60006001600160f81b0382111561342157600080fd5b5090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6134506142d2565b61345861432b565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6101345460ff16610e0b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109f7565b806000036134f057505050565b6001600160a01b038316613593576000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461354b576040519150601f19603f3d011682016040523d82523d6000602084013e613550565b606091505b50509050806121e35760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016109f7565b610acd6001600160a01b038416838361435c565b600154600160a81b900460ff166135d05760405162461bcd60e51b81526004016109f7906153dc565b6135da828261437b565b61168282604051806040016040528060018152602001603160f81b8152506143d7565b600154600160a81b900460ff166136265760405162461bcd60e51b81526004016109f7906153dc565b600080546001600160a01b03191633179055565b600080846001600160a01b031663095ea7b360e01b85856040516024016136629291906154c1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136a091906154da565b6000604051808303816000865af19150503d80600081146136dd576040519150601f19603f3d011682016040523d82523d6000602084013e6136e2565b606091505b509150915081801561370c57508051158061370c57508080602001905181019061370c91906152d7565b6137475760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016109f7565b5050505050565b600061375a838361440a565b91506000821161376c5761376c6154f6565b6040516340d3096b60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906381a612d6906137bb908790600401614f21565b602060405180830381865afa1580156137d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137fc9190615311565b9050600068327cb2734119d3b7a9601e1b6138178386615463565b613821919061547a565b604051634215287360e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063421528739061389490849089907f00000000000000000000000000000000000000000000000000000000000000009060040161550c565b602060405180830381865afa1580156138b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d59190615311565b9050600081116139375760405162461bcd60e51b815260206004820152602760248201527f7072657669657720627579555344473a2075736467416d6f756e74206d7573746044820152660206265203e20360cc1b60648201526084016109f7565b6000613a4b868360007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634d47b3046040518163ffffffff1660e01b8152600401602060405180830381865afa15801561399e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c29190615311565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a449190615311565b6001614542565b90506000613a5a8787846147b9565b9050600068327cb2734119d3b7a9601e1b613a758684615463565b613a7f919061547a565b604051634215287360e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634215287390613af29084908c907f00000000000000000000000000000000000000000000000000000000000000009060040161550c565b602060405180830381865afa158015613b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b339190615311565b98975050505050505050565b6000613b6b7f00000000000000000000000000000000000000000000000000000000000000008361440a565b915060008211613b7d57613b7d6154f6565b604051632c668ec160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632c668ec190613bce90879087906004016154c1565b602060405180830381865afa158015613beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0f9190615311565b905060008111613c785760405162461bcd60e51b815260206004820152602e60248201527f707265766965772073656c6c555344473a20726564656d7074696f6e416d6f7560448201526d06e74206d757374206265203e20360941b60648201526084016109f7565b6000613d8b8585867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634d47b3046040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d029190615311565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d849190615311565b6000614542565b90506000613d9a8684846147b9565b905060008111613dfc5760405162461bcd60e51b815260206004820152602760248201527f707265766965772073656c6c555344473a20616d6f756e744f7574206d7573746044820152660206265203e20360cc1b60648201526084016109f7565b95945050505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115613e325750600090506003613eb6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613e86573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613eaf57600060019250925050613eb6565b9150600090505b94509492505050565b6000816004811115613ed357613ed3615125565b03613edb5750565b6001816004811115613eef57613eef615125565b03613f375760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016109f7565b6002816004811115613f4b57613f4b615125565b03613f985760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109f7565b6003816004811115613fac57613fac615125565b036112945760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109f7565b60008061400f612fc9565b9150915081516000036140225750505050565b6001600160a01b0384161580159061404357506001600160a01b0384163014155b15614053576140538483836147dd565b6001600160a01b0383161580159061407457506001600160a01b0383163014155b156121e3576121e38383836147dd565b60006001600160801b0382111561342157600080fd5b60006109c8610bf9565b60405163185b800160e11b815260006004820181905260248201819052600160448301819052606483018190526084830182905260a483015260c48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906330b700029060e401600060405180830381600087803b15801561413057600080fd5b505af11580156121e3573d6000803e3d6000fd5b60006001600160a01b038216156141c7576040516370a0823160e01b81526001600160a01b038316906370a0823190614181903090600401614f21565b602060405180830381865afa15801561419e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141c29190615311565b610ae6565b4792915050565b6000806141e3670de0b6b3a764000085615463565b90508281816141f4576141f4615427565b04949350505050565b6000614252826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614a1a9092919063ffffffff16565b905080516000148061427357508080602001905181019061427391906152d7565b610acd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109f7565b6000806142dd612809565b8051909150156142f4578051602090910120919050565b606b5480156143035792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080614336612818565b80519091501561434d578051602090910120919050565b606c5480156143035792915050565b610acd8363a9059cbb60e01b84846040516024016133c29291906154c1565b600154600160a81b900460ff166143a45760405162461bcd60e51b81526004016109f7906153dc565b60056143b0838261557b565b5060066143bd828261557b565b5050600480546001600160f81b0316600160f81b17905550565b600154600160a81b900460ff166144005760405162461bcd60e51b81526004016109f7906153dc565b6116828282614a29565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663523fba7f856040518263ffffffff1660e01b81526004016144599190614f21565b602060405180830381865afa158015614476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061449a9190615311565b9050600083856001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016144eb9190614f21565b602060405180830381865afa158015614508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452c9190615311565b61453691906153a9565b9050613dfc82826154ae565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639f392eb36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156145a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145c691906152d7565b6145d15750826147af565b604051631aa4ace560e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631aa4ace590614620908b90600401614f21565b602060405180830381865afa15801561463d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146619190615311565b90508581101561467257600061467c565b61467c86826154ae565b9050600061468a88836153a9565b9050836146ad578188116146a7576146a288836154ae565b6146aa565b60005b90505b60006146b98a89614a7a565b9050806000036146ce578693505050506147af565b60008184116146e6576146e184836154ae565b6146f0565b6146f082856154ae565b9050600082841161470a5761470584846154ae565b614714565b61471483856154ae565b90508181101561475d5760008361472b848b615463565b614735919061547a565b905089811161474d57614748818b6154ae565b614750565b60005b96505050505050506147af565b6000600261476b83856153a9565b614775919061547a565b9050838111156147825750825b60008461478f838c615463565b614799919061547a565b90506147a5818c6153a9565b9750505050505050505b9695505050505050565b6000806127106147c984826154ae565b6147d39086615463565b613dfc919061547a565b6001600160a01b038316158015906147fe57506001600160a01b0383163014155b61480a5761480a6154f6565b600061481584614c3c565b905060005b83518110156137475760008482815181106148375761483761527c565b6020026020010151905060008483815181106148555761485561527c565b6020908102919091018101516001600160a01b03808516600090815261019984526040808220928c168252919093528220549092506001600160801b0316908190036148b1576148a56001614084565b6001600160801b031690505b818114806148bd575081155b156148ca57505050614a12565b60006148d682846154ae565b905060006148e48783614c47565b6001600160a01b03868116600090815261019960209081526040808320938f168352929052908120549192509061492c908390600160801b90046001600160801b03166153a9565b9050604051806040016040528061494287614084565b6001600160801b0316815260200161495983614084565b6001600160801b03168152506101996000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b60010161481a565b60606127798484600085614c65565b600154600160a81b900460ff16614a525760405162461bcd60e51b81526004016109f7906153dc565b606d614a5e838261557b565b50606e614a6b828261557b565b50506000606b819055606c5550565b600080827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b009190615311565b614b0a91906154ae565b905080600003614b1e576000915050610ae6565b604051632acbceb560e21b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab2f3ad490614b6d908890600401614f21565b602060405180830381865afa158015614b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bae9190615311565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dc8f5fac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c329190615311565b6147d38383615463565b6000610ae682610eb8565b600080614c548385615463565b9050670de0b6b3a7640000816141f4565b606082471015614cc65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109f7565b600080866001600160a01b03168587604051614ce291906154da565b60006040518083038185875af1925050503d8060008114614d1f576040519150601f19603f3d011682016040523d82523d6000602084013e614d24565b606091505b5091509150612aa18783838760608315614d9d578251600003614d9657614d4a85612781565b614d965760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f7565b5081612779565b6127798383815115614db25781518083602001fd5b8060405162461bcd60e51b81526004016109f79190614e1c565b60005b83811015614de7578181015183820152602001614dcf565b50506000910152565b60008151808452614e08816020860160208601614dcc565b601f01601f19169290920160200192915050565b6020815260006116ba6020830184614df0565b60008151808452602080850194506020840160005b83811015614e695781516001600160a01b031687529582019590820190600101614e44565b509495945050505050565b6020815260006116ba6020830184614e2f565b6001600160a01b038116811461129457600080fd5b801515811461129457600080fd5b600080600060608486031215614ebf57600080fd5b8335614eca81614e87565b92506020840135614eda81614e9c565b91506040840135614eea81614e9c565b809150509250925092565b60008060408385031215614f0857600080fd5b8235614f1381614e87565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600060208284031215614f4757600080fd5b81356116ba81614e87565b60008151808452602080850194506020840160005b83811015614e6957815187529582019590820190600101614f67565b6020815260006116ba6020830184614f52565b60008060008060808587031215614fac57600080fd5b8435614fb781614e87565b93506020850135614fc781614e87565b93969395505050506040820135916060013590565b600080600060608486031215614ff157600080fd5b8335614ffc81614e87565b9250602084013561500c81614e87565b929592945050506040919091013590565b6000806040838503121561503057600080fd5b823561503b81614e87565b9150602083013561504b81614e87565b809150509250929050565b600080600080600060a0868803121561506e57600080fd5b853561507981614e87565b945060208601359350604086013561509081614e87565b92506060860135915060808601356150a781614e9c565b809150509295509295909350565b60ff60f81b8816815260e0602082015260006150d460e0830189614df0565b82810360408401526150e68189614df0565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506151178185614f52565b9a9950505050505050505050565b634e487b7160e01b600052602160045260246000fd5b606081016002851061515d57634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60ff8116811461129457600080fd5b600080600080600080600060e0888a0312156151a757600080fd5b87356151b281614e87565b965060208801356151c281614e87565b9550604088013594506060880135935060808801356151e08161517d565b9699959850939692959460a0840135945060c09093013592915050565b600181811c9082168061521157607f821691505b602082108103612c7b57634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b918252602082015260400190565b6000602082840312156152e957600080fd5b81516116ba81614e9c565b60006020828403121561530657600080fd5b81516116ba8161517d565b60006020828403121561532357600080fd5b5051919050565b60006020828403121561533c57600080fd5b81516116ba81614e87565b60408152600061535a6040830185614e2f565b8281036020840152613dfc8185614f52565b634e487b7160e01b600052601160045260246000fd5b6001600160f81b038181168382160190808211156153a2576153a261536c565b5092915050565b80820180821115610ae657610ae661536c565b6001600160f81b038281168282160390808211156153a2576153a261536c565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168061545757615457615427565b92169190910492915050565b8082028115828204841417610ae657610ae661536c565b60008261548957615489615427565b500490565b6001600160801b038281168282160390808211156153a2576153a261536c565b81810381811115610ae657610ae661536c565b6001600160a01b03929092168252602082015260400190565b600082516154ec818460208701614dcc565b9190910192915050565b634e487b7160e01b600052600160045260246000fd5b9283526001600160a01b03918216602084015216604082015260600190565b601f821115610acd576000816000526020600020601f850160051c810160208610156155545750805b601f850160051c820191505b8181101561557357828155600101615560565b505050505050565b81516001600160401b0381111561559457615594615266565b6155a8816155a284546151fd565b8461552b565b602080601f8311600181146155dd57600084156155c55750858301515b600019600386901b1c1916600185901b178555615573565b600085815260208120601f198616915b8281101561560c578886015182559484019460019091019084016155ed565b508582101561562a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122046763563cf93e55ecea005eff95d73905adc7e46755e309b38f5f1aed9914c9a64736f6c63430008170033";
|
|
1210
|
+
"0x6101c06040523480156200001257600080fd5b5060405162005c8d38038062005c8d83398101604081905262000035916200035b565b8085806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000076573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009c9190620003dc565b60ff16608052610134805460ff191690556001600160a01b03811660a052620000c462000270565b506001600160a01b03811660c08190526040805163f5b91b7b60e01b8152905163f5b91b7b916004808201926020929091908290030181865afa15801562000110573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000136919062000408565b6001600160a01b031660e052506200014d62000270565b6001600160a01b03808716610100528481166101205283811661014052821661016081905260408051633e9b6c6f60e21b8152905163fa6db1bc916004808201926020929091908290030181865afa158015620001ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d4919062000408565b6001600160a01b0316610180816001600160a01b031681525050610160516001600160a01b0316633fc8cef36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000256919062000408565b6001600160a01b03166101a0525062000426945050505050565b600154600160a81b900460ff1615620002df5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154600160a01b900460ff908116146200033c576001805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200035657600080fd5b919050565b60008060008060008060c087890312156200037557600080fd5b62000380876200033e565b955062000390602088016200033e565b9450620003a0604088016200033e565b9350620003b0606088016200033e565b9250620003c0608088016200033e565b9150620003d060a088016200033e565b90509295509295509295565b600060208284031215620003ef57600080fd5b815160ff811681146200040157600080fd5b9392505050565b6000602082840312156200041b57600080fd5b62000401826200033e565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516156b0620005dd6000396000818161045f01528181611e10015281816129390152612afe0152600081816108d601528181611655015281816129740152612b3901526000818161080b01528181611f3301528181611feb01528181612663015261270c0152600081816104a801526140e40152600081816102fa0152818161102c01528181611c9001528181611ed0015281816125df015281816128eb0152612ab00152600081816105f60152818161137f015281816113a0015281816129ed0152612bb201526000818161386c01528181613aca01528181613b460152614a8001526000818161090a0152818161108e015281816114a101528181611547015281816115d401528181611ab201528181611b5801528181611be5015281816137860152818161383b01528181613942015281816139c401528181613a9901528181613b9701528181613c8201528181613d040152818161440f015281816144b001528181614546015281816145eb01528181614b380152614bb2015260006105a2015260006103d401526156b06000f3fe60806040526004361061023d5760003560e01c806306fdde0314610249578063071bc3c914610274578063078dfbe714610296578063095ea7b3146102b85780630ddc56d3146102e8578063126082cf14610329578063128fced11461034d57806318160ddd1461037a57806320e8c5651461038f578063213cae631461027457806323b872dd146103a2578063313ce567146103c25780633644e515146104085780633ba0b9a91461041d5780633f4ba83a146104385780633fc8cef31461044d5780634e71e0c8146104815780635a3bb989146104965780635c975abb146104ca5780635cbadbe4146104e357806370a0823114610550578063769f8e5d1461057057806376d5de8514610590578063784367d6146105c457806378a207ee146105e45780637ecebe00146106185780638129fc1c146106385780638456cb591461064d57806384b0196e146106625780638da5cb5b1461068a57806395082d25146106aa57806395d89b41146106ca578063a40bee50146106df578063a9059cbb14610703578063a9f8d18114610723578063b8e387ce1461073a578063b8f82b261461074f578063c4f59f9b1461076f578063cbe52ae314610784578063d505accf146107a4578063da88ecb4146107c4578063dd62ed3e146107d9578063e016e44b146107f9578063e30c39781461082d578063ea64a8201461084d578063ef5cfb8c1461088f578063f8b2f991146108af578063fa5a4f06146105c4578063fa6db1bc146108c4578063fbfa77cf146108f857600080fd5b3661024457005b600080fd5b34801561025557600080fd5b5061025e61092c565b60405161026b9190614e1c565b60405180910390f35b34801561028057600080fd5b506102896109be565b60405161026b9190614e74565b3480156102a257600080fd5b506102b66102b1366004614eaa565b6109cd565b005b3480156102c457600080fd5b506102d86102d3366004614ef5565b610ad2565b604051901515815260200161026b565b3480156102f457600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161026b9190614f21565b34801561033557600080fd5b5061033f61271081565b60405190815260200161026b565b34801561035957600080fd5b5061036d610368366004614f35565b610aec565b60405161026b9190614f83565b34801561038657600080fd5b5061033f610bf9565b61033f61039d366004614f96565b610c08565b3480156103ae57600080fd5b506102d86103bd366004614fdc565b610d51565b3480156103ce57600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161026b565b34801561041457600080fd5b5061033f610dcf565b34801561042957600080fd5b50670de0b6b3a764000061033f565b34801561044457600080fd5b506102b6610dd9565b34801561045957600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048d57600080fd5b506102b6610e0d565b3480156104a257600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d657600080fd5b506101345460ff166102d8565b3480156104ef57600080fd5b506105306104fe36600461501d565b6101996020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161026b565b34801561055c57600080fd5b5061033f61056b366004614f35565b610eb8565b34801561057c57600080fd5b5061033f61058b366004615056565b610ed3565b34801561059c57600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d057600080fd5b506102d86105df366004614f35565b611028565b3480156105f057600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b5061033f610633366004614f35565b611104565b34801561064457600080fd5b506102b6611122565b34801561065957600080fd5b506102b6611297565b34801561066e57600080fd5b506106776112c9565b60405161026b97969594939291906150b5565b34801561069657600080fd5b5060005461031c906001600160a01b031681565b3480156106b657600080fd5b5061033f68327cb2734119d3b7a9601e1b81565b3480156106d657600080fd5b5061025e611367565b3480156106eb57600080fd5b506106f4611376565b60405161026b9392919061513b565b34801561070f57600080fd5b506102d861071e366004614ef5565b61142b565b34801561072f57600080fd5b5061033f61019a5481565b34801561074657600080fd5b506102b661149d565b34801561075b57600080fd5b5061033f61076a366004614ef5565b611686565b34801561077b57600080fd5b506102896116c1565b34801561079057600080fd5b5061033f61079f366004614ef5565b6116cb565b3480156107b057600080fd5b506102b66107bf36600461518c565b6116ff565b3480156107d057600080fd5b5061036d611863565b3480156107e557600080fd5b5061033f6107f436600461501d565b611935565b34801561080557600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561083957600080fd5b5060015461031c906001600160a01b031681565b34801561085957600080fd5b50610530610868366004614f35565b61019b602052600090815260409020546001600160801b0380821691600160801b90041682565b34801561089b57600080fd5b5061036d6108aa366004614f35565b611960565b3480156108bb57600080fd5b5061036d611a27565b3480156108d057600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561090457600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b60606005805461093b906151fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610967906151fd565b80156109b45780601f10610989576101008083540402835291602001916109b4565b820191906000526020600020905b81548152906001019060200180831161099757829003601f168201915b5050505050905090565b60606109c8611a98565b905090565b6000546001600160a01b03163314610a005760405162461bcd60e51b81526004016109f790615231565b60405180910390fd5b8115610ab1576001600160a01b038316151580610a1a5750805b610a5e5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016109f7565b600080546040516001600160a01b038087169392169160008051602061563b83398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b600033610ae0818585611cc7565b60019150505b92915050565b60606000610af8611dec565b905080516001600160401b03811115610b1357610b13615266565b604051908082528060200260200182016040528015610b3c578160200160208202803683370190505b50915060005b8151811015610bf2576101996000838381518110610b6257610b6261527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110610bdf57610bdf61527c565b6020908102919091010152600101610b42565b5050919050565b6004546001600160f81b031690565b600454600090600119600160f81b90910460ff1601610c395760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055610c5784611028565b610c7657836040516315d57ce360e31b81526004016109f79190614f21565b82600003610c9757604051630a907f2f60e41b815260040160405180910390fd5b610ca2843385611e65565b610cac8484611ecc565b905081811015610cd3578082604051635e38f95d60e11b81526004016109f79291906152c9565b610cdd8582612058565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610d2c9291906152c9565b60405180910390a4600480546001600160f81b0316600160f81b179055949350505050565b600454600090600119600160f81b90910460ff1601610d825760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b17905533610da385828561216f565b610dae8585856121e9565b6001915050600480546001600160f81b0316600160f81b1790559392505050565b60006109c861240b565b6000546001600160a01b03163314610e035760405162461bcd60e51b81526004016109f790615231565b610e0b612415565b565b6001546001600160a01b0316338114610e685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016109f7565b600080546040516001600160a01b038085169392169160008051602061563b83398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6001600160a01b031660009081526002602052604090205490565b600454600090600119600160f81b90910460ff1601610f045760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055610f2284611028565b610f4157836040516388a5056160e01b81526004016109f79190614f21565b84600003610f625760405163c3d83b0760e01b815260040160405180910390fd5b8115610f7757610f723086612462565b610f81565b610f813386612462565b610f8c8685876125db565b905082811015610fb35780836040516305ff726560e51b81526004016109f79291906152c9565b836001600160a01b0316866001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c88856040516110029291906152c9565b60405180910390a4600480546001600160f81b0316600160f81b17905595945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061107157506001600160a01b038216155b80610ae65750604051630daf9c2160e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c210906110c3908590600401614f21565b602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae691906152d7565b6001600160a01b0381166000908152609f6020526040812054610ae6565b600154600160a81b900460ff1615808015611148575060018054600160a01b900460ff16105b8061116f575061115730612781565b15801561116f575060018054600160a01b900460ff16145b6111d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109f7565b6001805460ff60a01b1916600160a01b17905580156111ff576001805460ff60a81b1916600160a81b1790555b611245604051806040016040528060068152602001650535920474c560d41b81525060405180604001604052806006815260200165053592d474c560d41b815250612790565b61124d61149d565b8015611294576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6000546001600160a01b031633146112c15760405162461bcd60e51b81526004016109f790615231565b610e0b6127cb565b600060608060008060006060606b546000801b1480156112e95750606c54155b61132d5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109f7565b611335612809565b61133d612818565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606006805461093b906151fd565b600080600060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142091906152f4565b925092509250909192565b600454600090600119600160f81b90910460ff160161145c5760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b1790553361147d8185856121e9565b6001915050600480546001600160f81b0316600160f81b17905592915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630842b0766040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115219190615311565b905060005b8181101561168257604051630e468baf60e41b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e468baf090602401602060405180830381865afa158015611596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ba919061532a565b604051630daf9c2160e41b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c21090611609908490600401614f21565b602060405180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a91906152d7565b1561167957611679817f0000000000000000000000000000000000000000000000000000000000000000612827565b50600101611526565b5050565b600061169183611028565b6116b057826040516315d57ce360e31b81526004016109f79190614f21565b6116ba83836128e7565b9392505050565b60606109c8611dec565b60006116d683611028565b6116f557826040516388a5056160e01b81526004016109f79190614f21565b6116ba8383612aac565b8342111561174f5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016109f7565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861177e8c612c59565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006117d982612c81565b905060006117e982878787612cae565b9050896001600160a01b0316816001600160a01b03161461184c5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016109f7565b6118578a8a8a611cc7565b50505050505050505050565b6060600061186f611dec565b905080516001600160401b0381111561188a5761188a615266565b6040519080825280602002602001820160405280156118b3578160200160208202803683370190505b50915060005b81518110156119305761019b60008383815181106118d9576118d961527c565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b039091169084908390811061191d5761191d61527c565b60209081029190910101526001016118b9565b505090565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b600454606090600119600160f81b90910460ff16016119915760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b1790556119ae612cd6565b6119b782612d1d565b6119c18283612d28565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f6119f6611dec565b83604051611a05929190615347565b60405180910390a2600480546001600160f81b0316600160f81b179055919050565b600454606090600119600160f81b90910460ff1601611a585760405162461bcd60e51b81526004016109f790615292565b600480546001600160f81b0316600160f91b179055611a75612cd6565b611a7d612fc9565b600480546001600160f81b0316600160f81b17905592915050565b6040805160008082526020820190925260609150905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630842b0766040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b329190615311565b905060005b81811015611c8957604051630e468baf60e41b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e468baf090602401602060405180830381865afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb919061532a565b604051630daf9c2160e41b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063daf9c21090611c1a908490600401614f21565b602060405180830381865afa158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5b91906152d7565b8015611c6e5750611c6c848261324a565b155b15611c8057611c7d84826132a9565b93505b50600101611b37565b50611cb4827f00000000000000000000000000000000000000000000000000000000000000006132a9565b9150611cc18260006132a9565b91505090565b6001600160a01b038316611d295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f7565b6001600160a01b038216611d8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f7565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001808252818301909252606091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611e4257611e4261527c565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6001600160a01b038316611eb157803414610acd5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016109f7565b8015610acd57610acd6001600160a01b03841683308461338e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611f0e575080610ae6565b6001600160a01b038316611fb7576040516353a8aa0360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906353a8aa03903490611f6d9060009081906004016152c9565b60206040518083038185885af1158015611f8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb09190615311565b9050610ae6565b60405163364e231160e01b81526001600160a01b0384811660048301526024820184905260006044830181905260648301527f0000000000000000000000000000000000000000000000000000000000000000169063364e2311906084016020604051808303816000875af1158015612034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190615311565b6001600160a01b0382166120ae5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109f7565b6120ba600083836133f9565b6120c38161340b565b600480546000906120de9084906001600160f81b0316615382565b92506101000a8154816001600160f81b0302191690836001600160f81b031602179055508060026000846001600160a01b03166001600160a01b03168152602001908152602001600020600082825461213791906153a9565b90915550506040518181526001600160a01b0383169060009060008051602061565b8339815191529060200160405180910390a35050565b600061217b8484611935565b905060001981146121e357818110156121d65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109f7565b6121e38484848403611cc7565b50505050565b6001600160a01b03831661224d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f7565b6001600160a01b0382166122af5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f7565b816001600160a01b0316836001600160a01b03160361230a5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016109f7565b6123158383836133f9565b6001600160a01b0383166000908152600260205260409020548181101561238d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109f7565b6001600160a01b038085166000908152600260205260408082208585039055918516815290812080548492906123c49084906153a9565b92505081905550826001600160a01b0316846001600160a01b031660008051602061565b833981519152846040516123fe91815260200190565b60405180910390a36121e3565b60006109c8613425565b61241d613499565b610134805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516124589190614f21565b60405180910390a1565b6001600160a01b0382166124c25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109f7565b6124ce826000836133f9565b6001600160a01b038216600090815260026020526040902054818110156125425760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109f7565b6001600160a01b038316600090815260026020526040902082820390556125688261340b565b600480546000906125839084906001600160f81b03166153bc565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b031660008051602061565b83398151915284604051611ddf91815260200190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036126285750806126238385836134e3565b6116ba565b6001600160a01b0383166126d7576040516355daf2f160e11b815260048101839052600060248201526001600160a01b0385811660448301527f0000000000000000000000000000000000000000000000000000000000000000169063abb5e5e2906064016020604051808303816000875af11580156126ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d09190615311565b90506116ba565b6040516303cea95560e21b81526001600160a01b038481166004830152602482018490526000604483015285811660648301527f00000000000000000000000000000000000000000000000000000000000000001690630f3aa554906084016020604051808303816000875af1158015612755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127799190615311565b949350505050565b6001600160a01b03163b151590565b600154600160a81b900460ff166127b95760405162461bcd60e51b81526004016109f7906153dc565b6127c382826135a7565b6116826135fd565b6127d3612cd6565b610134805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861244b3390565b6060606d805461093b906151fd565b6060606e805461093b906151fd565b6001600160a01b038216612839575050565b61284b60026001600160601b0361543d565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156128a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c89190615311565b1015611682576128da8282600061363a565b611682828260001961363a565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612929575080610ae6565b6001600160a01b03831661295b577f000000000000000000000000000000000000000000000000000000000000000092505b604051630345051f60e51b8152600160048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368a0a3e090602401602060405180830381865afa1580156129c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e79190615311565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6d9190615311565b90506000612a7b868661374e565b905060008315612a9f5783612a908484615463565b612a9a919061547a565b612aa1565b815b979650505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612aee575080610ae6565b6001600160a01b038316612b20577f000000000000000000000000000000000000000000000000000000000000000092505b604051630345051f60e51b8152600060048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368a0a3e090602401602060405180830381865afa158015612b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bac9190615311565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c329190615311565b9050600081612c418487615463565b612c4b919061547a565b90506000612aa18783613b3f565b6001600160a01b0381166000908152609f602052604090208054600181018255905b50919050565b6000610ae6612c8e61240b565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612cbf87878787613e05565b91509150612ccc81613ebf565b5095945050505050565b6101345460ff1615610e0b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109f7565b611294816000614004565b60606000612d34611dec565b905080516001600160401b03811115612d4f57612d4f615266565b604051908082528060200260200182016040528015612d78578160200160208202803683370190505b50915060005b8151811015612fc1576101996000838381518110612d9e57612d9e61527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110612e1b57612e1b61527c565b602002602001018181525050828181518110612e3957612e3961527c565b6020026020010151600014612fb95760006101996000848481518110612e6157612e6161527c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b03160217905550612ef5838281518110612ee857612ee861527c565b6020026020010151614084565b61019b6000848481518110612f0c57612f0c61527c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b0316612f58919061548e565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550612fb9828281518110612f9157612f9161527c565b602002602001015185858481518110612fac57612fac61527c565b60200260200101516134e3565b600101612d7e565b505092915050565b606080612fd4611dec565b915081516001600160401b03811115612fef57612fef615266565b604051908082528060200260200182016040528015613018578160200160208202803683370190505b5090508151600003613028579091565b4361019a54146131cb574361019a55600061304161409a565b905061304b6140a4565b60005b83518110156131c557600084828151811061306b5761306b61527c565b6020908102919091018101516001600160a01b038116600090815261019b835260408082208151808301909252546001600160801b03808216808452600160801b90920416948201859052895193955090939290919083906130e6908b90899081106130d9576130d961527c565b6020026020010151614144565b6130f091906154ae565b9050816000036130ff57600191505b861561311c5761310f81886141ce565b61311990836153a9565b91505b604051806040016040528061313084614084565b6001600160801b0316815260200161315061314b84876153a9565b614084565b6001600160801b039081169091526001600160a01b038716600090815261019b60209081526040909120835193909101518216600160801b0292909116919091179055875182908990889081106131a9576131a961527c565b602002602001018181525050505050505080600101905061304e565b50509091565b60005b82518110156132455761019b60008483815181106131ee576131ee61527c565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b03909116908390839081106132325761323261527c565b60209081029190910101526001016131ce565b509091565b8151600090815b8181101561329e57836001600160a01b03168582815181106132755761327561527c565b60200260200101516001600160a01b03160361329657600192505050610ae6565b600101613251565b506000949350505050565b81516060906132b98160016153a9565b6001600160401b038111156132d0576132d0615266565b6040519080825280602002602001820160405280156132f9578160200160208202803683370190505b50915060005b81811015613353578481815181106133195761331961527c565b60200260200101518382815181106133335761333361527c565b6001600160a01b03909216602092830291909101909101526001016132ff565b50828282815181106133675761336761527c565b60200260200101906001600160a01b031690816001600160a01b0316815250505092915050565b6040516001600160a01b03808516602483015283166044820152606481018290526121e39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526141fd565b613401612cd6565b610acd8383614004565b60006001600160f81b0382111561342157600080fd5b5090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6134506142d2565b61345861432b565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6101345460ff16610e0b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109f7565b806000036134f057505050565b6001600160a01b038316613593576000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461354b576040519150601f19603f3d011682016040523d82523d6000602084013e613550565b606091505b50509050806121e35760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016109f7565b610acd6001600160a01b038416838361435c565b600154600160a81b900460ff166135d05760405162461bcd60e51b81526004016109f7906153dc565b6135da828261437b565b61168282604051806040016040528060018152602001603160f81b8152506143d7565b600154600160a81b900460ff166136265760405162461bcd60e51b81526004016109f7906153dc565b600080546001600160a01b03191633179055565b600080846001600160a01b031663095ea7b360e01b85856040516024016136629291906154c1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516136a091906154da565b6000604051808303816000865af19150503d80600081146136dd576040519150601f19603f3d011682016040523d82523d6000602084013e6136e2565b606091505b509150915081801561370c57508051158061370c57508080602001905181019061370c91906152d7565b6137475760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016109f7565b5050505050565b600061375a838361440a565b91506000821161376c5761376c6154f6565b6040516340d3096b60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906381a612d6906137bb908790600401614f21565b602060405180830381865afa1580156137d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137fc9190615311565b9050600068327cb2734119d3b7a9601e1b6138178386615463565b613821919061547a565b604051634215287360e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063421528739061389490849089907f00000000000000000000000000000000000000000000000000000000000000009060040161550c565b602060405180830381865afa1580156138b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d59190615311565b9050600081116139375760405162461bcd60e51b815260206004820152602760248201527f7072657669657720627579555344473a2075736467416d6f756e74206d7573746044820152660206265203e20360cc1b60648201526084016109f7565b6000613a4b868360007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634d47b3046040518163ffffffff1660e01b8152600401602060405180830381865afa15801561399e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c29190615311565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a449190615311565b6001614542565b90506000613a5a8787846147b9565b9050600068327cb2734119d3b7a9601e1b613a758684615463565b613a7f919061547a565b604051634215287360e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634215287390613af29084908c907f00000000000000000000000000000000000000000000000000000000000000009060040161550c565b602060405180830381865afa158015613b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b339190615311565b98975050505050505050565b6000613b6b7f00000000000000000000000000000000000000000000000000000000000000008361440a565b915060008211613b7d57613b7d6154f6565b604051632c668ec160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632c668ec190613bce90879087906004016154c1565b602060405180830381865afa158015613beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0f9190615311565b905060008111613c785760405162461bcd60e51b815260206004820152602e60248201527f707265766965772073656c6c555344473a20726564656d7074696f6e416d6f7560448201526d06e74206d757374206265203e20360941b60648201526084016109f7565b6000613d8b8585867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634d47b3046040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d029190615311565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637a210a2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d849190615311565b6000614542565b90506000613d9a8684846147b9565b905060008111613dfc5760405162461bcd60e51b815260206004820152602760248201527f707265766965772073656c6c555344473a20616d6f756e744f7574206d7573746044820152660206265203e20360cc1b60648201526084016109f7565b95945050505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115613e325750600090506003613eb6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613e86573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613eaf57600060019250925050613eb6565b9150600090505b94509492505050565b6000816004811115613ed357613ed3615125565b03613edb5750565b6001816004811115613eef57613eef615125565b03613f375760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016109f7565b6002816004811115613f4b57613f4b615125565b03613f985760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109f7565b6003816004811115613fac57613fac615125565b036112945760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109f7565b60008061400f612fc9565b9150915081516000036140225750505050565b6001600160a01b0384161580159061404357506001600160a01b0384163014155b15614053576140538483836147dd565b6001600160a01b0383161580159061407457506001600160a01b0383163014155b156121e3576121e38383836147dd565b60006001600160801b0382111561342157600080fd5b60006109c8610bf9565b60405163185b800160e11b815260006004820181905260248201819052600160448301819052606483018190526084830182905260a483015260c48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906330b700029060e401600060405180830381600087803b15801561413057600080fd5b505af11580156121e3573d6000803e3d6000fd5b60006001600160a01b038216156141c7576040516370a0823160e01b81526001600160a01b038316906370a0823190614181903090600401614f21565b602060405180830381865afa15801561419e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141c29190615311565b610ae6565b4792915050565b6000806141e3670de0b6b3a764000085615463565b90508281816141f4576141f4615427565b04949350505050565b6000614252826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614a1a9092919063ffffffff16565b905080516000148061427357508080602001905181019061427391906152d7565b610acd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109f7565b6000806142dd612809565b8051909150156142f4578051602090910120919050565b606b5480156143035792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080614336612818565b80519091501561434d578051602090910120919050565b606c5480156143035792915050565b610acd8363a9059cbb60e01b84846040516024016133c29291906154c1565b600154600160a81b900460ff166143a45760405162461bcd60e51b81526004016109f7906153dc565b60056143b0838261557b565b5060066143bd828261557b565b5050600480546001600160f81b0316600160f81b17905550565b600154600160a81b900460ff166144005760405162461bcd60e51b81526004016109f7906153dc565b6116828282614a29565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663523fba7f856040518263ffffffff1660e01b81526004016144599190614f21565b602060405180830381865afa158015614476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061449a9190615311565b9050600083856001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016144eb9190614f21565b602060405180830381865afa158015614508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452c9190615311565b61453691906153a9565b9050613dfc82826154ae565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639f392eb36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156145a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145c691906152d7565b6145d15750826147af565b604051631aa4ace560e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631aa4ace590614620908b90600401614f21565b602060405180830381865afa15801561463d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146619190615311565b90508581101561467257600061467c565b61467c86826154ae565b9050600061468a88836153a9565b9050836146ad578188116146a7576146a288836154ae565b6146aa565b60005b90505b60006146b98a89614a7a565b9050806000036146ce578693505050506147af565b60008184116146e6576146e184836154ae565b6146f0565b6146f082856154ae565b9050600082841161470a5761470584846154ae565b614714565b61471483856154ae565b90508181101561475d5760008361472b848b615463565b614735919061547a565b905089811161474d57614748818b6154ae565b614750565b60005b96505050505050506147af565b6000600261476b83856153a9565b614775919061547a565b9050838111156147825750825b60008461478f838c615463565b614799919061547a565b90506147a5818c6153a9565b9750505050505050505b9695505050505050565b6000806127106147c984826154ae565b6147d39086615463565b613dfc919061547a565b6001600160a01b038316158015906147fe57506001600160a01b0383163014155b61480a5761480a6154f6565b600061481584614c3c565b905060005b83518110156137475760008482815181106148375761483761527c565b6020026020010151905060008483815181106148555761485561527c565b6020908102919091018101516001600160a01b03808516600090815261019984526040808220928c168252919093528220549092506001600160801b0316908190036148b1576148a56001614084565b6001600160801b031690505b818114806148bd575081155b156148ca57505050614a12565b60006148d682846154ae565b905060006148e48783614c47565b6001600160a01b03868116600090815261019960209081526040808320938f168352929052908120549192509061492c908390600160801b90046001600160801b03166153a9565b9050604051806040016040528061494287614084565b6001600160801b0316815260200161495983614084565b6001600160801b03168152506101996000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b60010161481a565b60606127798484600085614c65565b600154600160a81b900460ff16614a525760405162461bcd60e51b81526004016109f7906153dc565b606d614a5e838261557b565b50606e614a6b828261557b565b50506000606b819055606c5550565b600080827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b009190615311565b614b0a91906154ae565b905080600003614b1e576000915050610ae6565b604051632acbceb560e21b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab2f3ad490614b6d908890600401614f21565b602060405180830381865afa158015614b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bae9190615311565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dc8f5fac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c329190615311565b6147d38383615463565b6000610ae682610eb8565b600080614c548385615463565b9050670de0b6b3a7640000816141f4565b606082471015614cc65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109f7565b600080866001600160a01b03168587604051614ce291906154da565b60006040518083038185875af1925050503d8060008114614d1f576040519150601f19603f3d011682016040523d82523d6000602084013e614d24565b606091505b5091509150612aa18783838760608315614d9d578251600003614d9657614d4a85612781565b614d965760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f7565b5081612779565b6127798383815115614db25781518083602001fd5b8060405162461bcd60e51b81526004016109f79190614e1c565b60005b83811015614de7578181015183820152602001614dcf565b50506000910152565b60008151808452614e08816020860160208601614dcc565b601f01601f19169290920160200192915050565b6020815260006116ba6020830184614df0565b60008151808452602080850194506020840160005b83811015614e695781516001600160a01b031687529582019590820190600101614e44565b509495945050505050565b6020815260006116ba6020830184614e2f565b6001600160a01b038116811461129457600080fd5b801515811461129457600080fd5b600080600060608486031215614ebf57600080fd5b8335614eca81614e87565b92506020840135614eda81614e9c565b91506040840135614eea81614e9c565b809150509250925092565b60008060408385031215614f0857600080fd5b8235614f1381614e87565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600060208284031215614f4757600080fd5b81356116ba81614e87565b60008151808452602080850194506020840160005b83811015614e6957815187529582019590820190600101614f67565b6020815260006116ba6020830184614f52565b60008060008060808587031215614fac57600080fd5b8435614fb781614e87565b93506020850135614fc781614e87565b93969395505050506040820135916060013590565b600080600060608486031215614ff157600080fd5b8335614ffc81614e87565b9250602084013561500c81614e87565b929592945050506040919091013590565b6000806040838503121561503057600080fd5b823561503b81614e87565b9150602083013561504b81614e87565b809150509250929050565b600080600080600060a0868803121561506e57600080fd5b853561507981614e87565b945060208601359350604086013561509081614e87565b92506060860135915060808601356150a781614e9c565b809150509295509295909350565b60ff60f81b8816815260e0602082015260006150d460e0830189614df0565b82810360408401526150e68189614df0565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506151178185614f52565b9a9950505050505050505050565b634e487b7160e01b600052602160045260246000fd5b606081016002851061515d57634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60ff8116811461129457600080fd5b600080600080600080600060e0888a0312156151a757600080fd5b87356151b281614e87565b965060208801356151c281614e87565b9550604088013594506060880135935060808801356151e08161517d565b9699959850939692959460a0840135945060c09093013592915050565b600181811c9082168061521157607f821691505b602082108103612c7b57634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b918252602082015260400190565b6000602082840312156152e957600080fd5b81516116ba81614e9c565b60006020828403121561530657600080fd5b81516116ba8161517d565b60006020828403121561532357600080fd5b5051919050565b60006020828403121561533c57600080fd5b81516116ba81614e87565b60408152600061535a6040830185614e2f565b8281036020840152613dfc8185614f52565b634e487b7160e01b600052601160045260246000fd5b6001600160f81b038181168382160190808211156153a2576153a261536c565b5092915050565b80820180821115610ae657610ae661536c565b6001600160f81b038281168282160390808211156153a2576153a261536c565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168061545757615457615427565b92169190910492915050565b8082028115828204841417610ae657610ae661536c565b60008261548957615489615427565b500490565b6001600160801b038281168282160390808211156153a2576153a261536c565b81810381811115610ae657610ae661536c565b6001600160a01b03929092168252602082015260400190565b600082516154ec818460208701614dcc565b9190910192915050565b634e487b7160e01b600052600160045260246000fd5b9283526001600160a01b03918216602084015216604082015260600190565b601f821115610acd576000816000526020600020601f850160051c810160208610156155545750805b601f850160051c820191505b8181101561557357828155600101615560565b505050505050565b81516001600160401b0381111561559457615594615266565b6155a8816155a284546151fd565b8461552b565b602080601f8311600181146155dd57600084156155c55750858301515b600019600386901b1c1916600185901b178555615573565b600085815260208120601f198616915b8281101561560c578886015182559484019460019091019084016155ed565b508582101561562a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a281a62c72bdfdc638fd9261ab231645fe0251bedcf66891880f86ea88627a0864736f6c63430008170033";
|
|
1211
1211
|
|
|
1212
1212
|
type PendleGlpSYConstructorParams =
|
|
1213
1213
|
| [signer?: Signer]
|