@boostxyz/sdk 2.0.0 → 2.1.0
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/dist/Actions/Action.cjs +1 -1
- package/dist/Actions/Action.js +4 -4
- package/dist/Actions/EventAction.cjs +1 -1
- package/dist/Actions/EventAction.js +17 -17
- package/dist/Actions/EventAction.js.map +1 -1
- package/dist/AllowLists/AllowList.cjs +1 -1
- package/dist/AllowLists/AllowList.js +5 -5
- package/dist/AllowLists/SimpleAllowList.cjs +1 -1
- package/dist/AllowLists/SimpleAllowList.js +19 -19
- package/dist/AllowLists/SimpleDenyList.cjs +1 -1
- package/dist/AllowLists/SimpleDenyList.js +3 -3
- package/dist/Auth/PassthroughAuth.cjs +1 -1
- package/dist/Auth/PassthroughAuth.js +1 -1
- package/dist/BoostCore.cjs +2 -2
- package/dist/BoostCore.cjs.map +1 -1
- package/dist/BoostCore.d.ts +14 -0
- package/dist/BoostCore.d.ts.map +1 -1
- package/dist/BoostCore.js +100 -81
- package/dist/BoostCore.js.map +1 -1
- package/dist/BoostRegistry.cjs +1 -1
- package/dist/BoostRegistry.js +31 -31
- package/dist/Budget-B0kJsZtZ.cjs +2 -0
- package/dist/Budget-B0kJsZtZ.cjs.map +1 -0
- package/dist/Budget-NtzY9H7G.js +462 -0
- package/dist/Budget-NtzY9H7G.js.map +1 -0
- package/dist/Budgets/Budget.cjs +1 -1
- package/dist/Budgets/Budget.cjs.map +1 -1
- package/dist/Budgets/Budget.d.ts +5 -4
- package/dist/Budgets/Budget.d.ts.map +1 -1
- package/dist/Budgets/Budget.js +9 -26
- package/dist/Budgets/Budget.js.map +1 -1
- package/dist/Budgets/ManagedBudget.cjs +1 -1
- package/dist/Budgets/ManagedBudget.js +34 -34
- package/dist/Budgets/ManagedBudgetWithFees.d.ts +1203 -0
- package/dist/Budgets/ManagedBudgetWithFees.d.ts.map +1 -0
- package/dist/Deployable/DeployableTarget.cjs +1 -1
- package/dist/Deployable/DeployableTarget.js +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.js +23 -23
- package/dist/Incentives/AllowListIncentive.cjs +1 -1
- package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
- package/dist/Incentives/AllowListIncentive.js +16 -16
- package/dist/Incentives/AllowListIncentive.js.map +1 -1
- package/dist/Incentives/CGDAIncentive.cjs +1 -1
- package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
- package/dist/Incentives/CGDAIncentive.js +28 -28
- package/dist/Incentives/CGDAIncentive.js.map +1 -1
- package/dist/Incentives/ERC20Incentive.cjs +1 -1
- package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
- package/dist/Incentives/ERC20Incentive.js +25 -25
- package/dist/Incentives/ERC20Incentive.js.map +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.js +29 -29
- package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -1
- package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
- package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
- package/dist/Incentives/ERC20VariableIncentive.js +6 -6
- package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
- package/dist/Incentives/Incentive.cjs +1 -1
- package/dist/Incentives/Incentive.js +4 -4
- package/dist/Incentives/PointsIncentive.cjs +1 -1
- package/dist/Incentives/PointsIncentive.cjs.map +1 -1
- package/dist/Incentives/PointsIncentive.js +12 -12
- package/dist/Incentives/PointsIncentive.js.map +1 -1
- package/dist/{SimpleDenyList-wDvsNIuY.cjs → SimpleDenyList-B65fnca2.cjs} +2 -2
- package/dist/{SimpleDenyList-wDvsNIuY.cjs.map → SimpleDenyList-B65fnca2.cjs.map} +1 -1
- package/dist/{SimpleDenyList-D-rGBaay.js → SimpleDenyList-UvXQl2vm.js} +20 -20
- package/dist/{SimpleDenyList-D-rGBaay.js.map → SimpleDenyList-UvXQl2vm.js.map} +1 -1
- package/dist/Validators/LimitedSignerValidator.cjs +1 -1
- package/dist/Validators/LimitedSignerValidator.js +9 -9
- package/dist/Validators/SignerValidator.cjs +1 -1
- package/dist/Validators/SignerValidator.js +8 -8
- package/dist/Validators/Validator.cjs +1 -1
- package/dist/Validators/Validator.cjs.map +1 -1
- package/dist/Validators/Validator.js +20 -20
- package/dist/componentInterfaces-Bt-4sNB5.cjs +2 -0
- package/dist/componentInterfaces-Bt-4sNB5.cjs.map +1 -0
- package/dist/componentInterfaces-dakxtQHf.js +16 -0
- package/dist/componentInterfaces-dakxtQHf.js.map +1 -0
- package/dist/deployments-DxkwtCyu.cjs +2 -0
- package/dist/deployments-DxkwtCyu.cjs.map +1 -0
- package/dist/{deployments-BdPDIh-i.js → deployments-ZLVwJGZD.js} +33 -30
- package/dist/deployments-ZLVwJGZD.js.map +1 -0
- package/dist/deployments.json +17 -14
- package/dist/{generated-CDEDSOGZ.js → generated-B0XfMfoq.js} +1037 -470
- package/dist/generated-B0XfMfoq.js.map +1 -0
- package/dist/generated-pNKCp_Ez.cjs +3 -0
- package/dist/generated-pNKCp_Ez.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -145
- package/package.json +1 -1
- package/src/BoostCore.ts +30 -0
- package/src/Budgets/Budget.ts +8 -3
- package/src/Budgets/ManagedBudgetWithFees.test.ts +286 -0
- package/src/Budgets/ManagedBudgetWithFees.ts +671 -0
- package/src/index.ts +1 -0
- package/dist/componentInterfaces-BQw7DH-m.cjs +0 -2
- package/dist/componentInterfaces-BQw7DH-m.cjs.map +0 -1
- package/dist/componentInterfaces-C0vuWQlh.js +0 -15
- package/dist/componentInterfaces-C0vuWQlh.js.map +0 -1
- package/dist/deployments--f75Pthq.cjs +0 -2
- package/dist/deployments--f75Pthq.cjs.map +0 -1
- package/dist/deployments-BdPDIh-i.js.map +0 -1
- package/dist/generated-CDEDSOGZ.js.map +0 -1
- package/dist/generated-D3DE5TfH.cjs +0 -3
- package/dist/generated-D3DE5TfH.cjs.map +0 -1
package/dist/BoostCore.js
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { I as C, bC as j, bD as p, bE as x, bF as V, bG as T, bH as q, bI as z, bJ as G, bK as W, bL as k, bM as U, bN as H, bO as J, bP as K, bQ as Q } from "./generated-B0XfMfoq.js";
|
|
2
2
|
import { waitForTransactionReceipt as X, getAccount as Y, getChains as Z, getTransactionReceipt as ff } from "@wagmi/core";
|
|
3
|
-
import { createClient as bf, custom as ef, zeroAddress as m, parseEventLogs as
|
|
4
|
-
import {
|
|
3
|
+
import { createClient as bf, custom as ef, zeroAddress as m, parseEventLogs as P, zeroHash as l } from "viem";
|
|
4
|
+
import { g as af } from "./deployments-ZLVwJGZD.js";
|
|
5
5
|
import { actionFromAddress as tf } from "./Actions/Action.js";
|
|
6
6
|
import { EventAction as cf } from "./Actions/EventAction.js";
|
|
7
7
|
import { allowListFromAddress as df, OpenAllowList as nf } from "./AllowLists/AllowList.js";
|
|
8
8
|
import { SimpleAllowList as sf } from "./AllowLists/SimpleAllowList.js";
|
|
9
|
-
import { S as of } from "./SimpleDenyList-
|
|
9
|
+
import { S as of } from "./SimpleDenyList-UvXQl2vm.js";
|
|
10
10
|
import { PassthroughAuth as rf } from "./Auth/PassthroughAuth.js";
|
|
11
11
|
import { prepareBoostPayload as B, Boost as E } from "./Boost.js";
|
|
12
|
-
import {
|
|
13
|
-
import { ManagedBudget as
|
|
14
|
-
import { Deployable as
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
12
|
+
import { b as uf, M as lf } from "./Budget-NtzY9H7G.js";
|
|
13
|
+
import { ManagedBudget as hf } from "./Budgets/ManagedBudget.js";
|
|
14
|
+
import { Deployable as gf } from "./Deployable/Deployable.js";
|
|
15
|
+
import { Roles as wf } from "./Deployable/DeployableTargetWithRBAC.js";
|
|
16
|
+
import { AllowListIncentive as mf } from "./Incentives/AllowListIncentive.js";
|
|
17
|
+
import { CGDAIncentive as vf } from "./Incentives/CGDAIncentive.js";
|
|
18
|
+
import { ERC20Incentive as Cf } from "./Incentives/ERC20Incentive.js";
|
|
19
|
+
import { ERC20VariableCriteriaIncentive as Af } from "./Incentives/ERC20VariableCriteriaIncentive.js";
|
|
20
|
+
import { incentiveFromAddress as If } from "./Incentives/Incentive.js";
|
|
21
|
+
import { PointsIncentive as yf } from "./Incentives/PointsIncentive.js";
|
|
22
|
+
import { LimitedSignerValidator as _f } from "./Validators/LimitedSignerValidator.js";
|
|
23
|
+
import { SignerValidator as Pf } from "./Validators/SignerValidator.js";
|
|
24
|
+
import { BoostValidatorEOA as R, validatorFromAddress as Bf } from "./Validators/Validator.js";
|
|
25
|
+
import { BoostCoreNoIdentifierEmitted as Ef, DeployableUnknownOwnerProvidedError as Rf, InvalidProtocolChainIdError as Ff, BudgetMustAuthorizeBoostCore as Lf, MustInitializeBudgetError as Df, IncentiveNotCloneableError as Nf, BoostNotFoundError as Of } from "./errors.js";
|
|
25
26
|
import { assertValidAddressByChainId as h } from "./utils.js";
|
|
26
|
-
import { ERC20VariableIncentive as
|
|
27
|
-
import { simulateContract as
|
|
28
|
-
import { parseAccount as
|
|
29
|
-
const jf = "0x60806040526103e8600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003a575f80fd5b50604051615344380380615344833981810160405281019061005c919061026b565b61006b336100f260201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102a9565b6101006101ce60201b60201c565b15610178577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561013a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101cb565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ff826101d6565b9050919050565b5f610210826101f5565b9050919050565b61022081610206565b811461022a575f80fd5b50565b5f8151905061023b81610217565b92915050565b61024a816101f5565b8114610254575f80fd5b50565b5f8151905061026581610241565b92915050565b5f8060408385031215610281576102806101d2565b5b5f61028e8582860161022d565b925050602061029f85828601610257565b9150509250929050565b61508e806102b65f395ff3fe60806040526004361061014a575f3560e01c80638da5cb5b116100b5578063e21ff7311161006e578063e21ff731146103f7578063eccc19a614610433578063f04e283e1461045b578063f2fde38b14610477578063fee81cf414610493578063fefceca9146104cf5761014a565b80638da5cb5b146102f65780638fe4f52314610320578063a92647dc1461033c578063b0e21e8a14610366578063d73792a914610390578063dd98558c146103ba5761014a565b806354d1f13d1161010757806354d1f13d1461024a5780635edb9eb0146102545780635f32c23e1461027e578063715018a6146102a6578063730f9c57146102b05780637b103999146102cc5761014a565b806313c8e2de1461014e578063256929621461018a578063346339d51461019457806339a51be5146101d057806343bc42d3146101fa57806346877b1a14610222575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190613805565b61050f565b6040516101819190613ae1565b60405180910390f35b6101926107b7565b005b34801561019f575f80fd5b506101ba60048036038101906101b59190613b34565b610808565b6040516101c79190613c38565b60405180910390f35b3480156101db575f80fd5b506101e46108df565b6040516101f19190613c60565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613ca3565b610904565b005b34801561022d575f80fd5b5061024860048036038101906102439190613cf8565b610938565b005b610252610983565b005b34801561025f575f80fd5b506102686109bc565b6040516102759190613d32565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613d4b565b6109c7565b005b6102ae610b53565b005b6102ca60048036038101906102c59190613dea565b610b66565b005b3480156102d7575f80fd5b506102e06110a7565b6040516102ed9190613ea0565b60405180910390f35b348015610301575f80fd5b5061030a6110cc565b6040516103179190613c60565b60405180910390f35b61033a60048036038101906103359190613eb9565b6110f4565b005b348015610347575f80fd5b50610350611109565b60405161035d9190613f5d565b60405180910390f35b348015610371575f80fd5b5061037a61112e565b6040516103879190613f85565b60405180910390f35b34801561039b575f80fd5b506103a4611148565b6040516103b19190613f85565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190613f9e565b61114e565b6040516103ee92919061400f565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190614036565b611852565b60405161042a9190613ae1565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190613cf8565b612245565b005b61047560048036038101906104709190613cf8565b612290565b005b610491600480360381019061048c9190613cf8565b6122ce565b005b34801561049e575f80fd5b506104b960048036038101906104b49190613cf8565b6122f7565b6040516104c69190613d32565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f09190613b34565b612310565b604051610506959493929190614090565b60405180910390f35b610517613617565b5f828154811061052a576105296140e1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561071757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116106ce575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6107c061236d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6108106136cd565b60045f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff16600281111561084f5761084e613b5f565b5b600281111561086157610860613b5f565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61090c612377565b80600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610940612377565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd2126854036109e55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6109fc83836123ae565b90505f60045f8381526020019081526020015f2090505f816002015461271067ffffffffffffffff168360010154610a34919061413b565b610a3e91906141a9565b90505f610a4a836123e0565b905081811115610b3f575f8282610a6191906141d9565b90505f61271067ffffffffffffffff16856002015483610a81919061413b565b610a8b91906141a9565b9050610a9785826125e6565b80856001015410610ac15780856001015f828254610ab591906141d9565b92505081905550610acb565b5f85600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687897f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610b349190613d32565b60405180910390a450505b505050503868929eee149b4bd21268555050565b610b5b612377565b610b645f6127c7565b565b3068929eee149b4bd212685403610b845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610ba457610ba36140e1565b5b905f5260205f20906008020190505f610bbd88886123ae565b90505f60045f8381526020019081526020015f209050826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8588886040518463ffffffff1660e01b8152600401610c3393929190614266565b602060405180830381865afa158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7291906142cb565b610ca8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b69008a8a878a8a6040518663ffffffff1660e01b8152600401610d0c9594939291906142f6565b6020604051808303815f875af1158015610d28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4c91906142cb565b610d82576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ddf575f610de9565b610de8826123e0565b5b9050836004018981548110610e0157610e006140e1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8689896040518463ffffffff1660e01b8152600401610e6593929190614266565b6020604051808303815f875af1158015610e81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea591906142cb565b610eea578487876040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610ee193929190614266565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f47575f610f51565b610f50836123e0565b5b90505f818311610f61575f610f6e565b8183610f6d91906141d9565b5b90505f61271067ffffffffffffffff16856002015483610f8e919061413b565b610f9891906141a9565b90505f81111561103857610fac85826125e6565b80856001015f828254610fbf91906141d9565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c8e7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161102f9190613d32565b60405180910390a45b8773ffffffffffffffffffffffffffffffffffffffff168c8e7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478e8e8e60405161108493929190614266565b60405180910390a4505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b611102858585858533610b66565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900467ffffffffffffffff1681565b61271081565b5f803068929eee149b4bd21268540361116e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061118e5761118d6140e1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561137b57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611332575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61148a86866123ae565b90505f60045f8381526020019081526020015f2090505f89898101906114b091906144cd565b90505f81602001518060200190518101906114cb9190614528565b90505f61271067ffffffffffffffff168460020154836114eb919061413b565b6114f591906141a9565b90505f811115611712576001600281111561151357611512613b5f565b5b845f015f9054906101000a900460ff16600281111561153557611534613b5f565b5b148061157357505f600281111561154f5761154e613b5f565b5b845f015f9054906101000a900460ff16600281111561157157611570613b5f565b5b145b156115ce576115c9835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288d9092919063ffffffff16565b6116a0565b6002808111156115e1576115e0613b5f565b5b845f015f9054906101000a900460ff16600281111561160357611602613b5f565b5b0361169f57835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016116719493929190614576565b5f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b505050505b5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516117099190613d32565b60405180910390a45b5f8087608001518b8151811061172b5761172a6140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a448660405160200161175f9190614666565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161178a91906146be565b60408051808303815f875af11580156117a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c991906146f2565b915091505f820361181557338e8e6040517f9ecd71a900000000000000000000000000000000000000000000000000000000815260040161180c93929190614266565b60405180910390fd5b82866001015f82825461182891906141d9565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b61185a613617565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561194e575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b815260040161190d9190613c60565b602060405180830381865afa158015611928573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194c91906142cb565b155b15611985576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd2126854036119a35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6119fc85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506128d6565b806020019051810190611a0f9190614a90565b9050611a1d815f015161296f565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a00151600360149054906101000a900467ffffffffffffffff16611aee9190614ad7565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611b547fe67157950000000000000000000000000000000000000000000000000000000083602001516001612a4a565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611bc47fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612a4a565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c1b8260800151835f01518460a00151612a6c565b816004019080519060200190611c3292919061371f565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614611ca357611c9e7f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001612a4a565b611d8c565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611d1e9190614b4c565b602060405180830381865afa158015611d39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5d91906142cb565b611d67575f611d8b565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611e82577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611e79929190614b65565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611f0691906141d9565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611fab9493929190614b8c565b60405180910390a480604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561219557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161214c575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b61224d612377565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612298612377565b63389a75e1600c52805f526020600c2080544211156122be57636f5e88185f526004601cfd5b5f8155506122cb816127c7565b50565b6122d6612377565b8060601b6122eb57637448fbae5f526004601cfd5b6122f4816127c7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6004602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146123ac576382b429005f526004601cfd5b565b5f82826040516020016123c2929190614bef565b60405160208183030381529060405280519060200120905092915050565b5f600160028111156123f5576123f4613b5f565b5b825f015f9054906101000a900460ff16600281111561241757612416613b5f565b5b148061245557505f600281111561243157612430613b5f565b5b825f015f9054906101000a900460ff16600281111561245357612452613b5f565b5b145b156124fc57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124b69190613c60565b602060405180830381865afa1580156124d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f59190614528565b90506125e1565b60028081111561250f5761250e613b5f565b5b825f015f9054906101000a900460ff16600281111561253157612530613b5f565b5b036125dd57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084600301546040518363ffffffff1660e01b8152600401612597929190614c1a565b602060405180830381865afa1580156125b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d69190614528565b90506125e1565b5f90505b919050565b600160028111156125fa576125f9613b5f565b5b825f015f9054906101000a900460ff16600281111561261c5761261b613b5f565b5b148061265a57505f600281111561263657612635613b5f565b5b825f015f9054906101000a900460ff16600281111561265857612657613b5f565b5b145b156126d3576126ce60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661288d9092919063ffffffff16565b6127c3565b6002808111156126e6576126e5613b5f565b5b825f015f9054906101000a900460ff16600281111561270857612707613b5f565b5b036127c257815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b81526004016127949493929190614576565b5f604051808303815f87803b1580156127ab575f80fd5b505af11580156127bd573d5f803e3d5ffd5b505050505b5b5050565b6127cf612f87565b15612834577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061288a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166128cd576390b8ec185f526004601cfd5b5f603452505050565b606081511561296a5760405190506020810160048301805184518501811983525b80861015612950576001860195508551601f1a80612940576001870196508651601f1a5f198652607f811161292e57600181013887395b6001607f82160186019550505061294b565b808553600185019450505b6128f7565b81835260208501840385525f845260208401604052505050505b919050565b6129997fe49cedd70000000000000000000000000000000000000000000000000000000082612f8b565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016129d29190613c60565b602060405180830381865afa1580156129ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1191906142cb565b612a47576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612a59848460200151612f8b565b612a638383613082565b90509392505050565b6060835167ffffffffffffffff811115612a8957612a88614346565b5b604051908082528060200260200182016040528015612ab75781602001602082028036833780820191505090505b5090505f5b8451811015612f7f57612b0d7fa921670500000000000000000000000000000000000000000000000000000000868381518110612afc57612afb6140e1565b5b602002602001015160200151612f8b565b848181518110612b2057612b1f6140e1565b5b60200260200101515f0151612bac577fa921670500000000000000000000000000000000000000000000000000000000858281518110612b6357612b626140e1565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612ba3929190614b65565b60405180910390fd5b612bf17fa921670500000000000000000000000000000000000000000000000000000000868381518110612be357612be26140e1565b5b60200260200101515f612a4a565b828281518110612c0457612c036140e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110612c5257612c516140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2878481518110612c8857612c876140e1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612cb091906146be565b5f60405180830381865afa158015612cca573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612cf29190614c41565b90505f815114612ed3575f80612d08838761313e565b915091508673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b8152600401612d4591906146be565b6020604051808303815f875af1158015612d61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d8591906142cb565b612dbb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b8152600401612df491906146be565b6020604051808303815f875af1158015612e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e3491906142cb565b612e6a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83806020019051810190612e7f9190614d3c565b9050612ecf60015f80549050612e9591906141d9565b868360200151858b67ffffffffffffffff16865f01518f8c81518110612ebe57612ebd6140e1565b5b602002602001015160400151613437565b5050505b828281518110612ee657612ee56140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91878481518110612f1c57612f1b6140e1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612f4491906146be565b5f604051808303815f87803b158015612f5b575f80fd5b505af1158015612f6d573d5f803e3d5ffd5b50505050508080600101915050612abc565b509392505050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061303a57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401612ff99190614b4c565b602060405180830381865afa158015613014573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061303891906142cb565b155b1561307e5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401613075929190614b65565b60405180910390fd5b5050565b5f825f01516130955782602001516130b9565b6130b8836020015173ffffffffffffffffffffffffffffffffffffffff166135b4565b5b9050825f015180156130c85750815b15613138578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b815260040161310a91906146be565b5f604051808303815f87803b158015613121575f80fd5b505af1158015613133573d5f803e3d5ffd5b505050505b92915050565b60605f80848060200190518101906131569190614d3c565b90505f600360149054906101000a900467ffffffffffffffff168561317b9190614ad7565b90506001600281111561319157613190613b5f565b5b825f015160028111156131a7576131a6613b5f565b5b14806131d957505f60028111156131c1576131c0613b5f565b5b825f015160028111156131d7576131d6613b5f565b5b145b156132cd575f82606001518060200190518101906131f79190614dbc565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f0151613220919061413b565b61322a91906141a9565b90505f60405180602001604052808381525090508060405160200161324f9190614e01565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016132af9190614e7a565b60405160208183030381529060405282965096505050505050613430565b6002808111156132e0576132df613b5f565b5b825f015160028111156132f6576132f5613b5f565b5b036133fe575f82606001518060200190518101906133149190614f17565b90505f61271067ffffffffffffffff168367ffffffffffffffff16836020015161333e919061413b565b61334891906141a9565b90505f6040518060600160405280845f0151815260200183815260200184604001518152509050806040516020016133809190614fab565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016133e09190614e7a565b60405160208183030381529060405282965096505050505050613430565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561344b5761344a613b5f565b5b83600281111561345e5761345d613b5f565b5b0361347d57818060200190518101906134779190614fcb565b50809150505b5f6040518060a0016040528085600281111561349c5761349b613b5f565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff166134ef9190615025565b81526020018381525090508060045f6135088c8c6123ae565b81526020019081526020015f205f820151815f015f6101000a81548160ff0219169083600281111561353d5761353c613b5f565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6135bf5f836135c6565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f090508061360d5763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f60028111156136eb576136ea613b5f565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613795579160200282015b82811115613794578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061373d565b5b5090506137a291906137a6565b5090565b5b808211156137bd575f815f9055506001016137a7565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6137e4816137d2565b81146137ee575f80fd5b50565b5f813590506137ff816137db565b92915050565b5f6020828403121561381a576138196137ca565b5b5f613827848285016137f1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61387261386d61386884613830565b61384f565b613830565b9050919050565b5f61388382613858565b9050919050565b5f61389482613879565b9050919050565b6138a48161388a565b82525050565b5f6138b482613879565b9050919050565b6138c4816138aa565b82525050565b5f6138d482613879565b9050919050565b6138e4816138ca565b82525050565b5f6138f482613858565b9050919050565b5f613905826138ea565b9050919050565b613915816138fb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61394e82613879565b9050919050565b61395e81613944565b82525050565b5f61396f8383613955565b60208301905092915050565b5f602082019050919050565b5f6139918261391b565b61399b8185613925565b93506139a683613935565b805f5b838110156139d65781516139bd8882613964565b97506139c88361397b565b9250506001810190506139a9565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b6139ff816139e3565b82525050565b613a0e816137d2565b82525050565b5f613a1e82613830565b9050919050565b613a2e81613a14565b82525050565b5f61010083015f830151613a4a5f86018261389b565b506020830151613a5d60208601826138bb565b506040830151613a7060408601826138db565b506060830151613a83606086018261390c565b5060808301518482036080860152613a9b8282613987565b91505060a0830151613ab060a08601826139f6565b5060c0830151613ac360c0860182613a05565b5060e0830151613ad660e0860182613a25565b508091505092915050565b5f6020820190508181035f830152613af98184613a34565b905092915050565b5f819050919050565b613b1381613b01565b8114613b1d575f80fd5b50565b5f81359050613b2e81613b0a565b92915050565b5f60208284031215613b4957613b486137ca565b5b5f613b5684828501613b20565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110613b9d57613b9c613b5f565b5b50565b5f819050613bad82613b8c565b919050565b5f613bbc82613ba0565b9050919050565b613bcc81613bb2565b82525050565b60a082015f820151613be65f850182613bc3565b506020820151613bf96020850182613a25565b506040820151613c0c6040850182613a05565b506060820151613c1f6060850182613a05565b506080820151613c326080850182613a05565b50505050565b5f60a082019050613c4b5f830184613bd2565b92915050565b613c5a81613a14565b82525050565b5f602082019050613c735f830184613c51565b92915050565b613c82816139e3565b8114613c8c575f80fd5b50565b5f81359050613c9d81613c79565b92915050565b5f60208284031215613cb857613cb76137ca565b5b5f613cc584828501613c8f565b91505092915050565b613cd781613a14565b8114613ce1575f80fd5b50565b5f81359050613cf281613cce565b92915050565b5f60208284031215613d0d57613d0c6137ca565b5b5f613d1a84828501613ce4565b91505092915050565b613d2c816137d2565b82525050565b5f602082019050613d455f830184613d23565b92915050565b5f8060408385031215613d6157613d606137ca565b5b5f613d6e858286016137f1565b9250506020613d7f858286016137f1565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613daa57613da9613d89565b5b8235905067ffffffffffffffff811115613dc757613dc6613d8d565b5b602083019150836001820283011115613de357613de2613d91565b5b9250929050565b5f805f805f8060a08789031215613e0457613e036137ca565b5b5f613e1189828a016137f1565b9650506020613e2289828a016137f1565b9550506040613e3389828a01613ce4565b945050606087013567ffffffffffffffff811115613e5457613e536137ce565b5b613e6089828a01613d95565b93509350506080613e7389828a01613ce4565b9150509295509295509295565b5f613e8a82613879565b9050919050565b613e9a81613e80565b82525050565b5f602082019050613eb35f830184613e91565b92915050565b5f805f805f60808688031215613ed257613ed16137ca565b5b5f613edf888289016137f1565b9550506020613ef0888289016137f1565b9450506040613f0188828901613ce4565b935050606086013567ffffffffffffffff811115613f2257613f216137ce565b5b613f2e88828901613d95565b92509250509295509295909350565b5f613f4782613879565b9050919050565b613f5781613f3d565b82525050565b5f602082019050613f705f830184613f4e565b92915050565b613f7f816139e3565b82525050565b5f602082019050613f985f830184613f76565b92915050565b5f805f8060608587031215613fb657613fb56137ca565b5b5f85013567ffffffffffffffff811115613fd357613fd26137ce565b5b613fdf87828801613d95565b94509450506020613ff2878288016137f1565b9250506040614003878288016137f1565b91505092959194509250565b5f6040820190506140225f830185613d23565b61402f6020830184613c51565b9392505050565b5f806020838503121561404c5761404b6137ca565b5b5f83013567ffffffffffffffff811115614069576140686137ce565b5b61407585828601613d95565b92509250509250929050565b61408a81613bb2565b82525050565b5f60a0820190506140a35f830188614081565b6140b06020830187613c51565b6140bd6040830186613d23565b6140ca6060830185613d23565b6140d76080830184613d23565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614145826137d2565b9150614150836137d2565b925082820261415e816137d2565b915082820484148315176141755761417461410e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141b3826137d2565b91506141be836137d2565b9250826141ce576141cd61417c565b5b828204905092915050565b5f6141e3826137d2565b91506141ee836137d2565b92508282039050818111156142065761420561410e565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f614245838561420c565b935061425283858461421c565b61425b8361422a565b840190509392505050565b5f6040820190506142795f830186613c51565b818103602083015261428c81848661423a565b9050949350505050565b5f8115159050919050565b6142aa81614296565b81146142b4575f80fd5b50565b5f815190506142c5816142a1565b92915050565b5f602082840312156142e0576142df6137ca565b5b5f6142ed848285016142b7565b91505092915050565b5f6080820190506143095f830188613d23565b6143166020830187613d23565b6143236040830186613c51565b818103606083015261433681848661423a565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61437c8261422a565b810181811067ffffffffffffffff8211171561439b5761439a614346565b5b80604052505050565b5f6143ad6137c1565b90506143b98282614373565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156143e0576143df614346565b5b6143e98261422a565b9050602081019050919050565b5f614408614403846143c6565b6143a4565b905082815260208101848484011115614424576144236143c2565b5b61442f84828561421c565b509392505050565b5f82601f83011261444b5761444a613d89565b5b813561445b8482602086016143f6565b91505092915050565b5f6040828403121561447957614478614342565b5b61448360406143a4565b90505f61449284828501613ce4565b5f83015250602082013567ffffffffffffffff8111156144b5576144b46143be565b5b6144c184828501614437565b60208301525092915050565b5f602082840312156144e2576144e16137ca565b5b5f82013567ffffffffffffffff8111156144ff576144fe6137ce565b5b61450b84828501614464565b91505092915050565b5f81519050614522816137db565b92915050565b5f6020828403121561453d5761453c6137ca565b5b5f61454a84828501614514565b91505092915050565b50565b5f6145615f8361420c565b915061456c82614553565b5f82019050919050565b5f60a0820190506145895f830187613c51565b6145966020830186613c51565b6145a36040830185613d23565b6145b06060830184613d23565b81810360808301526145c181614556565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6145fe826145cc565b61460881856145d6565b93506146188185602086016145e6565b6146218161422a565b840191505092915050565b5f604083015f8301516146415f860182613a25565b506020830151848203602086015261465982826145f4565b9150508091505092915050565b5f6020820190508181035f83015261467e818461462c565b905092915050565b5f614690826145cc565b61469a818561420c565b93506146aa8185602086016145e6565b6146b38161422a565b840191505092915050565b5f6020820190508181035f8301526146d68184614686565b905092915050565b5f815190506146ec81613cce565b92915050565b5f8060408385031215614708576147076137ca565b5b5f61471585828601614514565b9250506020614726858286016146de565b9150509250929050565b5f61473a82613830565b9050919050565b5f61474b82614730565b9050919050565b61475b81614741565b8114614765575f80fd5b50565b5f8151905061477681614752565b92915050565b5f61478e614789846143c6565b6143a4565b9050828152602081018484840111156147aa576147a96143c2565b5b6147b58482856145e6565b509392505050565b5f82601f8301126147d1576147d0613d89565b5b81516147e184826020860161477c565b91505092915050565b5f606082840312156147ff576147fe614342565b5b61480960606143a4565b90505f614818848285016142b7565b5f83015250602061482b848285016146de565b602083015250604082015167ffffffffffffffff81111561484f5761484e6143be565b5b61485b848285016147bd565b60408301525092915050565b5f67ffffffffffffffff82111561488157614880614346565b5b602082029050602081019050919050565b5f6148a461489f84614867565b6143a4565b905080838252602082019050602084028301858111156148c7576148c6613d91565b5b835b8181101561490e57805167ffffffffffffffff8111156148ec576148eb613d89565b5b8086016148f989826147ea565b855260208501945050506020810190506148c9565b5050509392505050565b5f82601f83011261492c5761492b613d89565b5b815161493c848260208601614892565b91505092915050565b5f8151905061495381613c79565b92915050565b5f610100828403121561496f5761496e614342565b5b61497a6101006143a4565b90505f61498984828501614768565b5f83015250602082015167ffffffffffffffff8111156149ac576149ab6143be565b5b6149b8848285016147ea565b602083015250604082015167ffffffffffffffff8111156149dc576149db6143be565b5b6149e8848285016147ea565b604083015250606082015167ffffffffffffffff811115614a0c57614a0b6143be565b5b614a18848285016147ea565b606083015250608082015167ffffffffffffffff811115614a3c57614a3b6143be565b5b614a4884828501614918565b60808301525060a0614a5c84828501614945565b60a08301525060c0614a7084828501614514565b60c08301525060e0614a84848285016146de565b60e08301525092915050565b5f60208284031215614aa557614aa46137ca565b5b5f82015167ffffffffffffffff811115614ac257614ac16137ce565b5b614ace84828501614959565b91505092915050565b5f614ae1826139e3565b9150614aec836139e3565b9250828201905067ffffffffffffffff811115614b0c57614b0b61410e565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614b4681614b12565b82525050565b5f602082019050614b5f5f830184614b3d565b92915050565b5f604082019050614b785f830185614b3d565b614b856020830184613c51565b9392505050565b5f608082019050614b9f5f830187613d23565b614bac6020830186613c51565b614bb96040830185613c51565b614bc66060830184613c51565b95945050505050565b5f819050919050565b614be9614be4826137d2565b614bcf565b82525050565b5f614bfa8285614bd8565b602082019150614c0a8284614bd8565b6020820191508190509392505050565b5f604082019050614c2d5f830185613c51565b614c3a6020830184613d23565b9392505050565b5f60208284031215614c5657614c556137ca565b5b5f82015167ffffffffffffffff811115614c7357614c726137ce565b5b614c7f848285016147bd565b91505092915050565b60038110614c94575f80fd5b50565b5f81519050614ca581614c88565b92915050565b5f60808284031215614cc057614cbf614342565b5b614cca60806143a4565b90505f614cd984828501614c97565b5f830152506020614cec848285016146de565b6020830152506040614d00848285016146de565b604083015250606082015167ffffffffffffffff811115614d2457614d236143be565b5b614d30848285016147bd565b60608301525092915050565b5f60208284031215614d5157614d506137ca565b5b5f82015167ffffffffffffffff811115614d6e57614d6d6137ce565b5b614d7a84828501614cab565b91505092915050565b5f60208284031215614d9857614d97614342565b5b614da260206143a4565b90505f614db184828501614514565b5f8301525092915050565b5f60208284031215614dd157614dd06137ca565b5b5f614dde84828501614d83565b91505092915050565b602082015f820151614dfb5f850182613a05565b50505050565b5f602082019050614e145f830184614de7565b92915050565b5f608083015f830151614e2f5f860182613bc3565b506020830151614e426020860182613a25565b506040830151614e556040860182613a25565b5060608301518482036060860152614e6d82826145f4565b9150508091505092915050565b5f6020820190508181035f830152614e928184614e1a565b905092915050565b5f60608284031215614eaf57614eae614342565b5b614eb960606143a4565b90505f614ec884828501614514565b5f830152506020614edb84828501614514565b602083015250604082015167ffffffffffffffff811115614eff57614efe6143be565b5b614f0b848285016147bd565b60408301525092915050565b5f60208284031215614f2c57614f2b6137ca565b5b5f82015167ffffffffffffffff811115614f4957614f486137ce565b5b614f5584828501614e9a565b91505092915050565b5f606083015f830151614f735f860182613a05565b506020830151614f866020860182613a05565b5060408301518482036040860152614f9e82826145f4565b9150508091505092915050565b5f6020820190508181035f830152614fc38184614f5e565b905092915050565b5f8060408385031215614fe157614fe06137ca565b5b5f614fee85828601614514565b925050602083015167ffffffffffffffff81111561500f5761500e6137ce565b5b61501b858286016147bd565b9150509250929050565b5f61502f826137d2565b915061503a836137d2565b92508282019050808211156150525761505161410e565b5b9291505056fea2646970667358221220d9d037c2c33235a06d597239a1588d4f23c55dfa9cde1ca5967cffe7be52829464736f6c634300081a0033";
|
|
27
|
+
import { ERC20VariableIncentive as Sf } from "./Incentives/ERC20VariableIncentive.js";
|
|
28
|
+
import { simulateContract as Mf, writeContract as $f } from "viem/actions";
|
|
29
|
+
import { parseAccount as jf, getAddress as pf } from "viem/utils";
|
|
30
|
+
const xf = "0x60806040526103e8600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003a575f80fd5b50604051615326380380615326833981810160405281019061005c919061026b565b61006b336100f260201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102a9565b6101006101ce60201b60201c565b15610178577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561013a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101cb565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ff826101d6565b9050919050565b5f610210826101f5565b9050919050565b61022081610206565b811461022a575f80fd5b50565b5f8151905061023b81610217565b92915050565b61024a816101f5565b8114610254575f80fd5b50565b5f8151905061026581610241565b92915050565b5f8060408385031215610281576102806101d2565b5b5f61028e8582860161022d565b925050602061029f85828601610257565b9150509250929050565b615070806102b65f395ff3fe60806040526004361061014a575f3560e01c80638da5cb5b116100b5578063e21ff7311161006e578063e21ff731146103f7578063eccc19a614610433578063f04e283e1461045b578063f2fde38b14610477578063fee81cf414610493578063fefceca9146104cf5761014a565b80638da5cb5b146102f65780638fe4f52314610320578063a92647dc1461033c578063b0e21e8a14610366578063d73792a914610390578063dd98558c146103ba5761014a565b806354d1f13d1161010757806354d1f13d1461024a5780635edb9eb0146102545780635f32c23e1461027e578063715018a6146102a6578063730f9c57146102b05780637b103999146102cc5761014a565b806313c8e2de1461014e578063256929621461018a578063346339d51461019457806339a51be5146101d057806343bc42d3146101fa57806346877b1a14610222575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906137e7565b61050f565b6040516101819190613ac3565b60405180910390f35b6101926107b7565b005b34801561019f575f80fd5b506101ba60048036038101906101b59190613b16565b610808565b6040516101c79190613c1a565b60405180910390f35b3480156101db575f80fd5b506101e46108df565b6040516101f19190613c42565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613c85565b610904565b005b34801561022d575f80fd5b5061024860048036038101906102439190613cda565b610938565b005b610252610983565b005b34801561025f575f80fd5b506102686109bc565b6040516102759190613d14565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613d2d565b6109c7565b005b6102ae610b53565b005b6102ca60048036038101906102c59190613dcc565b610b66565b005b3480156102d7575f80fd5b506102e06110a7565b6040516102ed9190613e82565b60405180910390f35b348015610301575f80fd5b5061030a6110cc565b6040516103179190613c42565b60405180910390f35b61033a60048036038101906103359190613e9b565b6110f4565b005b348015610347575f80fd5b50610350611109565b60405161035d9190613f3f565b60405180910390f35b348015610371575f80fd5b5061037a61112e565b6040516103879190613f67565b60405180910390f35b34801561039b575f80fd5b506103a4611148565b6040516103b19190613f67565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190613f80565b61114e565b6040516103ee929190613ff1565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190614018565b611834565b60405161042a9190613ac3565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190613cda565b612227565b005b61047560048036038101906104709190613cda565b612272565b005b610491600480360381019061048c9190613cda565b6122b0565b005b34801561049e575f80fd5b506104b960048036038101906104b49190613cda565b6122d9565b6040516104c69190613d14565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f09190613b16565b6122f2565b604051610506959493929190614072565b60405180910390f35b6105176135f9565b5f828154811061052a576105296140c3565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561071757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116106ce575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6107c061234f565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6108106136af565b60045f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff16600281111561084f5761084e613b41565b5b600281111561086157610860613b41565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61090c612359565b80600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610940612359565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd2126854036109e55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6109fc8383612390565b90505f60045f8381526020019081526020015f2090505f816002015461271067ffffffffffffffff168360010154610a34919061411d565b610a3e919061418b565b90505f610a4a836123c2565b905081811115610b3f575f8282610a6191906141bb565b90505f61271067ffffffffffffffff16856002015483610a81919061411d565b610a8b919061418b565b9050610a9785826125c8565b80856001015410610ac15780856001015f828254610ab591906141bb565b92505081905550610acb565b5f85600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687897f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610b349190613d14565b60405180910390a450505b505050503868929eee149b4bd21268555050565b610b5b612359565b610b645f6127a9565b565b3068929eee149b4bd212685403610b845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610ba457610ba36140c3565b5b905f5260205f20906008020190505f610bbd8888612390565b90505f60045f8381526020019081526020015f209050826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8588886040518463ffffffff1660e01b8152600401610c3393929190614248565b602060405180830381865afa158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7291906142ad565b610ca8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b69008a8a878a8a6040518663ffffffff1660e01b8152600401610d0c9594939291906142d8565b6020604051808303815f875af1158015610d28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4c91906142ad565b610d82576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ddf575f610de9565b610de8826123c2565b5b9050836004018981548110610e0157610e006140c3565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8689896040518463ffffffff1660e01b8152600401610e6593929190614248565b6020604051808303815f875af1158015610e81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea591906142ad565b610eea578487876040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610ee193929190614248565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f47575f610f51565b610f50836123c2565b5b90505f818311610f61575f610f6e565b8183610f6d91906141bb565b5b90505f61271067ffffffffffffffff16856002015483610f8e919061411d565b610f98919061418b565b90505f81111561103857610fac85826125c8565b80856001015f828254610fbf91906141bb565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c8e7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161102f9190613d14565b60405180910390a45b8773ffffffffffffffffffffffffffffffffffffffff168c8e7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478e8e8e60405161108493929190614248565b60405180910390a4505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b611102858585858533610b66565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900467ffffffffffffffff1681565b61271081565b5f803068929eee149b4bd21268540361116e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061118e5761118d6140c3565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561137b57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611332575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61148a8686612390565b90505f60045f8381526020019081526020015f2090505f89898101906114b091906144af565b90505f81602001518060200190518101906114cb919061450a565b90505f61271067ffffffffffffffff168460020154836114eb919061411d565b6114f5919061418b565b90505f8111156116f4576001600281111561151357611512613b41565b5b845f015f9054906101000a900460ff16600281111561153557611534613b41565b5b148061157357505f600281111561154f5761154e613b41565b5b845f015f9054906101000a900460ff16600281111561157157611570613b41565b5b145b156115ce576115c9835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661286f9092919063ffffffff16565b6116a0565b6002808111156115e1576115e0613b41565b5b845f015f9054906101000a900460ff16600281111561160357611602613b41565b5b0361169f57835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016116719493929190614558565b5f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b505050505b5b825f015173ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516116eb9190613d14565b60405180910390a45b5f8087608001518b8151811061170d5761170c6140c3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016117419190614648565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161176c91906146a0565b60408051808303815f875af1158015611787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ab91906146d4565b915091505f82036117f757338e8e6040517f9ecd71a90000000000000000000000000000000000000000000000000000000081526004016117ee93929190614248565b60405180910390fd5b82866001015f82825461180a91906141bb565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b61183c6135f9565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611930575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b81526004016118ef9190613c42565b602060405180830381865afa15801561190a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061192e91906142ad565b155b15611967576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd2126854036119855763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6119de85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506128b8565b8060200190518101906119f19190614a72565b90506119ff815f0151612951565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a00151600360149054906101000a900467ffffffffffffffff16611ad09190614ab9565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611b367fe67157950000000000000000000000000000000000000000000000000000000083602001516001612a2c565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ba67fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612a2c565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611bfd8260800151835f01518460a00151612a4e565b816004019080519060200190611c14929190613701565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614611c8557611c807f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001612a2c565b611d6e565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611d009190614b2e565b602060405180830381865afa158015611d1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3f91906142ad565b611d49575f611d6d565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611e64577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611e5b929190614b47565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611ee891906141bb565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611f8d9493929190614b6e565b60405180910390a480604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561217757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161212e575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b61222f612359565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61227a612359565b63389a75e1600c52805f526020600c2080544211156122a057636f5e88185f526004601cfd5b5f8155506122ad816127a9565b50565b6122b8612359565b8060601b6122cd57637448fbae5f526004601cfd5b6122d6816127a9565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6004602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461238e576382b429005f526004601cfd5b565b5f82826040516020016123a4929190614bd1565b60405160208183030381529060405280519060200120905092915050565b5f600160028111156123d7576123d6613b41565b5b825f015f9054906101000a900460ff1660028111156123f9576123f8613b41565b5b148061243757505f600281111561241357612412613b41565b5b825f015f9054906101000a900460ff16600281111561243557612434613b41565b5b145b156124de57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124989190613c42565b602060405180830381865afa1580156124b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d7919061450a565b90506125c3565b6002808111156124f1576124f0613b41565b5b825f015f9054906101000a900460ff16600281111561251357612512613b41565b5b036125bf57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084600301546040518363ffffffff1660e01b8152600401612579929190614bfc565b602060405180830381865afa158015612594573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125b8919061450a565b90506125c3565b5f90505b919050565b600160028111156125dc576125db613b41565b5b825f015f9054906101000a900460ff1660028111156125fe576125fd613b41565b5b148061263c57505f600281111561261857612617613b41565b5b825f015f9054906101000a900460ff16600281111561263a57612639613b41565b5b145b156126b5576126b060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661286f9092919063ffffffff16565b6127a5565b6002808111156126c8576126c7613b41565b5b825f015f9054906101000a900460ff1660028111156126ea576126e9613b41565b5b036127a457815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b81526004016127769493929190614558565b5f604051808303815f87803b15801561278d575f80fd5b505af115801561279f573d5f803e3d5ffd5b505050505b5b5050565b6127b1612f69565b15612816577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061286c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166128af576390b8ec185f526004601cfd5b5f603452505050565b606081511561294c5760405190506020810160048301805184518501811983525b80861015612932576001860195508551601f1a80612922576001870196508651601f1a5f198652607f811161291057600181013887395b6001607f82160186019550505061292d565b808553600185019450505b6128d9565b81835260208501840385525f845260208401604052505050505b919050565b61297b7fe49cedd70000000000000000000000000000000000000000000000000000000082612f6d565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016129b49190613c42565b602060405180830381865afa1580156129cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129f391906142ad565b612a29576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612a3b848460200151612f6d565b612a458383613064565b90509392505050565b6060835167ffffffffffffffff811115612a6b57612a6a614328565b5b604051908082528060200260200182016040528015612a995781602001602082028036833780820191505090505b5090505f5b8451811015612f6157612aef7fa921670500000000000000000000000000000000000000000000000000000000868381518110612ade57612add6140c3565b5b602002602001015160200151612f6d565b848181518110612b0257612b016140c3565b5b60200260200101515f0151612b8e577fa921670500000000000000000000000000000000000000000000000000000000858281518110612b4557612b446140c3565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612b85929190614b47565b60405180910390fd5b612bd37fa921670500000000000000000000000000000000000000000000000000000000868381518110612bc557612bc46140c3565b5b60200260200101515f612a2c565b828281518110612be657612be56140c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110612c3457612c336140c3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2878481518110612c6a57612c696140c3565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612c9291906146a0565b5f60405180830381865afa158015612cac573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612cd49190614c23565b90505f815114612eb5575f80612cea8387613120565b915091508673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b8152600401612d2791906146a0565b6020604051808303815f875af1158015612d43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d6791906142ad565b612d9d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b8152600401612dd691906146a0565b6020604051808303815f875af1158015612df2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e1691906142ad565b612e4c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83806020019051810190612e619190614d1e565b9050612eb160015f80549050612e7791906141bb565b868360200151858b67ffffffffffffffff16865f01518f8c81518110612ea057612e9f6140c3565b5b602002602001015160400151613419565b5050505b828281518110612ec857612ec76140c3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91878481518110612efe57612efd6140c3565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612f2691906146a0565b5f604051808303815f87803b158015612f3d575f80fd5b505af1158015612f4f573d5f803e3d5ffd5b50505050508080600101915050612a9e565b509392505050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061301c57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401612fdb9190614b2e565b602060405180830381865afa158015612ff6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301a91906142ad565b155b156130605781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401613057929190614b47565b60405180910390fd5b5050565b5f825f015161307757826020015161309b565b61309a836020015173ffffffffffffffffffffffffffffffffffffffff16613596565b5b9050825f015180156130aa5750815b1561311a578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016130ec91906146a0565b5f604051808303815f87803b158015613103575f80fd5b505af1158015613115573d5f803e3d5ffd5b505050505b92915050565b60605f80848060200190518101906131389190614d1e565b90505f600360149054906101000a900467ffffffffffffffff168561315d9190614ab9565b90506001600281111561317357613172613b41565b5b825f0151600281111561318957613188613b41565b5b14806131bb57505f60028111156131a3576131a2613b41565b5b825f015160028111156131b9576131b8613b41565b5b145b156132af575f82606001518060200190518101906131d99190614d9e565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f0151613202919061411d565b61320c919061418b565b90505f6040518060200160405280838152509050806040516020016132319190614de3565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016132919190614e5c565b60405160208183030381529060405282965096505050505050613412565b6002808111156132c2576132c1613b41565b5b825f015160028111156132d8576132d7613b41565b5b036133e0575f82606001518060200190518101906132f69190614ef9565b90505f61271067ffffffffffffffff168367ffffffffffffffff168360200151613320919061411d565b61332a919061418b565b90505f6040518060600160405280845f0151815260200183815260200184604001518152509050806040516020016133629190614f8d565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016133c29190614e5c565b60405160208183030381529060405282965096505050505050613412565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561342d5761342c613b41565b5b8360028111156134405761343f613b41565b5b0361345f57818060200190518101906134599190614fad565b50809150505b5f6040518060a0016040528085600281111561347e5761347d613b41565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff166134d19190615007565b81526020018381525090508060045f6134ea8c8c612390565b81526020019081526020015f205f820151815f015f6101000a81548160ff0219169083600281111561351f5761351e613b41565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6135a15f836135a8565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806135ef5763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f60028111156136cd576136cc613b41565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613777579160200282015b82811115613776578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061371f565b5b5090506137849190613788565b5090565b5b8082111561379f575f815f905550600101613789565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6137c6816137b4565b81146137d0575f80fd5b50565b5f813590506137e1816137bd565b92915050565b5f602082840312156137fc576137fb6137ac565b5b5f613809848285016137d3565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61385461384f61384a84613812565b613831565b613812565b9050919050565b5f6138658261383a565b9050919050565b5f6138768261385b565b9050919050565b6138868161386c565b82525050565b5f6138968261385b565b9050919050565b6138a68161388c565b82525050565b5f6138b68261385b565b9050919050565b6138c6816138ac565b82525050565b5f6138d68261383a565b9050919050565b5f6138e7826138cc565b9050919050565b6138f7816138dd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6139308261385b565b9050919050565b61394081613926565b82525050565b5f6139518383613937565b60208301905092915050565b5f602082019050919050565b5f613973826138fd565b61397d8185613907565b935061398883613917565b805f5b838110156139b857815161399f8882613946565b97506139aa8361395d565b92505060018101905061398b565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b6139e1816139c5565b82525050565b6139f0816137b4565b82525050565b5f613a0082613812565b9050919050565b613a10816139f6565b82525050565b5f61010083015f830151613a2c5f86018261387d565b506020830151613a3f602086018261389d565b506040830151613a5260408601826138bd565b506060830151613a6560608601826138ee565b5060808301518482036080860152613a7d8282613969565b91505060a0830151613a9260a08601826139d8565b5060c0830151613aa560c08601826139e7565b5060e0830151613ab860e0860182613a07565b508091505092915050565b5f6020820190508181035f830152613adb8184613a16565b905092915050565b5f819050919050565b613af581613ae3565b8114613aff575f80fd5b50565b5f81359050613b1081613aec565b92915050565b5f60208284031215613b2b57613b2a6137ac565b5b5f613b3884828501613b02565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110613b7f57613b7e613b41565b5b50565b5f819050613b8f82613b6e565b919050565b5f613b9e82613b82565b9050919050565b613bae81613b94565b82525050565b60a082015f820151613bc85f850182613ba5565b506020820151613bdb6020850182613a07565b506040820151613bee60408501826139e7565b506060820151613c0160608501826139e7565b506080820151613c1460808501826139e7565b50505050565b5f60a082019050613c2d5f830184613bb4565b92915050565b613c3c816139f6565b82525050565b5f602082019050613c555f830184613c33565b92915050565b613c64816139c5565b8114613c6e575f80fd5b50565b5f81359050613c7f81613c5b565b92915050565b5f60208284031215613c9a57613c996137ac565b5b5f613ca784828501613c71565b91505092915050565b613cb9816139f6565b8114613cc3575f80fd5b50565b5f81359050613cd481613cb0565b92915050565b5f60208284031215613cef57613cee6137ac565b5b5f613cfc84828501613cc6565b91505092915050565b613d0e816137b4565b82525050565b5f602082019050613d275f830184613d05565b92915050565b5f8060408385031215613d4357613d426137ac565b5b5f613d50858286016137d3565b9250506020613d61858286016137d3565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613d8c57613d8b613d6b565b5b8235905067ffffffffffffffff811115613da957613da8613d6f565b5b602083019150836001820283011115613dc557613dc4613d73565b5b9250929050565b5f805f805f8060a08789031215613de657613de56137ac565b5b5f613df389828a016137d3565b9650506020613e0489828a016137d3565b9550506040613e1589828a01613cc6565b945050606087013567ffffffffffffffff811115613e3657613e356137b0565b5b613e4289828a01613d77565b93509350506080613e5589828a01613cc6565b9150509295509295509295565b5f613e6c8261385b565b9050919050565b613e7c81613e62565b82525050565b5f602082019050613e955f830184613e73565b92915050565b5f805f805f60808688031215613eb457613eb36137ac565b5b5f613ec1888289016137d3565b9550506020613ed2888289016137d3565b9450506040613ee388828901613cc6565b935050606086013567ffffffffffffffff811115613f0457613f036137b0565b5b613f1088828901613d77565b92509250509295509295909350565b5f613f298261385b565b9050919050565b613f3981613f1f565b82525050565b5f602082019050613f525f830184613f30565b92915050565b613f61816139c5565b82525050565b5f602082019050613f7a5f830184613f58565b92915050565b5f805f8060608587031215613f9857613f976137ac565b5b5f85013567ffffffffffffffff811115613fb557613fb46137b0565b5b613fc187828801613d77565b94509450506020613fd4878288016137d3565b9250506040613fe5878288016137d3565b91505092959194509250565b5f6040820190506140045f830185613d05565b6140116020830184613c33565b9392505050565b5f806020838503121561402e5761402d6137ac565b5b5f83013567ffffffffffffffff81111561404b5761404a6137b0565b5b61405785828601613d77565b92509250509250929050565b61406c81613b94565b82525050565b5f60a0820190506140855f830188614063565b6140926020830187613c33565b61409f6040830186613d05565b6140ac6060830185613d05565b6140b96080830184613d05565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614127826137b4565b9150614132836137b4565b9250828202614140816137b4565b91508282048414831517614157576141566140f0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614195826137b4565b91506141a0836137b4565b9250826141b0576141af61415e565b5b828204905092915050565b5f6141c5826137b4565b91506141d0836137b4565b92508282039050818111156141e8576141e76140f0565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61422783856141ee565b93506142348385846141fe565b61423d8361420c565b840190509392505050565b5f60408201905061425b5f830186613c33565b818103602083015261426e81848661421c565b9050949350505050565b5f8115159050919050565b61428c81614278565b8114614296575f80fd5b50565b5f815190506142a781614283565b92915050565b5f602082840312156142c2576142c16137ac565b5b5f6142cf84828501614299565b91505092915050565b5f6080820190506142eb5f830188613d05565b6142f86020830187613d05565b6143056040830186613c33565b818103606083015261431881848661421c565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61435e8261420c565b810181811067ffffffffffffffff8211171561437d5761437c614328565b5b80604052505050565b5f61438f6137a3565b905061439b8282614355565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156143c2576143c1614328565b5b6143cb8261420c565b9050602081019050919050565b5f6143ea6143e5846143a8565b614386565b905082815260208101848484011115614406576144056143a4565b5b6144118482856141fe565b509392505050565b5f82601f83011261442d5761442c613d6b565b5b813561443d8482602086016143d8565b91505092915050565b5f6040828403121561445b5761445a614324565b5b6144656040614386565b90505f61447484828501613cc6565b5f83015250602082013567ffffffffffffffff811115614497576144966143a0565b5b6144a384828501614419565b60208301525092915050565b5f602082840312156144c4576144c36137ac565b5b5f82013567ffffffffffffffff8111156144e1576144e06137b0565b5b6144ed84828501614446565b91505092915050565b5f81519050614504816137bd565b92915050565b5f6020828403121561451f5761451e6137ac565b5b5f61452c848285016144f6565b91505092915050565b50565b5f6145435f836141ee565b915061454e82614535565b5f82019050919050565b5f60a08201905061456b5f830187613c33565b6145786020830186613c33565b6145856040830185613d05565b6145926060830184613d05565b81810360808301526145a381614538565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6145e0826145ae565b6145ea81856145b8565b93506145fa8185602086016145c8565b6146038161420c565b840191505092915050565b5f604083015f8301516146235f860182613a07565b506020830151848203602086015261463b82826145d6565b9150508091505092915050565b5f6020820190508181035f830152614660818461460e565b905092915050565b5f614672826145ae565b61467c81856141ee565b935061468c8185602086016145c8565b6146958161420c565b840191505092915050565b5f6020820190508181035f8301526146b88184614668565b905092915050565b5f815190506146ce81613cb0565b92915050565b5f80604083850312156146ea576146e96137ac565b5b5f6146f7858286016144f6565b9250506020614708858286016146c0565b9150509250929050565b5f61471c82613812565b9050919050565b5f61472d82614712565b9050919050565b61473d81614723565b8114614747575f80fd5b50565b5f8151905061475881614734565b92915050565b5f61477061476b846143a8565b614386565b90508281526020810184848401111561478c5761478b6143a4565b5b6147978482856145c8565b509392505050565b5f82601f8301126147b3576147b2613d6b565b5b81516147c384826020860161475e565b91505092915050565b5f606082840312156147e1576147e0614324565b5b6147eb6060614386565b90505f6147fa84828501614299565b5f83015250602061480d848285016146c0565b602083015250604082015167ffffffffffffffff811115614831576148306143a0565b5b61483d8482850161479f565b60408301525092915050565b5f67ffffffffffffffff82111561486357614862614328565b5b602082029050602081019050919050565b5f61488661488184614849565b614386565b905080838252602082019050602084028301858111156148a9576148a8613d73565b5b835b818110156148f057805167ffffffffffffffff8111156148ce576148cd613d6b565b5b8086016148db89826147cc565b855260208501945050506020810190506148ab565b5050509392505050565b5f82601f83011261490e5761490d613d6b565b5b815161491e848260208601614874565b91505092915050565b5f8151905061493581613c5b565b92915050565b5f610100828403121561495157614950614324565b5b61495c610100614386565b90505f61496b8482850161474a565b5f83015250602082015167ffffffffffffffff81111561498e5761498d6143a0565b5b61499a848285016147cc565b602083015250604082015167ffffffffffffffff8111156149be576149bd6143a0565b5b6149ca848285016147cc565b604083015250606082015167ffffffffffffffff8111156149ee576149ed6143a0565b5b6149fa848285016147cc565b606083015250608082015167ffffffffffffffff811115614a1e57614a1d6143a0565b5b614a2a848285016148fa565b60808301525060a0614a3e84828501614927565b60a08301525060c0614a52848285016144f6565b60c08301525060e0614a66848285016146c0565b60e08301525092915050565b5f60208284031215614a8757614a866137ac565b5b5f82015167ffffffffffffffff811115614aa457614aa36137b0565b5b614ab08482850161493b565b91505092915050565b5f614ac3826139c5565b9150614ace836139c5565b9250828201905067ffffffffffffffff811115614aee57614aed6140f0565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614b2881614af4565b82525050565b5f602082019050614b415f830184614b1f565b92915050565b5f604082019050614b5a5f830185614b1f565b614b676020830184613c33565b9392505050565b5f608082019050614b815f830187613d05565b614b8e6020830186613c33565b614b9b6040830185613c33565b614ba86060830184613c33565b95945050505050565b5f819050919050565b614bcb614bc6826137b4565b614bb1565b82525050565b5f614bdc8285614bba565b602082019150614bec8284614bba565b6020820191508190509392505050565b5f604082019050614c0f5f830185613c33565b614c1c6020830184613d05565b9392505050565b5f60208284031215614c3857614c376137ac565b5b5f82015167ffffffffffffffff811115614c5557614c546137b0565b5b614c618482850161479f565b91505092915050565b60038110614c76575f80fd5b50565b5f81519050614c8781614c6a565b92915050565b5f60808284031215614ca257614ca1614324565b5b614cac6080614386565b90505f614cbb84828501614c79565b5f830152506020614cce848285016146c0565b6020830152506040614ce2848285016146c0565b604083015250606082015167ffffffffffffffff811115614d0657614d056143a0565b5b614d128482850161479f565b60608301525092915050565b5f60208284031215614d3357614d326137ac565b5b5f82015167ffffffffffffffff811115614d5057614d4f6137b0565b5b614d5c84828501614c8d565b91505092915050565b5f60208284031215614d7a57614d79614324565b5b614d846020614386565b90505f614d93848285016144f6565b5f8301525092915050565b5f60208284031215614db357614db26137ac565b5b5f614dc084828501614d65565b91505092915050565b602082015f820151614ddd5f8501826139e7565b50505050565b5f602082019050614df65f830184614dc9565b92915050565b5f608083015f830151614e115f860182613ba5565b506020830151614e246020860182613a07565b506040830151614e376040860182613a07565b5060608301518482036060860152614e4f82826145d6565b9150508091505092915050565b5f6020820190508181035f830152614e748184614dfc565b905092915050565b5f60608284031215614e9157614e90614324565b5b614e9b6060614386565b90505f614eaa848285016144f6565b5f830152506020614ebd848285016144f6565b602083015250604082015167ffffffffffffffff811115614ee157614ee06143a0565b5b614eed8482850161479f565b60408301525092915050565b5f60208284031215614f0e57614f0d6137ac565b5b5f82015167ffffffffffffffff811115614f2b57614f2a6137b0565b5b614f3784828501614e7c565b91505092915050565b5f606083015f830151614f555f8601826139e7565b506020830151614f6860208601826139e7565b5060408301518482036040860152614f8082826145d6565b9150508091505092915050565b5f6020820190508181035f830152614fa58184614f40565b905092915050565b5f8060408385031215614fc357614fc26137ac565b5b5f614fd0858286016144f6565b925050602083015167ffffffffffffffff811115614ff157614ff06137b0565b5b614ffd8582860161479f565b9150509250929050565b5f615011826137b4565b915061501c836137b4565b9250828201905080821115615034576150336140f0565b5b9291505056fea2646970667358221220b1b3b1a29500988dc5a93c87996e3219d65576d3c8fd5df25480f04dcf05ceaf64736f6c634300081a0033";
|
|
30
31
|
function D(t) {
|
|
31
32
|
const b = t.state.current, f = t.state.connections.get(b), e = f == null ? void 0 : f.accounts, a = e == null ? void 0 : e[0], c = t.chains.find((n) => n.id === (f == null ? void 0 : f.chainId)), d = t.state.status;
|
|
32
33
|
switch (d) {
|
|
@@ -84,7 +85,7 @@ function D(t) {
|
|
|
84
85
|
};
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
|
-
function
|
|
88
|
+
function Vf(t) {
|
|
88
89
|
return t.state.chainId;
|
|
89
90
|
}
|
|
90
91
|
function N(t, b, f) {
|
|
@@ -94,7 +95,7 @@ function N(t, b, f) {
|
|
|
94
95
|
const a = t[f];
|
|
95
96
|
return typeof a == "function" ? a : (c) => b(t, c);
|
|
96
97
|
}
|
|
97
|
-
const
|
|
98
|
+
const Tf = "2.13.8", qf = () => `@wagmi/core@${Tf}`;
|
|
98
99
|
var O = function(t, b, f, e) {
|
|
99
100
|
if (f === "a" && !e) throw new TypeError("Private accessor was defined without a getter");
|
|
100
101
|
if (typeof b == "function" ? t !== b || !e : !b.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
@@ -105,7 +106,7 @@ class v extends Error {
|
|
|
105
106
|
return "https://wagmi.sh/core";
|
|
106
107
|
}
|
|
107
108
|
get version() {
|
|
108
|
-
return
|
|
109
|
+
return qf();
|
|
109
110
|
}
|
|
110
111
|
constructor(b, f = {}) {
|
|
111
112
|
var c;
|
|
@@ -155,7 +156,7 @@ class v extends Error {
|
|
|
155
156
|
I = /* @__PURE__ */ new WeakSet(), S = function t(b, f) {
|
|
156
157
|
return f != null && f(b) ? b : b.cause ? O(this, I, "m", t).call(this, b.cause, f) : b;
|
|
157
158
|
};
|
|
158
|
-
class
|
|
159
|
+
class zf extends v {
|
|
159
160
|
constructor() {
|
|
160
161
|
super("Connector not connected."), Object.defineProperty(this, "name", {
|
|
161
162
|
enumerable: !0,
|
|
@@ -165,7 +166,7 @@ class Vf extends v {
|
|
|
165
166
|
});
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
|
-
class
|
|
169
|
+
class Gf extends v {
|
|
169
170
|
constructor({ address: b, connector: f }) {
|
|
170
171
|
super(`Account "${b}" not found for connector "${f.name}".`), Object.defineProperty(this, "name", {
|
|
171
172
|
enumerable: !0,
|
|
@@ -175,7 +176,7 @@ class qf extends v {
|
|
|
175
176
|
});
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
|
-
class
|
|
179
|
+
class Wf extends v {
|
|
179
180
|
constructor({ connectionChainId: b, connectorChainId: f }) {
|
|
180
181
|
super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${b}).`, {
|
|
181
182
|
metaMessages: [
|
|
@@ -190,7 +191,7 @@ class zf extends v {
|
|
|
190
191
|
});
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
|
-
class
|
|
194
|
+
class kf extends v {
|
|
194
195
|
constructor({ connector: b }) {
|
|
195
196
|
super(`Connector "${b.name}" unavailable while reconnecting.`, {
|
|
196
197
|
details: [
|
|
@@ -206,12 +207,12 @@ class Gf extends v {
|
|
|
206
207
|
});
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
|
-
async function
|
|
210
|
+
async function M(t, b = {}) {
|
|
210
211
|
let f;
|
|
211
212
|
if (b.connector) {
|
|
212
213
|
const { connector: s } = b;
|
|
213
214
|
if (t.state.status === "reconnecting" && !s.getAccounts && !s.getChainId)
|
|
214
|
-
throw new
|
|
215
|
+
throw new kf({ connector: s });
|
|
215
216
|
const [w, g] = await Promise.all([
|
|
216
217
|
s.getAccounts(),
|
|
217
218
|
s.getChainId()
|
|
@@ -224,19 +225,19 @@ async function p(t, b = {}) {
|
|
|
224
225
|
} else
|
|
225
226
|
f = t.state.connections.get(t.state.current);
|
|
226
227
|
if (!f)
|
|
227
|
-
throw new
|
|
228
|
+
throw new zf();
|
|
228
229
|
const e = b.chainId ?? f.chainId, a = await f.connector.getChainId();
|
|
229
230
|
if (a !== f.chainId)
|
|
230
|
-
throw new
|
|
231
|
+
throw new Wf({
|
|
231
232
|
connectionChainId: f.chainId,
|
|
232
233
|
connectorChainId: a
|
|
233
234
|
});
|
|
234
235
|
const c = f.connector;
|
|
235
236
|
if (c.getClient)
|
|
236
237
|
return c.getClient({ chainId: e });
|
|
237
|
-
const d =
|
|
238
|
-
if (d.address =
|
|
239
|
-
throw new
|
|
238
|
+
const d = jf(b.account ?? f.accounts[0]);
|
|
239
|
+
if (d.address = pf(d.address), b.account && !f.accounts.some((s) => s.toLowerCase() === d.address.toLowerCase()))
|
|
240
|
+
throw new Gf({
|
|
240
241
|
address: d.address,
|
|
241
242
|
connector: c
|
|
242
243
|
});
|
|
@@ -251,11 +252,11 @@ async function p(t, b = {}) {
|
|
|
251
252
|
async function Uf(t, b) {
|
|
252
253
|
const { abi: f, chainId: e, connector: a, ...c } = b;
|
|
253
254
|
let d;
|
|
254
|
-
b.account ? d = b.account : d = (await
|
|
255
|
+
b.account ? d = b.account : d = (await M(t, {
|
|
255
256
|
chainId: e,
|
|
256
257
|
connector: a
|
|
257
258
|
})).account;
|
|
258
|
-
const n = t.getClient({ chainId: e }), i = N(n,
|
|
259
|
+
const n = t.getClient({ chainId: e }), i = N(n, Mf, "simulateContract"), { result: s, request: w } = await i({ ...c, abi: f, account: d });
|
|
259
260
|
return {
|
|
260
261
|
chainId: n.chain.id,
|
|
261
262
|
result: s,
|
|
@@ -265,7 +266,7 @@ async function Uf(t, b) {
|
|
|
265
266
|
async function F(t, b) {
|
|
266
267
|
const { account: f, chainId: e, connector: a, __mode: c, ...d } = b;
|
|
267
268
|
let n;
|
|
268
|
-
typeof f == "object" && f.type === "local" ? n = t.getClient({ chainId: e }) : n = await
|
|
269
|
+
typeof f == "object" && f.type === "local" ? n = t.getClient({ chainId: e }) : n = await M(t, { account: f, chainId: e, connector: a });
|
|
269
270
|
const { connector: i } = D(t);
|
|
270
271
|
let s;
|
|
271
272
|
if (c === "prepared" || i != null && i.supportsSimulation)
|
|
@@ -278,16 +279,16 @@ async function F(t, b) {
|
|
|
278
279
|
});
|
|
279
280
|
s = o;
|
|
280
281
|
}
|
|
281
|
-
return await N(n,
|
|
282
|
+
return await N(n, $f, "writeContract")({
|
|
282
283
|
...s,
|
|
283
284
|
...f ? { account: f } : {},
|
|
284
285
|
chain: e ? { id: e } : null
|
|
285
286
|
});
|
|
286
287
|
}
|
|
287
|
-
function
|
|
288
|
+
function Hf(t) {
|
|
288
289
|
return t.address !== void 0 && typeof t.address == "object" ? (b, f) => {
|
|
289
290
|
var d;
|
|
290
|
-
const e =
|
|
291
|
+
const e = Vf(b), a = D(b);
|
|
291
292
|
let c;
|
|
292
293
|
return f.chainId ? c = f.chainId : f.account && f.account === a.address || f.account === void 0 ? c = a.chainId : c = e, F(b, {
|
|
293
294
|
...f,
|
|
@@ -302,17 +303,17 @@ function kf(t) {
|
|
|
302
303
|
abi: t.abi
|
|
303
304
|
});
|
|
304
305
|
}
|
|
305
|
-
const
|
|
306
|
+
const Jf = 10000n, y = {
|
|
306
307
|
31337: void 0,
|
|
307
308
|
...af
|
|
308
|
-
},
|
|
309
|
-
function
|
|
309
|
+
}, E0 = y[11155111] || m;
|
|
310
|
+
function Kf(t) {
|
|
310
311
|
return t.address;
|
|
311
312
|
}
|
|
312
|
-
function
|
|
313
|
+
function Qf(t) {
|
|
313
314
|
return t.registryAddress && t.protocolFeeReceiver;
|
|
314
315
|
}
|
|
315
|
-
const
|
|
316
|
+
const _ = class _ extends gf {
|
|
316
317
|
/**
|
|
317
318
|
* A getter that will return Boost core's static addresses by numerical chain ID
|
|
318
319
|
*
|
|
@@ -333,9 +334,9 @@ const P = class P extends hf {
|
|
|
333
334
|
* @param {({ address?: Address; } | { registryAddress: Address; protocolFeeReceiver: Address; })} param0....options
|
|
334
335
|
*/
|
|
335
336
|
constructor({ config: b, account: f, ...e }) {
|
|
336
|
-
if (
|
|
337
|
+
if (Kf(e) && e.address)
|
|
337
338
|
super({ account: f, config: b }, e.address);
|
|
338
|
-
else if (
|
|
339
|
+
else if (Qf(e))
|
|
339
340
|
super({ account: f, config: b }, [
|
|
340
341
|
e.registryAddress,
|
|
341
342
|
e.protocolFeeReceiver
|
|
@@ -364,7 +365,7 @@ const P = class P extends hf {
|
|
|
364
365
|
a.config,
|
|
365
366
|
this.addresses,
|
|
366
367
|
c
|
|
367
|
-
), i =
|
|
368
|
+
), i = Hf({
|
|
368
369
|
abi: C,
|
|
369
370
|
functionName: "createBoost",
|
|
370
371
|
address: n
|
|
@@ -381,13 +382,13 @@ const P = class P extends hf {
|
|
|
381
382
|
args: [B(s)]
|
|
382
383
|
}), g = await X(a.config, {
|
|
383
384
|
hash: w
|
|
384
|
-
}), o =
|
|
385
|
+
}), o = P({
|
|
385
386
|
abi: C,
|
|
386
387
|
eventName: "BoostCreated",
|
|
387
388
|
logs: g.logs
|
|
388
389
|
}).at(0);
|
|
389
390
|
let r = 0n;
|
|
390
|
-
if (!o) throw new
|
|
391
|
+
if (!o) throw new Ef();
|
|
391
392
|
r = o == null ? void 0 : o.args.boostId;
|
|
392
393
|
const u = await this.readBoost(r);
|
|
393
394
|
return new E({
|
|
@@ -440,13 +441,13 @@ const P = class P extends hf {
|
|
|
440
441
|
async prepareCreateBoostPayload(b, f, e, a) {
|
|
441
442
|
var g;
|
|
442
443
|
if (!e.owner && (e.owner = ((g = this._account) == null ? void 0 : g.address) || Y(a.config).address || m, e.owner === m))
|
|
443
|
-
throw new
|
|
444
|
+
throw new Rf();
|
|
444
445
|
if (!e.validator) {
|
|
445
446
|
const r = Z(a.config).filter(
|
|
446
447
|
(A) => !!this.addresses[A.id] && A.id === f
|
|
447
448
|
).at(0);
|
|
448
449
|
if (!r)
|
|
449
|
-
throw new
|
|
450
|
+
throw new Ff(
|
|
450
451
|
f,
|
|
451
452
|
Object.keys(this.addresses).map(Number)
|
|
452
453
|
);
|
|
@@ -461,9 +462,9 @@ const P = class P extends hf {
|
|
|
461
462
|
let c = m;
|
|
462
463
|
if (e.budget.address) {
|
|
463
464
|
if (c = e.budget.address, !await e.budget.isAuthorized(b))
|
|
464
|
-
throw new
|
|
465
|
+
throw new Lf(b);
|
|
465
466
|
} else
|
|
466
|
-
throw new
|
|
467
|
+
throw new Df();
|
|
467
468
|
let d = {
|
|
468
469
|
instance: m,
|
|
469
470
|
isBase: !0,
|
|
@@ -527,7 +528,7 @@ const P = class P extends hf {
|
|
|
527
528
|
const r = e.incentives.at(o);
|
|
528
529
|
if (r.address) {
|
|
529
530
|
const u = r.isBase;
|
|
530
|
-
if (!u) throw new
|
|
531
|
+
if (!u) throw new Nf(r);
|
|
531
532
|
s[o] = {
|
|
532
533
|
isBase: u,
|
|
533
534
|
instance: r.address,
|
|
@@ -581,7 +582,7 @@ const P = class P extends hf {
|
|
|
581
582
|
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
582
583
|
*/
|
|
583
584
|
async claimIncentiveRaw(b, f, e, a, c) {
|
|
584
|
-
const { request: d, result: n } = await
|
|
585
|
+
const { request: d, result: n } = await p(
|
|
585
586
|
this._config,
|
|
586
587
|
{
|
|
587
588
|
...h(
|
|
@@ -595,7 +596,7 @@ const P = class P extends hf {
|
|
|
595
596
|
...c
|
|
596
597
|
}
|
|
597
598
|
);
|
|
598
|
-
return { hash: await
|
|
599
|
+
return { hash: await x(this._config, d), result: n };
|
|
599
600
|
}
|
|
600
601
|
/**
|
|
601
602
|
* Claims one incentive for a given `Boost` on behalf of another user by `boostId` and `incentiveId`
|
|
@@ -636,7 +637,7 @@ const P = class P extends hf {
|
|
|
636
637
|
* @returns {Promise<{ hash: Hex; result: void; }>}
|
|
637
638
|
*/
|
|
638
639
|
async claimIncentiveForRaw(b, f, e, a, c, d) {
|
|
639
|
-
const { request: n, result: i } = await
|
|
640
|
+
const { request: n, result: i } = await V(
|
|
640
641
|
this._config,
|
|
641
642
|
{
|
|
642
643
|
...h(
|
|
@@ -650,7 +651,7 @@ const P = class P extends hf {
|
|
|
650
651
|
...d
|
|
651
652
|
}
|
|
652
653
|
);
|
|
653
|
-
return { hash: await
|
|
654
|
+
return { hash: await T(this._config, n), result: i };
|
|
654
655
|
}
|
|
655
656
|
/**
|
|
656
657
|
* Get a Boost by index, will return the raw on chain representation of a Boost.
|
|
@@ -678,7 +679,7 @@ const P = class P extends hf {
|
|
|
678
679
|
...f
|
|
679
680
|
});
|
|
680
681
|
} catch (a) {
|
|
681
|
-
throw (e = a == null ? void 0 : a.message) != null && e.includes("bounds") ? new
|
|
682
|
+
throw (e = a == null ? void 0 : a.message) != null && e.includes("bounds") ? new Of(String(b)) : a;
|
|
682
683
|
}
|
|
683
684
|
}
|
|
684
685
|
/**
|
|
@@ -700,11 +701,11 @@ const P = class P extends hf {
|
|
|
700
701
|
}, [s, w, g, o, r] = await Promise.all([
|
|
701
702
|
tf(i, n.action),
|
|
702
703
|
uf(i, n.budget),
|
|
703
|
-
|
|
704
|
+
Bf(i, n.validator),
|
|
704
705
|
df(i, n.allowList),
|
|
705
706
|
Promise.all(
|
|
706
707
|
n.incentives.map(
|
|
707
|
-
(u) =>
|
|
708
|
+
(u) => If(i, u)
|
|
708
709
|
)
|
|
709
710
|
)
|
|
710
711
|
]);
|
|
@@ -770,7 +771,7 @@ const P = class P extends hf {
|
|
|
770
771
|
* @returns {Promise<Address>}
|
|
771
772
|
*/
|
|
772
773
|
async createBoostAuth(b) {
|
|
773
|
-
return await
|
|
774
|
+
return await W(this._config, {
|
|
774
775
|
...h(
|
|
775
776
|
this._config,
|
|
776
777
|
this.addresses,
|
|
@@ -822,7 +823,7 @@ const P = class P extends hf {
|
|
|
822
823
|
...f
|
|
823
824
|
}
|
|
824
825
|
);
|
|
825
|
-
return { hash: await
|
|
826
|
+
return { hash: await U(this._config, e), result: a };
|
|
826
827
|
}
|
|
827
828
|
/**
|
|
828
829
|
* Get the protocol fee.
|
|
@@ -937,7 +938,7 @@ const P = class P extends hf {
|
|
|
937
938
|
async getClaimFromTransaction(b) {
|
|
938
939
|
var a;
|
|
939
940
|
const f = await ff(this._config, b);
|
|
940
|
-
return (a =
|
|
941
|
+
return (a = P({
|
|
941
942
|
abi: C,
|
|
942
943
|
eventName: "BoostClaimed",
|
|
943
944
|
logs: f.logs
|
|
@@ -968,7 +969,7 @@ const P = class P extends hf {
|
|
|
968
969
|
*/
|
|
969
970
|
async calculateProtocolFee(b, f) {
|
|
970
971
|
const e = await this.protocolFee(f);
|
|
971
|
-
return b * e /
|
|
972
|
+
return b * e / Jf;
|
|
972
973
|
}
|
|
973
974
|
/**
|
|
974
975
|
* Bound {@link PassthroughAuth} constructor that reuses the same configuration as the Boost Core instance.
|
|
@@ -1131,7 +1132,25 @@ const P = class P extends hf {
|
|
|
1131
1132
|
* @returns {ManagedBudget}
|
|
1132
1133
|
*/
|
|
1133
1134
|
ManagedBudget(b) {
|
|
1134
|
-
return new
|
|
1135
|
+
return new hf(
|
|
1136
|
+
{ config: this._config, account: this._account },
|
|
1137
|
+
b
|
|
1138
|
+
);
|
|
1139
|
+
}
|
|
1140
|
+
/**
|
|
1141
|
+
* Bound {@link ManagedBudgetWithFees} constructor that reuses the same configuration as the Boost Core instance.
|
|
1142
|
+
* Prepends the BoostCore address to the authorized list because it's structurally critical to calculating payouts.
|
|
1143
|
+
*
|
|
1144
|
+
* @example
|
|
1145
|
+
* ```ts
|
|
1146
|
+
* const budget = core.ManagedBudgetWithFees('0x') // is roughly equivalent to
|
|
1147
|
+
* const budget = new ManagedBudgetWithFees({ config: core._config, account: core._account }, '0x')
|
|
1148
|
+
* ```
|
|
1149
|
+
* @param {DeployablePayloadOrAddress<ManagedBudgetWithFeesPayload>} options
|
|
1150
|
+
* @returns {ManagedBudgetWithFees}
|
|
1151
|
+
*/
|
|
1152
|
+
ManagedBudgetWithFees(b) {
|
|
1153
|
+
return typeof b != "string" && (b.authorized = [this.assertValidAddress(), ...b.authorized], b.roles = [wf.MANAGER, ...b.roles]), new lf(
|
|
1135
1154
|
{ config: this._config, account: this._account },
|
|
1136
1155
|
b
|
|
1137
1156
|
);
|
|
@@ -1165,7 +1184,7 @@ const P = class P extends hf {
|
|
|
1165
1184
|
* @returns {VestingBudget}
|
|
1166
1185
|
*/
|
|
1167
1186
|
AllowListIncentive(b) {
|
|
1168
|
-
return new
|
|
1187
|
+
return new mf(
|
|
1169
1188
|
{ config: this._config, account: this._account },
|
|
1170
1189
|
b
|
|
1171
1190
|
);
|
|
@@ -1182,7 +1201,7 @@ const P = class P extends hf {
|
|
|
1182
1201
|
* @returns {CGDAIncentive}
|
|
1183
1202
|
*/
|
|
1184
1203
|
CGDAIncentive(b) {
|
|
1185
|
-
return new
|
|
1204
|
+
return new vf(
|
|
1186
1205
|
{ config: this._config, account: this._account },
|
|
1187
1206
|
b
|
|
1188
1207
|
);
|
|
@@ -1199,7 +1218,7 @@ const P = class P extends hf {
|
|
|
1199
1218
|
* @returns {ERC20Incentive}
|
|
1200
1219
|
*/
|
|
1201
1220
|
ERC20Incentive(b) {
|
|
1202
|
-
return new
|
|
1221
|
+
return new Cf(
|
|
1203
1222
|
{ config: this._config, account: this._account },
|
|
1204
1223
|
b
|
|
1205
1224
|
);
|
|
@@ -1235,7 +1254,7 @@ const P = class P extends hf {
|
|
|
1235
1254
|
* @returns {PointsIncentive}
|
|
1236
1255
|
*/
|
|
1237
1256
|
PointsIncentive(b) {
|
|
1238
|
-
return new
|
|
1257
|
+
return new yf(
|
|
1239
1258
|
{ config: this._config, account: this._account },
|
|
1240
1259
|
b
|
|
1241
1260
|
);
|
|
@@ -1253,7 +1272,7 @@ const P = class P extends hf {
|
|
|
1253
1272
|
* @returns {SignerValidator}
|
|
1254
1273
|
*/
|
|
1255
1274
|
SignerValidator(b, f) {
|
|
1256
|
-
return new
|
|
1275
|
+
return new Pf(
|
|
1257
1276
|
{ config: this._config, account: this._account },
|
|
1258
1277
|
b,
|
|
1259
1278
|
f
|
|
@@ -1272,7 +1291,7 @@ const P = class P extends hf {
|
|
|
1272
1291
|
* @returns {LimitedSignerValidator}
|
|
1273
1292
|
*/
|
|
1274
1293
|
LimitedSignerValidator(b, f) {
|
|
1275
|
-
return new
|
|
1294
|
+
return new _f(
|
|
1276
1295
|
{ config: this._config, account: this._account },
|
|
1277
1296
|
b,
|
|
1278
1297
|
f
|
|
@@ -1291,7 +1310,7 @@ const P = class P extends hf {
|
|
|
1291
1310
|
* @returns {ERC20VariableCrtieriaIncentive}
|
|
1292
1311
|
* */
|
|
1293
1312
|
ERC20VariableCriteriaIncentive(b, f) {
|
|
1294
|
-
return new
|
|
1313
|
+
return new Af(
|
|
1295
1314
|
{ config: this._config, account: this._account },
|
|
1296
1315
|
b,
|
|
1297
1316
|
f
|
|
@@ -1310,7 +1329,7 @@ const P = class P extends hf {
|
|
|
1310
1329
|
* @returns {ERC20VariableIncentive}
|
|
1311
1330
|
*/
|
|
1312
1331
|
ERC20VariableIncentive(b, f) {
|
|
1313
|
-
return new
|
|
1332
|
+
return new Sf(
|
|
1314
1333
|
{ config: this._config, account: this._account },
|
|
1315
1334
|
b,
|
|
1316
1335
|
f
|
|
@@ -1331,19 +1350,19 @@ const P = class P extends hf {
|
|
|
1331
1350
|
);
|
|
1332
1351
|
return {
|
|
1333
1352
|
abi: C,
|
|
1334
|
-
bytecode:
|
|
1353
|
+
bytecode: xf,
|
|
1335
1354
|
args: e,
|
|
1336
1355
|
...this.optionallyAttachAccount(a.account)
|
|
1337
1356
|
};
|
|
1338
1357
|
}
|
|
1339
1358
|
};
|
|
1340
|
-
|
|
1341
|
-
let L =
|
|
1359
|
+
_.addresses = y;
|
|
1360
|
+
let L = _;
|
|
1342
1361
|
export {
|
|
1343
|
-
|
|
1362
|
+
E0 as BOOST_CORE_ADDRESS,
|
|
1344
1363
|
y as BOOST_CORE_ADDRESSES,
|
|
1345
1364
|
L as BoostCore,
|
|
1346
|
-
|
|
1365
|
+
Jf as FEE_DENOMINATOR,
|
|
1347
1366
|
C as boostCoreAbi
|
|
1348
1367
|
};
|
|
1349
1368
|
//# sourceMappingURL=BoostCore.js.map
|