@boostxyz/sdk 5.2.1 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +10 -0
  2. package/dist/Actions/Action.cjs +1 -1
  3. package/dist/Actions/Action.js +1 -1
  4. package/dist/Actions/EventAction.cjs +1 -1
  5. package/dist/Actions/EventAction.cjs.map +1 -1
  6. package/dist/Actions/EventAction.d.ts +84 -41
  7. package/dist/Actions/EventAction.d.ts.map +1 -1
  8. package/dist/Actions/EventAction.js +1866 -378
  9. package/dist/Actions/EventAction.js.map +1 -1
  10. package/dist/AllowLists/AllowList.cjs +1 -1
  11. package/dist/AllowLists/AllowList.js +2 -2
  12. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  13. package/dist/AllowLists/SimpleAllowList.js +2 -2
  14. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  15. package/dist/AllowLists/SimpleDenyList.js +3 -3
  16. package/dist/Auth/PassthroughAuth.cjs +1 -1
  17. package/dist/Auth/PassthroughAuth.js +1 -1
  18. package/dist/BoostCore.cjs +2 -2
  19. package/dist/BoostCore.cjs.map +1 -1
  20. package/dist/BoostCore.d.ts +42 -1
  21. package/dist/BoostCore.d.ts.map +1 -1
  22. package/dist/BoostCore.js +360 -318
  23. package/dist/BoostCore.js.map +1 -1
  24. package/dist/BoostRegistry.cjs +1 -1
  25. package/dist/BoostRegistry.js +2 -2
  26. package/dist/{Budget-N0YEfSt2.cjs → Budget-AoNx7uFd.cjs} +2 -2
  27. package/dist/{Budget-N0YEfSt2.cjs.map → Budget-AoNx7uFd.cjs.map} +1 -1
  28. package/dist/{Budget-C0SMvfEl.js → Budget-DYIV9iNK.js} +3 -3
  29. package/dist/{Budget-C0SMvfEl.js.map → Budget-DYIV9iNK.js.map} +1 -1
  30. package/dist/Budgets/Budget.cjs +1 -1
  31. package/dist/Budgets/Budget.js +2 -2
  32. package/dist/Budgets/ManagedBudget.cjs +1 -1
  33. package/dist/Budgets/ManagedBudget.js +2 -2
  34. package/dist/Deployable/DeployableTarget.cjs +1 -1
  35. package/dist/Deployable/DeployableTarget.js +1 -1
  36. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  37. package/dist/Deployable/DeployableTargetWithRBAC.js +2 -2
  38. package/dist/Incentive-BbkfwGOb.cjs +2 -0
  39. package/dist/Incentive-BbkfwGOb.cjs.map +1 -0
  40. package/dist/{Incentive-DBZHQ9Np.js → Incentive-qlnv5kQB.js} +77 -50
  41. package/dist/Incentive-qlnv5kQB.js.map +1 -0
  42. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  43. package/dist/Incentives/AllowListIncentive.js +3 -3
  44. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  45. package/dist/Incentives/CGDAIncentive.js +2 -2
  46. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  47. package/dist/Incentives/ERC20Incentive.js +6 -6
  48. package/dist/Incentives/ERC20PeggedIncentive.d.ts +10 -1
  49. package/dist/Incentives/ERC20PeggedIncentive.d.ts.map +1 -1
  50. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  51. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +2 -2
  52. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  53. package/dist/Incentives/ERC20VariableIncentive.js +2 -2
  54. package/dist/Incentives/Incentive.cjs +1 -1
  55. package/dist/Incentives/Incentive.js +2 -2
  56. package/dist/Incentives/PointsIncentive.cjs +1 -1
  57. package/dist/Incentives/PointsIncentive.js +2 -2
  58. package/dist/{SimpleDenyList-B8QeJthf.js → SimpleDenyList-ByAr4X1r.js} +3 -3
  59. package/dist/{SimpleDenyList-B8QeJthf.js.map → SimpleDenyList-ByAr4X1r.js.map} +1 -1
  60. package/dist/{SimpleDenyList-DIb4xX3j.cjs → SimpleDenyList-CsRXJPwm.cjs} +2 -2
  61. package/dist/{SimpleDenyList-DIb4xX3j.cjs.map → SimpleDenyList-CsRXJPwm.cjs.map} +1 -1
  62. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  63. package/dist/Validators/LimitedSignerValidator.js +2 -2
  64. package/dist/Validators/SignerValidator.cjs +1 -1
  65. package/dist/Validators/SignerValidator.js +2 -2
  66. package/dist/Validators/Validator.cjs +1 -1
  67. package/dist/Validators/Validator.js +1 -1
  68. package/dist/{deployments-COxshLqt.js → deployments-D0fs26TV.js} +16 -16
  69. package/dist/{deployments-COxshLqt.js.map → deployments-D0fs26TV.js.map} +1 -1
  70. package/dist/{deployments-BGpr4ppG.cjs → deployments-DoIOqxco.cjs} +2 -2
  71. package/dist/deployments-DoIOqxco.cjs.map +1 -0
  72. package/dist/deployments.json +3 -3
  73. package/dist/errors.cjs +1 -1
  74. package/dist/errors.cjs.map +1 -1
  75. package/dist/errors.d.ts +40 -0
  76. package/dist/errors.d.ts.map +1 -1
  77. package/dist/errors.js +42 -16
  78. package/dist/errors.js.map +1 -1
  79. package/dist/{generated-ClbO_ULI.js → generated-Cyvr_Tjx.js} +446 -438
  80. package/dist/generated-Cyvr_Tjx.js.map +1 -0
  81. package/dist/{generated-CRD9XfOT.cjs → generated-DtYPHhtX.cjs} +2 -2
  82. package/dist/generated-DtYPHhtX.cjs.map +1 -0
  83. package/dist/index.cjs +1 -1
  84. package/dist/index.js +160 -155
  85. package/package.json +1 -1
  86. package/src/Actions/EventAction.test.ts +294 -3
  87. package/src/Actions/EventAction.ts +417 -154
  88. package/src/BoostCore.test.ts +51 -3
  89. package/src/BoostCore.ts +73 -0
  90. package/src/Incentives/ERC20PeggedIncentive.ts +33 -4
  91. package/src/errors.ts +50 -0
  92. package/dist/Incentive-BpZePiOD.cjs +0 -2
  93. package/dist/Incentive-BpZePiOD.cjs.map +0 -1
  94. package/dist/Incentive-DBZHQ9Np.js.map +0 -1
  95. package/dist/deployments-BGpr4ppG.cjs.map +0 -1
  96. package/dist/generated-CRD9XfOT.cjs.map +0 -1
  97. package/dist/generated-ClbO_ULI.js.map +0 -1
package/dist/BoostCore.js CHANGED
@@ -1,40 +1,40 @@
1
- import { I as C, cl as j, cm as x, cn as T, co as z, cp as q, cq as G, cr as p, cs as U, ct as W, cu as k, cv as H, cw as Q, cx as Y, cy as J, cz as K } from "./generated-ClbO_ULI.js";
2
- import { waitForTransactionReceipt as X, getAccount as Z, getChains as ff, getTransactionReceipt as bf } from "@wagmi/core";
3
- import { createClient as ef, custom as af, zeroAddress as m, parseEventLogs as P, zeroHash as l } from "viem";
4
- import { i as tf } from "./deployments-COxshLqt.js";
5
- import { actionFromAddress as cf } from "./Actions/Action.js";
6
- import { EventAction as df } from "./Actions/EventAction.js";
7
- import { allowListFromAddress as nf, OpenAllowList as sf } from "./AllowLists/AllowList.js";
8
- import { SimpleAllowList as of } from "./AllowLists/SimpleAllowList.js";
9
- import { S as rf } from "./SimpleDenyList-B8QeJthf.js";
10
- import { PassthroughAuth as uf } from "./Auth/PassthroughAuth.js";
1
+ import { I as C, cl as j, cm as x, cn as T, co as z, cp as q, cq as k, cr as G, cs as U, ct as W, cu as H, cv as p, cw as Q, cx as Y, cy as J, cz as K, cA as X, cB as Z } from "./generated-Cyvr_Tjx.js";
2
+ import { waitForTransactionReceipt as ff, getAccount as ef, getChains as bf, getTransactionReceipt as af } from "@wagmi/core";
3
+ import { createClient as tf, custom as cf, zeroAddress as v, parseEventLogs as P, zeroHash as h, keccak256 as df, encodePacked as nf } from "viem";
4
+ import { i as sf } from "./deployments-D0fs26TV.js";
5
+ import { actionFromAddress as of } from "./Actions/Action.js";
6
+ import { EventAction as rf } from "./Actions/EventAction.js";
7
+ import { allowListFromAddress as uf, OpenAllowList as lf } from "./AllowLists/AllowList.js";
8
+ import { SimpleAllowList as hf } from "./AllowLists/SimpleAllowList.js";
9
+ import { S as gf } from "./SimpleDenyList-ByAr4X1r.js";
10
+ import { PassthroughAuth as wf } from "./Auth/PassthroughAuth.js";
11
11
  import { prepareBoostPayload as B, Boost as E } from "./Boost.js";
12
- import { b as lf, M as hf } from "./Budget-C0SMvfEl.js";
13
- import { ManagedBudget as gf } from "./Budgets/ManagedBudget.js";
14
- import { Deployable as wf } from "./Deployable/Deployable.js";
12
+ import { b as vf, M as mf } from "./Budget-DYIV9iNK.js";
13
+ import { ManagedBudget as Cf } from "./Budgets/ManagedBudget.js";
14
+ import { Deployable as Af } from "./Deployable/Deployable.js";
15
15
  import { Roles as R } 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 { i as Af, E as If, a as yf } from "./Incentive-DBZHQ9Np.js";
20
- import { ERC20VariableCriteriaIncentive as _f } from "./Incentives/ERC20VariableCriteriaIncentive.js";
21
- import { PointsIncentive as Pf } from "./Incentives/PointsIncentive.js";
22
- import { LimitedSignerValidator as Bf } from "./Validators/LimitedSignerValidator.js";
23
- import { SignerValidator as Ef } from "./Validators/SignerValidator.js";
24
- import { BoostValidatorEOA as F, validatorFromAddress as Rf } from "./Validators/Validator.js";
25
- import { BoostCoreNoIdentifierEmitted as Ff, DeployableUnknownOwnerProvidedError as Lf, InvalidProtocolChainIdError as Df, BudgetMustAuthorizeBoostCore as Nf, MustInitializeBudgetError as Of, IncentiveNotCloneableError as Sf, BoostNotFoundError as Mf } from "./errors.js";
26
- import { assertValidAddressByChainId as h } from "./utils.js";
27
- import { ERC20VariableIncentive as Vf } from "./Incentives/ERC20VariableIncentive.js";
28
- import { simulateContract as $f, writeContract as jf } from "viem/actions";
29
- import { parseAccount as xf, getAddress as Tf } from "viem/utils";
30
- const zf = "0x60806040526103e8600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550348015610064575f80fd5b5060405161589b38038061589b83398181016040528101906100869190610296565b6100958161011d60201b60201c565b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102e6565b61012b6101f960201b60201c565b156101a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101f6565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61022a82610201565b9050919050565b5f61023b82610220565b9050919050565b61024b81610231565b8114610255575f80fd5b50565b5f8151905061026681610242565b92915050565b61027581610220565b811461027f575f80fd5b50565b5f815190506102908161026c565b92915050565b5f805f606084860312156102ad576102ac6101fd565b5b5f6102ba86828701610258565b93505060206102cb86828701610282565b92505060406102dc86828701610282565b9150509250925092565b6155a8806102f35f395ff3fe6080604052600436106101b6575f3560e01c80638da5cb5b116100eb578063dd98558c11610089578063f04e283e11610063578063f04e283e1461056b578063f2fde38b14610587578063fee81cf4146105a3578063fefceca9146105df576101b6565b8063dd98558c146104ca578063e21ff73114610507578063eccc19a614610543576101b6565b8063b0e21e8a116100c5578063b0e21e8a14610424578063caa1647b1461044e578063d73792a914610476578063dd7dc9a9146104a0576101b6565b80638da5cb5b146103b45780638fe4f523146103de578063a92647dc146103fa576101b6565b80635045b866116101585780635f32c23e116101325780635f32c23e1461033c578063715018a614610364578063730f9c571461036e5780637b1039991461038a576101b6565b80635045b866146102de57806354d1f13d146103085780635edb9eb014610312576101b6565b8063346339d511610194578063346339d51461022857806339a51be51461026457806343bc42d31461028e57806346877b1a146102b6576101b6565b806313c8e2de146101ba578063219f71f0146101f6578063256929621461021e575b5f80fd5b3480156101c5575f80fd5b506101e060048036038101906101db9190613cda565b61061f565b6040516101ed9190613fb6565b60405180910390f35b348015610201575f80fd5b5061021c60048036038101906102179190614000565b6108c7565b005b610226610912565b005b348015610233575f80fd5b5061024e6004803603810190610249919061405e565b610963565b60405161025b9190614162565b60405180910390f35b34801561026f575f80fd5b50610278610a3a565b604051610285919061418a565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af91906141cd565b610a5f565b005b3480156102c1575f80fd5b506102dc60048036038101906102d79190614000565b610a93565b005b3480156102e9575f80fd5b506102f2610ade565b6040516102ff919061418a565b60405180910390f35b610310610b03565b005b34801561031d575f80fd5b50610326610b3c565b6040516103339190614207565b60405180910390f35b348015610347575f80fd5b50610362600480360381019061035d9190614220565b610b47565b005b61036c610d34565b005b610388600480360381019061038391906142bf565b610d47565b005b348015610395575f80fd5b5061039e611291565b6040516103ab9190614375565b60405180910390f35b3480156103bf575f80fd5b506103c86112b6565b6040516103d5919061418a565b60405180910390f35b6103f860048036038101906103f3919061438e565b6112de565b005b348015610405575f80fd5b5061040e6112f3565b60405161041b9190614432565b60405180910390f35b34801561042f575f80fd5b50610438611318565b604051610445919061445a565b60405180910390f35b348015610459575f80fd5b50610474600480360381019061046f91906141cd565b611332565b005b348015610481575f80fd5b5061048a6113b4565b604051610497919061445a565b60405180910390f35b3480156104ab575f80fd5b506104b46113ba565b6040516104c1919061445a565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190614473565b6113d3565b6040516104fe9291906144e4565b60405180910390f35b348015610512575f80fd5b5061052d6004803603810190610528919061450b565b611ab9565b60405161053a9190613fb6565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190614000565b6126be565b005b61058560048036038101906105809190614000565b612709565b005b6105a1600480360381019061059c9190614000565b612747565b005b3480156105ae575f80fd5b506105c960048036038101906105c49190614000565b612770565b6040516105d69190614207565b60405180910390f35b3480156105ea575f80fd5b506106056004803603810190610600919061405e565b612789565b604051610616959493929190614565565b60405180910390f35b610627613aec565b5f828154811061063a576106396145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561082757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107de575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6108cf6127e6565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61091b61281d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61096b613ba2565b60065f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff1660028111156109aa576109a9614089565b5b60028111156109bc576109bb614089565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a676127e6565b80600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610a9b6127e6565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd212685403610b655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610b7c8383612827565b90505f60065f8381526020019081526020015f2090505f808581548110610ba657610ba56145b6565b5b905f5260205f2090600802016004018481548110610bc757610bc66145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f826002015461271067ffffffffffffffff168460010154610c139190614610565b610c1d919061467e565b90505f610c2a8484612859565b905081811115610d1f575f8282610c4191906146ae565b90505f61271067ffffffffffffffff16866002015483610c619190614610565b610c6b919061467e565b9050610c778682612a60565b80866001015410610ca15780866001015f828254610c9591906146ae565b92505081905550610cab565b5f86600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16888a7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610d149190614207565b60405180910390a450505b50505050503868929eee149b4bd21268555050565b610d3c6127e6565b610d455f612c6d565b565b3068929eee149b4bd212685403610d655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610d8557610d846145b6565b5b905f5260205f20906008020190505f610d9e8888612827565b90505f60065f8381526020019081526020015f2090505f836004018981548110610dcb57610dca6145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050836002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8689896040518463ffffffff1660e01b8152600401610e559392919061473b565b602060405180830381865afa158015610e70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9491906147a0565b610eca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b6900348c8c898c8c6040518763ffffffff1660e01b8152600401610f2f9594939291906147cb565b60206040518083038185885af1158015610f4b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7091906147a0565b610fa6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611003575f61100e565b61100d8383612859565b5b90508173ffffffffffffffffffffffffffffffffffffffff1663bb1757cf878a8a6040518463ffffffff1660e01b815260040161104d9392919061473b565b6020604051808303815f875af1158015611069573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108d91906147a0565b6110d2578588886040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016110c99392919061473b565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361112f575f61113a565b6111398484612859565b5b90505f81831161114a575f611157565b818361115691906146ae565b5b90505f61271067ffffffffffffffff168660020154836111779190614610565b611181919061467e565b90505f811115611221576111958682612a60565b80866001015f8282546111a891906146ae565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516112189190614207565b60405180910390a45b8873ffffffffffffffffffffffffffffffffffffffff168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f60405161126d9392919061473b565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b6112ec858585858533610d47565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460149054906101000a900467ffffffffffffffff1681565b61133a6127e6565b61271067ffffffffffffffff168167ffffffffffffffff1610611389576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61271081565b60055f9054906101000a900467ffffffffffffffff1681565b5f803068929eee149b4bd2126854036113f35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808581548110611413576114126145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561160057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115b7575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611704576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61170f8686612827565b90505f60065f8381526020019081526020015f2090505f898981019061173591906149a2565b90505f816020015180602001905181019061175091906149fd565b90505f61271067ffffffffffffffff168460020154836117709190614610565b61177a919061467e565b90505f811115611979576001600281111561179857611797614089565b5b845f015f9054906101000a900460ff1660028111156117ba576117b9614089565b5b14806117f857505f60028111156117d4576117d3614089565b5b845f015f9054906101000a900460ff1660028111156117f6576117f5614089565b5b145b156118535761184e835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b611925565b60028081111561186657611865614089565b5b845f015f9054906101000a900460ff16600281111561188857611887614089565b5b0361192457835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016118f69493929190614a4b565b5f604051808303815f87803b15801561190d575f80fd5b505af115801561191f573d5f803e3d5ffd5b505050505b5b825f015173ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516119709190614207565b60405180910390a45b5f8087608001518b81518110611992576119916145b6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016119c69190614b3b565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016119f19190614b93565b60408051808303815f875af1158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a309190614bc7565b915091505f8203611a7c57338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611a739392919061473b565b60405180910390fd5b82866001015f828254611a8f91906146ae565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b611ac1613aec565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611bb5575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401611b74919061418a565b602060405180830381865afa158015611b8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb391906147a0565b155b15611bec576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611c0a5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611c6385858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612d7c565b806020019051810190611c769190614f65565b9050611c84815f0151612e15565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611dae578160a00151600460149054906101000a900467ffffffffffffffff16611da99190614fac565b611e59565b8160a0015160045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1539a6b88886040518363ffffffff1660e01b8152600401611e0f929190614fe7565b602060405180830381865afa158015611e2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4e9190615009565b611e589190614fac565b5b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611ebf7fe67157950000000000000000000000000000000000000000000000000000000083602001516001612ef0565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f2f7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612ef0565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611fcb575f612067565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7f1ecff88886040518363ffffffff1660e01b8152600401612027929190614fe7565b602060405180830381865afa158015612042573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120669190615034565b5b90506120938360800151845f0151846005015f9054906101000a900467ffffffffffffffff1684612f12565b8260040190805190602001906120aa929190613bf4565b505f73ffffffffffffffffffffffffffffffffffffffff1683604001516020015173ffffffffffffffffffffffffffffffffffffffff161461211b576121167f5912b89c0000000000000000000000000000000000000000000000000000000084604001516001612ef0565b612204565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016121969190615099565b602060405180830381865afa1580156121b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d591906147a0565b6121df575f612203565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b826001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036122fa577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016122f19291906150b2565b60405180910390fd5b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f8054905061237e91906146ae565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8560040180549050866001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161242394939291906150d9565b60405180910390a481604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561260d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116125c4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505094505050503868929eee149b4bd21268555092915050565b6126c66127e6565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6127116127e6565b63389a75e1600c52805f526020600c20805442111561273757636f5e88185f526004601cfd5b5f81555061274481612c6d565b50565b61274f6127e6565b8060601b61276457637448fbae5f526004601cfd5b61276d81612c6d565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6006602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461281b576382b429005f526004601cfd5b565b5f6202a300905090565b5f828260405160200161283b92919061513c565b60405160208183030381529060405280519060200120905092915050565b5f6001600281111561286e5761286d614089565b5b835f015f9054906101000a900460ff1660028111156128905761288f614089565b5b14806128ce57505f60028111156128aa576128a9614089565b5b835f015f9054906101000a900460ff1660028111156128cc576128cb614089565b5b145b1561297557825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161292f919061418a565b602060405180830381865afa15801561294a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061296e91906149fd565b9050612a5a565b60028081111561298857612987614089565b5b835f015f9054906101000a900460ff1660028111156129aa576129a9614089565b5b03612a5657825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e8385600301546040518363ffffffff1660e01b8152600401612a10929190615167565b602060405180830381865afa158015612a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a4f91906149fd565b9050612a5a565b5f90505b92915050565b60016002811115612a7457612a73614089565b5b825f015f9054906101000a900460ff166002811115612a9657612a95614089565b5b1480612ad457505f6002811115612ab057612aaf614089565b5b825f015f9054906101000a900460ff166002811115612ad257612ad1614089565b5b145b15612b7957612b4860035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b612b74825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661300b565b612c69565b600280811115612b8c57612b8b614089565b5b825f015f9054906101000a900460ff166002811115612bae57612bad614089565b5b03612c6857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b8152600401612c3a9493929190614a4b565b5f604051808303815f87803b158015612c51575f80fd5b505af1158015612c63573d5f803e3d5ffd5b505050505b5b5050565b612c756130fe565b15612cda577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612d30565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612d73576390b8ec185f526004601cfd5b5f603452505050565b6060815115612e105760405190506020810160048301805184518501811983525b80861015612df6576001860195508551601f1a80612de6576001870196508651601f1a5f198652607f8111612dd457600181013887395b6001607f821601860195505050612df1565b808553600185019450505b612d9d565b81835260208501840385525f845260208401604052505050505b919050565b612e3f7fe49cedd70000000000000000000000000000000000000000000000000000000082613102565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401612e78919061418a565b602060405180830381865afa158015612e93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb791906147a0565b612eed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612eff848460200151613102565b612f0983836131f9565b90509392505050565b60605f60015f80549050612f2691906146ae565b9050855167ffffffffffffffff811115612f4357612f4261481b565b5b604051908082528060200260200182016040528015612f715781602001602082028036833780820191505090505b5091505f5b865181101561300157612fa7878281518110612f9557612f946145b6565b5b602002602001015187878786866132b5565b838281518110612fba57612fb96145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050612f76565b5050949350505050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613045919061418a565b602060405180830381865afa158015613060573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061308491906149fd565b905060055f9054906101000a900467ffffffffffffffff1667ffffffffffffffff168110156130fa576130f960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b5b5050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806131b157508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b81526004016131709190615099565b602060405180830381865afa15801561318b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131af91906147a0565b155b156131f55781816040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016131ec9291906150b2565b60405180910390fd5b5050565b5f825f015161320c578260200151613230565b61322f836020015173ffffffffffffffffffffffffffffffffffffffff1661365f565b5b9050825f0151801561323f5750815b156132af578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016132819190614b93565b5f604051808303815f87803b158015613298575f80fd5b505af11580156132aa573d5f803e3d5ffd5b505050505b92915050565b5f80876040015190506132ec7fa9216705000000000000000000000000000000000000000000000000000000008960200151613102565b875f0151613357577fa92167050000000000000000000000000000000000000000000000000000000088602001516040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161334e9291906150b2565b60405180910390fd5b6133827fa921670500000000000000000000000000000000000000000000000000000000895f612ef0565b91505f8273ffffffffffffffffffffffffffffffffffffffff16634e7165a2836040518263ffffffff1660e01b81526004016133be9190614b93565b5f60405180830381865afa1580156133d8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190613400919061518e565b90505f8151146135ed575f80613416838a613671565b915091508973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b81526004016134539190614b93565b6020604051808303815f875af115801561346f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061349391906147a0565b6134c9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b81526004016135029190614b93565b6020604051808303815f875af115801561351e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354291906147a0565b613578576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061358d9190615289565b90506135e988885f73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16036135d15783602001516135d3565b8b5b858e67ffffffffffffffff16865f01518b613949565b5050505b8273ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b81526004016136269190614b93565b5f604051808303815f87803b15801561363d575f80fd5b505af115801561364f573d5f803e3d5ffd5b5050505050509695505050505050565b5f61366a5f83613a9b565b9050919050565b60605f80848060200190518101906136899190615289565b90505f849050600160028111156136a3576136a2614089565b5b825f015160028111156136b9576136b8614089565b5b14806136eb57505f60028111156136d3576136d2614089565b5b825f015160028111156136e9576136e8614089565b5b145b156137df575f82606001518060200190518101906137099190615309565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f01516137329190614610565b61373c919061467e565b90505f604051806020016040528083815250905080604051602001613761919061534e565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016137c191906153c7565b60405160208183030381529060405282965096505050505050613942565b6002808111156137f2576137f1614089565b5b825f0151600281111561380857613807614089565b5b03613910575f82606001518060200190518101906138269190615464565b90505f61271067ffffffffffffffff168367ffffffffffffffff1683602001516138509190614610565b61385a919061467e565b90505f6040518060600160405280845f01518152602001838152602001846040015181525090508060405160200161389291906154f8565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016138f291906153c7565b60405160208183030381529060405282965096505050505050613942565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561395d5761395c614089565b5b8360028111156139705761396f614089565b5b0361398f57818060200190518101906139899190615518565b50809150505b5f6040518060a001604052808560028111156139ae576139ad614089565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018381525090508060065f6139ef8c8c612827565b81526020019081526020015f205f820151815f015f6101000a81548160ff02191690836002811115613a2457613a23614089565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080613ae25763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f6002811115613bc057613bbf614089565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613c6a579160200282015b82811115613c69578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613c12565b5b509050613c779190613c7b565b5090565b5b80821115613c92575f815f905550600101613c7c565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b613cb981613ca7565b8114613cc3575f80fd5b50565b5f81359050613cd481613cb0565b92915050565b5f60208284031215613cef57613cee613c9f565b5b5f613cfc84828501613cc6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f613d47613d42613d3d84613d05565b613d24565b613d05565b9050919050565b5f613d5882613d2d565b9050919050565b5f613d6982613d4e565b9050919050565b613d7981613d5f565b82525050565b5f613d8982613d4e565b9050919050565b613d9981613d7f565b82525050565b5f613da982613d4e565b9050919050565b613db981613d9f565b82525050565b5f613dc982613d2d565b9050919050565b5f613dda82613dbf565b9050919050565b613dea81613dd0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613e2382613d4e565b9050919050565b613e3381613e19565b82525050565b5f613e448383613e2a565b60208301905092915050565b5f602082019050919050565b5f613e6682613df0565b613e708185613dfa565b9350613e7b83613e0a565b805f5b83811015613eab578151613e928882613e39565b9750613e9d83613e50565b925050600181019050613e7e565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613ed481613eb8565b82525050565b613ee381613ca7565b82525050565b5f613ef382613d05565b9050919050565b613f0381613ee9565b82525050565b5f61010083015f830151613f1f5f860182613d70565b506020830151613f326020860182613d90565b506040830151613f456040860182613db0565b506060830151613f586060860182613de1565b5060808301518482036080860152613f708282613e5c565b91505060a0830151613f8560a0860182613ecb565b5060c0830151613f9860c0860182613eda565b5060e0830151613fab60e0860182613efa565b508091505092915050565b5f6020820190508181035f830152613fce8184613f09565b905092915050565b613fdf81613ee9565b8114613fe9575f80fd5b50565b5f81359050613ffa81613fd6565b92915050565b5f6020828403121561401557614014613c9f565b5b5f61402284828501613fec565b91505092915050565b5f819050919050565b61403d8161402b565b8114614047575f80fd5b50565b5f8135905061405881614034565b92915050565b5f6020828403121561407357614072613c9f565b5b5f6140808482850161404a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600381106140c7576140c6614089565b5b50565b5f8190506140d7826140b6565b919050565b5f6140e6826140ca565b9050919050565b6140f6816140dc565b82525050565b60a082015f8201516141105f8501826140ed565b5060208201516141236020850182613efa565b5060408201516141366040850182613eda565b5060608201516141496060850182613eda565b50608082015161415c6080850182613eda565b50505050565b5f60a0820190506141755f8301846140fc565b92915050565b61418481613ee9565b82525050565b5f60208201905061419d5f83018461417b565b92915050565b6141ac81613eb8565b81146141b6575f80fd5b50565b5f813590506141c7816141a3565b92915050565b5f602082840312156141e2576141e1613c9f565b5b5f6141ef848285016141b9565b91505092915050565b61420181613ca7565b82525050565b5f60208201905061421a5f8301846141f8565b92915050565b5f806040838503121561423657614235613c9f565b5b5f61424385828601613cc6565b925050602061425485828601613cc6565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261427f5761427e61425e565b5b8235905067ffffffffffffffff81111561429c5761429b614262565b5b6020830191508360018202830111156142b8576142b7614266565b5b9250929050565b5f805f805f8060a087890312156142d9576142d8613c9f565b5b5f6142e689828a01613cc6565b96505060206142f789828a01613cc6565b955050604061430889828a01613fec565b945050606087013567ffffffffffffffff81111561432957614328613ca3565b5b61433589828a0161426a565b9350935050608061434889828a01613fec565b9150509295509295509295565b5f61435f82613d4e565b9050919050565b61436f81614355565b82525050565b5f6020820190506143885f830184614366565b92915050565b5f805f805f608086880312156143a7576143a6613c9f565b5b5f6143b488828901613cc6565b95505060206143c588828901613cc6565b94505060406143d688828901613fec565b935050606086013567ffffffffffffffff8111156143f7576143f6613ca3565b5b6144038882890161426a565b92509250509295509295909350565b5f61441c82613d4e565b9050919050565b61442c81614412565b82525050565b5f6020820190506144455f830184614423565b92915050565b61445481613eb8565b82525050565b5f60208201905061446d5f83018461444b565b92915050565b5f805f806060858703121561448b5761448a613c9f565b5b5f85013567ffffffffffffffff8111156144a8576144a7613ca3565b5b6144b48782880161426a565b945094505060206144c787828801613cc6565b92505060406144d887828801613cc6565b91505092959194509250565b5f6040820190506144f75f8301856141f8565b614504602083018461417b565b9392505050565b5f806020838503121561452157614520613c9f565b5b5f83013567ffffffffffffffff81111561453e5761453d613ca3565b5b61454a8582860161426a565b92509250509250929050565b61455f816140dc565b82525050565b5f60a0820190506145785f830188614556565b614585602083018761417b565b61459260408301866141f8565b61459f60608301856141f8565b6145ac60808301846141f8565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61461a82613ca7565b915061462583613ca7565b925082820261463381613ca7565b9150828204841483151761464a576146496145e3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61468882613ca7565b915061469383613ca7565b9250826146a3576146a2614651565b5b828204905092915050565b5f6146b882613ca7565b91506146c383613ca7565b92508282039050818111156146db576146da6145e3565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61471a83856146e1565b93506147278385846146f1565b614730836146ff565b840190509392505050565b5f60408201905061474e5f83018661417b565b818103602083015261476181848661470f565b9050949350505050565b5f8115159050919050565b61477f8161476b565b8114614789575f80fd5b50565b5f8151905061479a81614776565b92915050565b5f602082840312156147b5576147b4613c9f565b5b5f6147c28482850161478c565b91505092915050565b5f6080820190506147de5f8301886141f8565b6147eb60208301876141f8565b6147f8604083018661417b565b818103606083015261480b81848661470f565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614851826146ff565b810181811067ffffffffffffffff821117156148705761486f61481b565b5b80604052505050565b5f614882613c96565b905061488e8282614848565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156148b5576148b461481b565b5b6148be826146ff565b9050602081019050919050565b5f6148dd6148d88461489b565b614879565b9050828152602081018484840111156148f9576148f8614897565b5b6149048482856146f1565b509392505050565b5f82601f8301126149205761491f61425e565b5b81356149308482602086016148cb565b91505092915050565b5f6040828403121561494e5761494d614817565b5b6149586040614879565b90505f61496784828501613fec565b5f83015250602082013567ffffffffffffffff81111561498a57614989614893565b5b6149968482850161490c565b60208301525092915050565b5f602082840312156149b7576149b6613c9f565b5b5f82013567ffffffffffffffff8111156149d4576149d3613ca3565b5b6149e084828501614939565b91505092915050565b5f815190506149f781613cb0565b92915050565b5f60208284031215614a1257614a11613c9f565b5b5f614a1f848285016149e9565b91505092915050565b50565b5f614a365f836146e1565b9150614a4182614a28565b5f82019050919050565b5f60a082019050614a5e5f83018761417b565b614a6b602083018661417b565b614a7860408301856141f8565b614a8560608301846141f8565b8181036080830152614a9681614a2b565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f614ad382614aa1565b614add8185614aab565b9350614aed818560208601614abb565b614af6816146ff565b840191505092915050565b5f604083015f830151614b165f860182613efa565b5060208301518482036020860152614b2e8282614ac9565b9150508091505092915050565b5f6020820190508181035f830152614b538184614b01565b905092915050565b5f614b6582614aa1565b614b6f81856146e1565b9350614b7f818560208601614abb565b614b88816146ff565b840191505092915050565b5f6020820190508181035f830152614bab8184614b5b565b905092915050565b5f81519050614bc181613fd6565b92915050565b5f8060408385031215614bdd57614bdc613c9f565b5b5f614bea858286016149e9565b9250506020614bfb85828601614bb3565b9150509250929050565b5f614c0f82613d05565b9050919050565b5f614c2082614c05565b9050919050565b614c3081614c16565b8114614c3a575f80fd5b50565b5f81519050614c4b81614c27565b92915050565b5f614c63614c5e8461489b565b614879565b905082815260208101848484011115614c7f57614c7e614897565b5b614c8a848285614abb565b509392505050565b5f82601f830112614ca657614ca561425e565b5b8151614cb6848260208601614c51565b91505092915050565b5f60608284031215614cd457614cd3614817565b5b614cde6060614879565b90505f614ced8482850161478c565b5f830152506020614d0084828501614bb3565b602083015250604082015167ffffffffffffffff811115614d2457614d23614893565b5b614d3084828501614c92565b60408301525092915050565b5f67ffffffffffffffff821115614d5657614d5561481b565b5b602082029050602081019050919050565b5f614d79614d7484614d3c565b614879565b90508083825260208201905060208402830185811115614d9c57614d9b614266565b5b835b81811015614de357805167ffffffffffffffff811115614dc157614dc061425e565b5b808601614dce8982614cbf565b85526020850194505050602081019050614d9e565b5050509392505050565b5f82601f830112614e0157614e0061425e565b5b8151614e11848260208601614d67565b91505092915050565b5f81519050614e28816141a3565b92915050565b5f6101008284031215614e4457614e43614817565b5b614e4f610100614879565b90505f614e5e84828501614c3d565b5f83015250602082015167ffffffffffffffff811115614e8157614e80614893565b5b614e8d84828501614cbf565b602083015250604082015167ffffffffffffffff811115614eb157614eb0614893565b5b614ebd84828501614cbf565b604083015250606082015167ffffffffffffffff811115614ee157614ee0614893565b5b614eed84828501614cbf565b606083015250608082015167ffffffffffffffff811115614f1157614f10614893565b5b614f1d84828501614ded565b60808301525060a0614f3184828501614e1a565b60a08301525060c0614f45848285016149e9565b60c08301525060e0614f5984828501614bb3565b60e08301525092915050565b5f60208284031215614f7a57614f79613c9f565b5b5f82015167ffffffffffffffff811115614f9757614f96613ca3565b5b614fa384828501614e2e565b91505092915050565b5f614fb682613eb8565b9150614fc183613eb8565b9250828201905067ffffffffffffffff811115614fe157614fe06145e3565b5b92915050565b5f6020820190508181035f83015261500081848661470f565b90509392505050565b5f6020828403121561501e5761501d613c9f565b5b5f61502b84828501614e1a565b91505092915050565b5f6020828403121561504957615048613c9f565b5b5f61505684828501614bb3565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6150938161505f565b82525050565b5f6020820190506150ac5f83018461508a565b92915050565b5f6040820190506150c55f83018561508a565b6150d2602083018461417b565b9392505050565b5f6080820190506150ec5f8301876141f8565b6150f9602083018661417b565b615106604083018561417b565b615113606083018461417b565b95945050505050565b5f819050919050565b61513661513182613ca7565b61511c565b82525050565b5f6151478285615125565b6020820191506151578284615125565b6020820191508190509392505050565b5f60408201905061517a5f83018561417b565b61518760208301846141f8565b9392505050565b5f602082840312156151a3576151a2613c9f565b5b5f82015167ffffffffffffffff8111156151c0576151bf613ca3565b5b6151cc84828501614c92565b91505092915050565b600381106151e1575f80fd5b50565b5f815190506151f2816151d5565b92915050565b5f6080828403121561520d5761520c614817565b5b6152176080614879565b90505f615226848285016151e4565b5f83015250602061523984828501614bb3565b602083015250604061524d84828501614bb3565b604083015250606082015167ffffffffffffffff81111561527157615270614893565b5b61527d84828501614c92565b60608301525092915050565b5f6020828403121561529e5761529d613c9f565b5b5f82015167ffffffffffffffff8111156152bb576152ba613ca3565b5b6152c7848285016151f8565b91505092915050565b5f602082840312156152e5576152e4614817565b5b6152ef6020614879565b90505f6152fe848285016149e9565b5f8301525092915050565b5f6020828403121561531e5761531d613c9f565b5b5f61532b848285016152d0565b91505092915050565b602082015f8201516153485f850182613eda565b50505050565b5f6020820190506153615f830184615334565b92915050565b5f608083015f83015161537c5f8601826140ed565b50602083015161538f6020860182613efa565b5060408301516153a26040860182613efa565b50606083015184820360608601526153ba8282614ac9565b9150508091505092915050565b5f6020820190508181035f8301526153df8184615367565b905092915050565b5f606082840312156153fc576153fb614817565b5b6154066060614879565b90505f615415848285016149e9565b5f830152506020615428848285016149e9565b602083015250604082015167ffffffffffffffff81111561544c5761544b614893565b5b61545884828501614c92565b60408301525092915050565b5f6020828403121561547957615478613c9f565b5b5f82015167ffffffffffffffff81111561549657615495613ca3565b5b6154a2848285016153e7565b91505092915050565b5f606083015f8301516154c05f860182613eda565b5060208301516154d36020860182613eda565b50604083015184820360408601526154eb8282614ac9565b9150508091505092915050565b5f6020820190508181035f83015261551081846154ab565b905092915050565b5f806040838503121561552e5761552d613c9f565b5b5f61553b858286016149e9565b925050602083015167ffffffffffffffff81111561555c5761555b613ca3565b5b61556885828601614c92565b915050925092905056fea2646970667358221220be55f1e697f2023485c9127bd515ad65d975731fa37c63396acdde5e0b7d137764736f6c634300081a0033";
16
+ import { AllowListIncentive as If } from "./Incentives/AllowListIncentive.js";
17
+ import { CGDAIncentive as yf } from "./Incentives/CGDAIncentive.js";
18
+ import { ERC20Incentive as _f } from "./Incentives/ERC20Incentive.js";
19
+ import { i as Pf, E as Bf, a as Ef } from "./Incentive-qlnv5kQB.js";
20
+ import { ERC20VariableCriteriaIncentive as Rf } from "./Incentives/ERC20VariableCriteriaIncentive.js";
21
+ import { PointsIncentive as Ff } from "./Incentives/PointsIncentive.js";
22
+ import { LimitedSignerValidator as Lf } from "./Validators/LimitedSignerValidator.js";
23
+ import { SignerValidator as Df } from "./Validators/SignerValidator.js";
24
+ import { BoostValidatorEOA as F, validatorFromAddress as Nf } from "./Validators/Validator.js";
25
+ import { BoostCoreNoIdentifierEmitted as Of, DeployableUnknownOwnerProvidedError as Sf, InvalidProtocolChainIdError as Mf, BudgetMustAuthorizeBoostCore as Vf, MustInitializeBudgetError as $f, IncentiveNotCloneableError as jf, BoostNotFoundError as xf } from "./errors.js";
26
+ import { assertValidAddressByChainId as u } from "./utils.js";
27
+ import { ERC20VariableIncentive as Tf } from "./Incentives/ERC20VariableIncentive.js";
28
+ import { simulateContract as zf, writeContract as qf } from "viem/actions";
29
+ import { parseAccount as kf, getAddress as Gf } from "viem/utils";
30
+ const Uf = "0x60806040526103e8600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550348015610064575f80fd5b5060405161589b38038061589b83398181016040528101906100869190610296565b6100958161011d60201b60201c565b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102e6565b61012b6101f960201b60201c565b156101a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101f6565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61022a82610201565b9050919050565b5f61023b82610220565b9050919050565b61024b81610231565b8114610255575f80fd5b50565b5f8151905061026681610242565b92915050565b61027581610220565b811461027f575f80fd5b50565b5f815190506102908161026c565b92915050565b5f805f606084860312156102ad576102ac6101fd565b5b5f6102ba86828701610258565b93505060206102cb86828701610282565b92505060406102dc86828701610282565b9150509250925092565b6155a8806102f35f395ff3fe6080604052600436106101b6575f3560e01c80638da5cb5b116100eb578063dd98558c11610089578063f04e283e11610063578063f04e283e1461056b578063f2fde38b14610587578063fee81cf4146105a3578063fefceca9146105df576101b6565b8063dd98558c146104ca578063e21ff73114610507578063eccc19a614610543576101b6565b8063b0e21e8a116100c5578063b0e21e8a14610424578063caa1647b1461044e578063d73792a914610476578063dd7dc9a9146104a0576101b6565b80638da5cb5b146103b45780638fe4f523146103de578063a92647dc146103fa576101b6565b80635045b866116101585780635f32c23e116101325780635f32c23e1461033c578063715018a614610364578063730f9c571461036e5780637b1039991461038a576101b6565b80635045b866146102de57806354d1f13d146103085780635edb9eb014610312576101b6565b8063346339d511610194578063346339d51461022857806339a51be51461026457806343bc42d31461028e57806346877b1a146102b6576101b6565b806313c8e2de146101ba578063219f71f0146101f6578063256929621461021e575b5f80fd5b3480156101c5575f80fd5b506101e060048036038101906101db9190613cda565b61061f565b6040516101ed9190613fb6565b60405180910390f35b348015610201575f80fd5b5061021c60048036038101906102179190614000565b6108c7565b005b610226610912565b005b348015610233575f80fd5b5061024e6004803603810190610249919061405e565b610963565b60405161025b9190614162565b60405180910390f35b34801561026f575f80fd5b50610278610a3a565b604051610285919061418a565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af91906141cd565b610a5f565b005b3480156102c1575f80fd5b506102dc60048036038101906102d79190614000565b610a93565b005b3480156102e9575f80fd5b506102f2610ade565b6040516102ff919061418a565b60405180910390f35b610310610b03565b005b34801561031d575f80fd5b50610326610b3c565b6040516103339190614207565b60405180910390f35b348015610347575f80fd5b50610362600480360381019061035d9190614220565b610b47565b005b61036c610d34565b005b610388600480360381019061038391906142bf565b610d47565b005b348015610395575f80fd5b5061039e611291565b6040516103ab9190614375565b60405180910390f35b3480156103bf575f80fd5b506103c86112b6565b6040516103d5919061418a565b60405180910390f35b6103f860048036038101906103f3919061438e565b6112de565b005b348015610405575f80fd5b5061040e6112f3565b60405161041b9190614432565b60405180910390f35b34801561042f575f80fd5b50610438611318565b604051610445919061445a565b60405180910390f35b348015610459575f80fd5b50610474600480360381019061046f91906141cd565b611332565b005b348015610481575f80fd5b5061048a6113b4565b604051610497919061445a565b60405180910390f35b3480156104ab575f80fd5b506104b46113ba565b6040516104c1919061445a565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190614473565b6113d3565b6040516104fe9291906144e4565b60405180910390f35b348015610512575f80fd5b5061052d6004803603810190610528919061450b565b611ab9565b60405161053a9190613fb6565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190614000565b6126be565b005b61058560048036038101906105809190614000565b612709565b005b6105a1600480360381019061059c9190614000565b612747565b005b3480156105ae575f80fd5b506105c960048036038101906105c49190614000565b612770565b6040516105d69190614207565b60405180910390f35b3480156105ea575f80fd5b506106056004803603810190610600919061405e565b612789565b604051610616959493929190614565565b60405180910390f35b610627613aec565b5f828154811061063a576106396145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561082757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107de575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6108cf6127e6565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61091b61281d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61096b613ba2565b60065f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff1660028111156109aa576109a9614089565b5b60028111156109bc576109bb614089565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a676127e6565b80600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610a9b6127e6565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd212685403610b655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610b7c8383612827565b90505f60065f8381526020019081526020015f2090505f808581548110610ba657610ba56145b6565b5b905f5260205f2090600802016004018481548110610bc757610bc66145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f826002015461271067ffffffffffffffff168460010154610c139190614610565b610c1d919061467e565b90505f610c2a8484612859565b905081811115610d1f575f8282610c4191906146ae565b90505f61271067ffffffffffffffff16866002015483610c619190614610565b610c6b919061467e565b9050610c778682612a60565b80866001015410610ca15780866001015f828254610c9591906146ae565b92505081905550610cab565b5f86600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16888a7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610d149190614207565b60405180910390a450505b50505050503868929eee149b4bd21268555050565b610d3c6127e6565b610d455f612c6d565b565b3068929eee149b4bd212685403610d655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610d8557610d846145b6565b5b905f5260205f20906008020190505f610d9e8888612827565b90505f60065f8381526020019081526020015f2090505f836004018981548110610dcb57610dca6145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050836002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8689896040518463ffffffff1660e01b8152600401610e559392919061473b565b602060405180830381865afa158015610e70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9491906147a0565b610eca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b6900348c8c898c8c6040518763ffffffff1660e01b8152600401610f2f9594939291906147cb565b60206040518083038185885af1158015610f4b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7091906147a0565b610fa6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611003575f61100e565b61100d8383612859565b5b90508173ffffffffffffffffffffffffffffffffffffffff1663bb1757cf878a8a6040518463ffffffff1660e01b815260040161104d9392919061473b565b6020604051808303815f875af1158015611069573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108d91906147a0565b6110d2578588886040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016110c99392919061473b565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361112f575f61113a565b6111398484612859565b5b90505f81831161114a575f611157565b818361115691906146ae565b5b90505f61271067ffffffffffffffff168660020154836111779190614610565b611181919061467e565b90505f811115611221576111958682612a60565b80866001015f8282546111a891906146ae565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516112189190614207565b60405180910390a45b8873ffffffffffffffffffffffffffffffffffffffff168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f60405161126d9392919061473b565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b6112ec858585858533610d47565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460149054906101000a900467ffffffffffffffff1681565b61133a6127e6565b61271067ffffffffffffffff168167ffffffffffffffff1610611389576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61271081565b60055f9054906101000a900467ffffffffffffffff1681565b5f803068929eee149b4bd2126854036113f35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808581548110611413576114126145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561160057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115b7575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611704576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61170f8686612827565b90505f60065f8381526020019081526020015f2090505f898981019061173591906149a2565b90505f816020015180602001905181019061175091906149fd565b90505f61271067ffffffffffffffff168460020154836117709190614610565b61177a919061467e565b90505f811115611979576001600281111561179857611797614089565b5b845f015f9054906101000a900460ff1660028111156117ba576117b9614089565b5b14806117f857505f60028111156117d4576117d3614089565b5b845f015f9054906101000a900460ff1660028111156117f6576117f5614089565b5b145b156118535761184e835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b611925565b60028081111561186657611865614089565b5b845f015f9054906101000a900460ff16600281111561188857611887614089565b5b0361192457835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016118f69493929190614a4b565b5f604051808303815f87803b15801561190d575f80fd5b505af115801561191f573d5f803e3d5ffd5b505050505b5b825f015173ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516119709190614207565b60405180910390a45b5f8087608001518b81518110611992576119916145b6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016119c69190614b3b565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016119f19190614b93565b60408051808303815f875af1158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a309190614bc7565b915091505f8203611a7c57338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611a739392919061473b565b60405180910390fd5b82866001015f828254611a8f91906146ae565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b611ac1613aec565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611bb5575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401611b74919061418a565b602060405180830381865afa158015611b8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb391906147a0565b155b15611bec576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611c0a5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611c6385858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612d7c565b806020019051810190611c769190614f65565b9050611c84815f0151612e15565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611dae578160a00151600460149054906101000a900467ffffffffffffffff16611da99190614fac565b611e59565b8160a0015160045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1539a6b88886040518363ffffffff1660e01b8152600401611e0f929190614fe7565b602060405180830381865afa158015611e2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4e9190615009565b611e589190614fac565b5b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611ebf7fe67157950000000000000000000000000000000000000000000000000000000083602001516001612ef0565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f2f7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612ef0565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611fcb575f612067565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7f1ecff88886040518363ffffffff1660e01b8152600401612027929190614fe7565b602060405180830381865afa158015612042573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120669190615034565b5b90506120938360800151845f0151846005015f9054906101000a900467ffffffffffffffff1684612f12565b8260040190805190602001906120aa929190613bf4565b505f73ffffffffffffffffffffffffffffffffffffffff1683604001516020015173ffffffffffffffffffffffffffffffffffffffff161461211b576121167f5912b89c0000000000000000000000000000000000000000000000000000000084604001516001612ef0565b612204565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016121969190615099565b602060405180830381865afa1580156121b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d591906147a0565b6121df575f612203565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b826001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036122fa577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016122f19291906150b2565b60405180910390fd5b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f8054905061237e91906146ae565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8560040180549050866001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161242394939291906150d9565b60405180910390a481604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561260d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116125c4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505094505050503868929eee149b4bd21268555092915050565b6126c66127e6565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6127116127e6565b63389a75e1600c52805f526020600c20805442111561273757636f5e88185f526004601cfd5b5f81555061274481612c6d565b50565b61274f6127e6565b8060601b61276457637448fbae5f526004601cfd5b61276d81612c6d565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6006602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461281b576382b429005f526004601cfd5b565b5f6202a300905090565b5f828260405160200161283b92919061513c565b60405160208183030381529060405280519060200120905092915050565b5f6001600281111561286e5761286d614089565b5b835f015f9054906101000a900460ff1660028111156128905761288f614089565b5b14806128ce57505f60028111156128aa576128a9614089565b5b835f015f9054906101000a900460ff1660028111156128cc576128cb614089565b5b145b1561297557825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161292f919061418a565b602060405180830381865afa15801561294a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061296e91906149fd565b9050612a5a565b60028081111561298857612987614089565b5b835f015f9054906101000a900460ff1660028111156129aa576129a9614089565b5b03612a5657825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e8385600301546040518363ffffffff1660e01b8152600401612a10929190615167565b602060405180830381865afa158015612a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a4f91906149fd565b9050612a5a565b5f90505b92915050565b60016002811115612a7457612a73614089565b5b825f015f9054906101000a900460ff166002811115612a9657612a95614089565b5b1480612ad457505f6002811115612ab057612aaf614089565b5b825f015f9054906101000a900460ff166002811115612ad257612ad1614089565b5b145b15612b7957612b4860035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b612b74825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661300b565b612c69565b600280811115612b8c57612b8b614089565b5b825f015f9054906101000a900460ff166002811115612bae57612bad614089565b5b03612c6857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b8152600401612c3a9493929190614a4b565b5f604051808303815f87803b158015612c51575f80fd5b505af1158015612c63573d5f803e3d5ffd5b505050505b5b5050565b612c756130fe565b15612cda577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612d30565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612d73576390b8ec185f526004601cfd5b5f603452505050565b6060815115612e105760405190506020810160048301805184518501811983525b80861015612df6576001860195508551601f1a80612de6576001870196508651601f1a5f198652607f8111612dd457600181013887395b6001607f821601860195505050612df1565b808553600185019450505b612d9d565b81835260208501840385525f845260208401604052505050505b919050565b612e3f7fe49cedd70000000000000000000000000000000000000000000000000000000082613102565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401612e78919061418a565b602060405180830381865afa158015612e93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb791906147a0565b612eed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612eff848460200151613102565b612f0983836131f9565b90509392505050565b60605f60015f80549050612f2691906146ae565b9050855167ffffffffffffffff811115612f4357612f4261481b565b5b604051908082528060200260200182016040528015612f715781602001602082028036833780820191505090505b5091505f5b865181101561300157612fa7878281518110612f9557612f946145b6565b5b602002602001015187878786866132b5565b838281518110612fba57612fb96145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050612f76565b5050949350505050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613045919061418a565b602060405180830381865afa158015613060573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061308491906149fd565b905060055f9054906101000a900467ffffffffffffffff1667ffffffffffffffff168110156130fa576130f960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b5b5050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806131b157508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b81526004016131709190615099565b602060405180830381865afa15801561318b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131af91906147a0565b155b156131f55781816040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016131ec9291906150b2565b60405180910390fd5b5050565b5f825f015161320c578260200151613230565b61322f836020015173ffffffffffffffffffffffffffffffffffffffff1661365f565b5b9050825f0151801561323f5750815b156132af578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016132819190614b93565b5f604051808303815f87803b158015613298575f80fd5b505af11580156132aa573d5f803e3d5ffd5b505050505b92915050565b5f80876040015190506132ec7fa9216705000000000000000000000000000000000000000000000000000000008960200151613102565b875f0151613357577fa92167050000000000000000000000000000000000000000000000000000000088602001516040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161334e9291906150b2565b60405180910390fd5b6133827fa921670500000000000000000000000000000000000000000000000000000000895f612ef0565b91505f8273ffffffffffffffffffffffffffffffffffffffff16634e7165a2836040518263ffffffff1660e01b81526004016133be9190614b93565b5f60405180830381865afa1580156133d8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190613400919061518e565b90505f8151146135ed575f80613416838a613671565b915091508973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b81526004016134539190614b93565b6020604051808303815f875af115801561346f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061349391906147a0565b6134c9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b81526004016135029190614b93565b6020604051808303815f875af115801561351e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354291906147a0565b613578576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061358d9190615289565b90506135e988885f73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16036135d15783602001516135d3565b8b5b858e67ffffffffffffffff16865f01518b613949565b5050505b8273ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b81526004016136269190614b93565b5f604051808303815f87803b15801561363d575f80fd5b505af115801561364f573d5f803e3d5ffd5b5050505050509695505050505050565b5f61366a5f83613a9b565b9050919050565b60605f80848060200190518101906136899190615289565b90505f849050600160028111156136a3576136a2614089565b5b825f015160028111156136b9576136b8614089565b5b14806136eb57505f60028111156136d3576136d2614089565b5b825f015160028111156136e9576136e8614089565b5b145b156137df575f82606001518060200190518101906137099190615309565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f01516137329190614610565b61373c919061467e565b90505f604051806020016040528083815250905080604051602001613761919061534e565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016137c191906153c7565b60405160208183030381529060405282965096505050505050613942565b6002808111156137f2576137f1614089565b5b825f0151600281111561380857613807614089565b5b03613910575f82606001518060200190518101906138269190615464565b90505f61271067ffffffffffffffff168367ffffffffffffffff1683602001516138509190614610565b61385a919061467e565b90505f6040518060600160405280845f01518152602001838152602001846040015181525090508060405160200161389291906154f8565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016138f291906153c7565b60405160208183030381529060405282965096505050505050613942565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561395d5761395c614089565b5b8360028111156139705761396f614089565b5b0361398f57818060200190518101906139899190615518565b50809150505b5f6040518060a001604052808560028111156139ae576139ad614089565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018381525090508060065f6139ef8c8c612827565b81526020019081526020015f205f820151815f015f6101000a81548160ff02191690836002811115613a2457613a23614089565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080613ae25763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f6002811115613bc057613bbf614089565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613c6a579160200282015b82811115613c69578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613c12565b5b509050613c779190613c7b565b5090565b5b80821115613c92575f815f905550600101613c7c565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b613cb981613ca7565b8114613cc3575f80fd5b50565b5f81359050613cd481613cb0565b92915050565b5f60208284031215613cef57613cee613c9f565b5b5f613cfc84828501613cc6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f613d47613d42613d3d84613d05565b613d24565b613d05565b9050919050565b5f613d5882613d2d565b9050919050565b5f613d6982613d4e565b9050919050565b613d7981613d5f565b82525050565b5f613d8982613d4e565b9050919050565b613d9981613d7f565b82525050565b5f613da982613d4e565b9050919050565b613db981613d9f565b82525050565b5f613dc982613d2d565b9050919050565b5f613dda82613dbf565b9050919050565b613dea81613dd0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613e2382613d4e565b9050919050565b613e3381613e19565b82525050565b5f613e448383613e2a565b60208301905092915050565b5f602082019050919050565b5f613e6682613df0565b613e708185613dfa565b9350613e7b83613e0a565b805f5b83811015613eab578151613e928882613e39565b9750613e9d83613e50565b925050600181019050613e7e565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613ed481613eb8565b82525050565b613ee381613ca7565b82525050565b5f613ef382613d05565b9050919050565b613f0381613ee9565b82525050565b5f61010083015f830151613f1f5f860182613d70565b506020830151613f326020860182613d90565b506040830151613f456040860182613db0565b506060830151613f586060860182613de1565b5060808301518482036080860152613f708282613e5c565b91505060a0830151613f8560a0860182613ecb565b5060c0830151613f9860c0860182613eda565b5060e0830151613fab60e0860182613efa565b508091505092915050565b5f6020820190508181035f830152613fce8184613f09565b905092915050565b613fdf81613ee9565b8114613fe9575f80fd5b50565b5f81359050613ffa81613fd6565b92915050565b5f6020828403121561401557614014613c9f565b5b5f61402284828501613fec565b91505092915050565b5f819050919050565b61403d8161402b565b8114614047575f80fd5b50565b5f8135905061405881614034565b92915050565b5f6020828403121561407357614072613c9f565b5b5f6140808482850161404a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600381106140c7576140c6614089565b5b50565b5f8190506140d7826140b6565b919050565b5f6140e6826140ca565b9050919050565b6140f6816140dc565b82525050565b60a082015f8201516141105f8501826140ed565b5060208201516141236020850182613efa565b5060408201516141366040850182613eda565b5060608201516141496060850182613eda565b50608082015161415c6080850182613eda565b50505050565b5f60a0820190506141755f8301846140fc565b92915050565b61418481613ee9565b82525050565b5f60208201905061419d5f83018461417b565b92915050565b6141ac81613eb8565b81146141b6575f80fd5b50565b5f813590506141c7816141a3565b92915050565b5f602082840312156141e2576141e1613c9f565b5b5f6141ef848285016141b9565b91505092915050565b61420181613ca7565b82525050565b5f60208201905061421a5f8301846141f8565b92915050565b5f806040838503121561423657614235613c9f565b5b5f61424385828601613cc6565b925050602061425485828601613cc6565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261427f5761427e61425e565b5b8235905067ffffffffffffffff81111561429c5761429b614262565b5b6020830191508360018202830111156142b8576142b7614266565b5b9250929050565b5f805f805f8060a087890312156142d9576142d8613c9f565b5b5f6142e689828a01613cc6565b96505060206142f789828a01613cc6565b955050604061430889828a01613fec565b945050606087013567ffffffffffffffff81111561432957614328613ca3565b5b61433589828a0161426a565b9350935050608061434889828a01613fec565b9150509295509295509295565b5f61435f82613d4e565b9050919050565b61436f81614355565b82525050565b5f6020820190506143885f830184614366565b92915050565b5f805f805f608086880312156143a7576143a6613c9f565b5b5f6143b488828901613cc6565b95505060206143c588828901613cc6565b94505060406143d688828901613fec565b935050606086013567ffffffffffffffff8111156143f7576143f6613ca3565b5b6144038882890161426a565b92509250509295509295909350565b5f61441c82613d4e565b9050919050565b61442c81614412565b82525050565b5f6020820190506144455f830184614423565b92915050565b61445481613eb8565b82525050565b5f60208201905061446d5f83018461444b565b92915050565b5f805f806060858703121561448b5761448a613c9f565b5b5f85013567ffffffffffffffff8111156144a8576144a7613ca3565b5b6144b48782880161426a565b945094505060206144c787828801613cc6565b92505060406144d887828801613cc6565b91505092959194509250565b5f6040820190506144f75f8301856141f8565b614504602083018461417b565b9392505050565b5f806020838503121561452157614520613c9f565b5b5f83013567ffffffffffffffff81111561453e5761453d613ca3565b5b61454a8582860161426a565b92509250509250929050565b61455f816140dc565b82525050565b5f60a0820190506145785f830188614556565b614585602083018761417b565b61459260408301866141f8565b61459f60608301856141f8565b6145ac60808301846141f8565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61461a82613ca7565b915061462583613ca7565b925082820261463381613ca7565b9150828204841483151761464a576146496145e3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61468882613ca7565b915061469383613ca7565b9250826146a3576146a2614651565b5b828204905092915050565b5f6146b882613ca7565b91506146c383613ca7565b92508282039050818111156146db576146da6145e3565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61471a83856146e1565b93506147278385846146f1565b614730836146ff565b840190509392505050565b5f60408201905061474e5f83018661417b565b818103602083015261476181848661470f565b9050949350505050565b5f8115159050919050565b61477f8161476b565b8114614789575f80fd5b50565b5f8151905061479a81614776565b92915050565b5f602082840312156147b5576147b4613c9f565b5b5f6147c28482850161478c565b91505092915050565b5f6080820190506147de5f8301886141f8565b6147eb60208301876141f8565b6147f8604083018661417b565b818103606083015261480b81848661470f565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614851826146ff565b810181811067ffffffffffffffff821117156148705761486f61481b565b5b80604052505050565b5f614882613c96565b905061488e8282614848565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156148b5576148b461481b565b5b6148be826146ff565b9050602081019050919050565b5f6148dd6148d88461489b565b614879565b9050828152602081018484840111156148f9576148f8614897565b5b6149048482856146f1565b509392505050565b5f82601f8301126149205761491f61425e565b5b81356149308482602086016148cb565b91505092915050565b5f6040828403121561494e5761494d614817565b5b6149586040614879565b90505f61496784828501613fec565b5f83015250602082013567ffffffffffffffff81111561498a57614989614893565b5b6149968482850161490c565b60208301525092915050565b5f602082840312156149b7576149b6613c9f565b5b5f82013567ffffffffffffffff8111156149d4576149d3613ca3565b5b6149e084828501614939565b91505092915050565b5f815190506149f781613cb0565b92915050565b5f60208284031215614a1257614a11613c9f565b5b5f614a1f848285016149e9565b91505092915050565b50565b5f614a365f836146e1565b9150614a4182614a28565b5f82019050919050565b5f60a082019050614a5e5f83018761417b565b614a6b602083018661417b565b614a7860408301856141f8565b614a8560608301846141f8565b8181036080830152614a9681614a2b565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f614ad382614aa1565b614add8185614aab565b9350614aed818560208601614abb565b614af6816146ff565b840191505092915050565b5f604083015f830151614b165f860182613efa565b5060208301518482036020860152614b2e8282614ac9565b9150508091505092915050565b5f6020820190508181035f830152614b538184614b01565b905092915050565b5f614b6582614aa1565b614b6f81856146e1565b9350614b7f818560208601614abb565b614b88816146ff565b840191505092915050565b5f6020820190508181035f830152614bab8184614b5b565b905092915050565b5f81519050614bc181613fd6565b92915050565b5f8060408385031215614bdd57614bdc613c9f565b5b5f614bea858286016149e9565b9250506020614bfb85828601614bb3565b9150509250929050565b5f614c0f82613d05565b9050919050565b5f614c2082614c05565b9050919050565b614c3081614c16565b8114614c3a575f80fd5b50565b5f81519050614c4b81614c27565b92915050565b5f614c63614c5e8461489b565b614879565b905082815260208101848484011115614c7f57614c7e614897565b5b614c8a848285614abb565b509392505050565b5f82601f830112614ca657614ca561425e565b5b8151614cb6848260208601614c51565b91505092915050565b5f60608284031215614cd457614cd3614817565b5b614cde6060614879565b90505f614ced8482850161478c565b5f830152506020614d0084828501614bb3565b602083015250604082015167ffffffffffffffff811115614d2457614d23614893565b5b614d3084828501614c92565b60408301525092915050565b5f67ffffffffffffffff821115614d5657614d5561481b565b5b602082029050602081019050919050565b5f614d79614d7484614d3c565b614879565b90508083825260208201905060208402830185811115614d9c57614d9b614266565b5b835b81811015614de357805167ffffffffffffffff811115614dc157614dc061425e565b5b808601614dce8982614cbf565b85526020850194505050602081019050614d9e565b5050509392505050565b5f82601f830112614e0157614e0061425e565b5b8151614e11848260208601614d67565b91505092915050565b5f81519050614e28816141a3565b92915050565b5f6101008284031215614e4457614e43614817565b5b614e4f610100614879565b90505f614e5e84828501614c3d565b5f83015250602082015167ffffffffffffffff811115614e8157614e80614893565b5b614e8d84828501614cbf565b602083015250604082015167ffffffffffffffff811115614eb157614eb0614893565b5b614ebd84828501614cbf565b604083015250606082015167ffffffffffffffff811115614ee157614ee0614893565b5b614eed84828501614cbf565b606083015250608082015167ffffffffffffffff811115614f1157614f10614893565b5b614f1d84828501614ded565b60808301525060a0614f3184828501614e1a565b60a08301525060c0614f45848285016149e9565b60c08301525060e0614f5984828501614bb3565b60e08301525092915050565b5f60208284031215614f7a57614f79613c9f565b5b5f82015167ffffffffffffffff811115614f9757614f96613ca3565b5b614fa384828501614e2e565b91505092915050565b5f614fb682613eb8565b9150614fc183613eb8565b9250828201905067ffffffffffffffff811115614fe157614fe06145e3565b5b92915050565b5f6020820190508181035f83015261500081848661470f565b90509392505050565b5f6020828403121561501e5761501d613c9f565b5b5f61502b84828501614e1a565b91505092915050565b5f6020828403121561504957615048613c9f565b5b5f61505684828501614bb3565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6150938161505f565b82525050565b5f6020820190506150ac5f83018461508a565b92915050565b5f6040820190506150c55f83018561508a565b6150d2602083018461417b565b9392505050565b5f6080820190506150ec5f8301876141f8565b6150f9602083018661417b565b615106604083018561417b565b615113606083018461417b565b95945050505050565b5f819050919050565b61513661513182613ca7565b61511c565b82525050565b5f6151478285615125565b6020820191506151578284615125565b6020820191508190509392505050565b5f60408201905061517a5f83018561417b565b61518760208301846141f8565b9392505050565b5f602082840312156151a3576151a2613c9f565b5b5f82015167ffffffffffffffff8111156151c0576151bf613ca3565b5b6151cc84828501614c92565b91505092915050565b600381106151e1575f80fd5b50565b5f815190506151f2816151d5565b92915050565b5f6080828403121561520d5761520c614817565b5b6152176080614879565b90505f615226848285016151e4565b5f83015250602061523984828501614bb3565b602083015250604061524d84828501614bb3565b604083015250606082015167ffffffffffffffff81111561527157615270614893565b5b61527d84828501614c92565b60608301525092915050565b5f6020828403121561529e5761529d613c9f565b5b5f82015167ffffffffffffffff8111156152bb576152ba613ca3565b5b6152c7848285016151f8565b91505092915050565b5f602082840312156152e5576152e4614817565b5b6152ef6020614879565b90505f6152fe848285016149e9565b5f8301525092915050565b5f6020828403121561531e5761531d613c9f565b5b5f61532b848285016152d0565b91505092915050565b602082015f8201516153485f850182613eda565b50505050565b5f6020820190506153615f830184615334565b92915050565b5f608083015f83015161537c5f8601826140ed565b50602083015161538f6020860182613efa565b5060408301516153a26040860182613efa565b50606083015184820360608601526153ba8282614ac9565b9150508091505092915050565b5f6020820190508181035f8301526153df8184615367565b905092915050565b5f606082840312156153fc576153fb614817565b5b6154066060614879565b90505f615415848285016149e9565b5f830152506020615428848285016149e9565b602083015250604082015167ffffffffffffffff81111561544c5761544b614893565b5b61545884828501614c92565b60408301525092915050565b5f6020828403121561547957615478613c9f565b5b5f82015167ffffffffffffffff81111561549657615495613ca3565b5b6154a2848285016153e7565b91505092915050565b5f606083015f8301516154c05f860182613eda565b5060208301516154d36020860182613eda565b50604083015184820360408601526154eb8282614ac9565b9150508091505092915050565b5f6020820190508181035f83015261551081846154ab565b905092915050565b5f806040838503121561552e5761552d613c9f565b5b5f61553b858286016149e9565b925050602083015167ffffffffffffffff81111561555c5761555b613ca3565b5b61556885828601614c92565b915050925092905056fea2646970667358221220be55f1e697f2023485c9127bd515ad65d975731fa37c63396acdde5e0b7d137764736f6c634300081a0033";
31
31
  function N(t) {
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
+ const e = t.state.current, f = t.state.connections.get(e), b = f == null ? void 0 : f.accounts, a = b == null ? void 0 : b[0], c = t.chains.find((n) => n.id === (f == null ? void 0 : f.chainId)), d = t.state.status;
33
33
  switch (d) {
34
34
  case "connected":
35
35
  return {
36
36
  address: a,
37
- addresses: e,
37
+ addresses: b,
38
38
  chain: c,
39
39
  chainId: f == null ? void 0 : f.chainId,
40
40
  connector: f == null ? void 0 : f.connector,
@@ -47,7 +47,7 @@ function N(t) {
47
47
  case "reconnecting":
48
48
  return {
49
49
  address: a,
50
- addresses: e,
50
+ addresses: b,
51
51
  chain: c,
52
52
  chainId: f == null ? void 0 : f.chainId,
53
53
  connector: f == null ? void 0 : f.connector,
@@ -60,7 +60,7 @@ function N(t) {
60
60
  case "connecting":
61
61
  return {
62
62
  address: a,
63
- addresses: e,
63
+ addresses: b,
64
64
  chain: c,
65
65
  chainId: f == null ? void 0 : f.chainId,
66
66
  connector: f == null ? void 0 : f.connector,
@@ -85,30 +85,30 @@ function N(t) {
85
85
  };
86
86
  }
87
87
  }
88
- function qf(t) {
88
+ function Wf(t) {
89
89
  return t.state.chainId;
90
90
  }
91
- function O(t, b, f) {
92
- const e = t[b.name];
93
- if (typeof e == "function")
94
- return e;
91
+ function O(t, e, f) {
92
+ const b = t[e.name];
93
+ if (typeof b == "function")
94
+ return b;
95
95
  const a = t[f];
96
- return typeof a == "function" ? a : (c) => b(t, c);
96
+ return typeof a == "function" ? a : (c) => e(t, c);
97
97
  }
98
- const Gf = "2.13.8", pf = () => `@wagmi/core@${Gf}`;
99
- var S = function(t, b, f, e) {
100
- if (f === "a" && !e) throw new TypeError("Private accessor was defined without a getter");
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");
102
- return f === "m" ? e : f === "a" ? e.call(t) : e ? e.value : b.get(t);
98
+ const Hf = "2.13.8", pf = () => `@wagmi/core@${Hf}`;
99
+ var S = function(t, e, f, b) {
100
+ if (f === "a" && !b) throw new TypeError("Private accessor was defined without a getter");
101
+ if (typeof e == "function" ? t !== e || !b : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
102
+ return f === "m" ? b : f === "a" ? b.call(t) : b ? b.value : e.get(t);
103
103
  }, I, M;
104
- class v extends Error {
104
+ class m extends Error {
105
105
  get docsBaseUrl() {
106
106
  return "https://wagmi.sh/core";
107
107
  }
108
108
  get version() {
109
109
  return pf();
110
110
  }
111
- constructor(b, f = {}) {
111
+ constructor(e, f = {}) {
112
112
  var c;
113
113
  super(), I.add(this), Object.defineProperty(this, "details", {
114
114
  enumerable: !0,
@@ -136,27 +136,27 @@ class v extends Error {
136
136
  writable: !0,
137
137
  value: "WagmiCoreError"
138
138
  });
139
- const e = f.cause instanceof v ? f.cause.details : (c = f.cause) != null && c.message ? f.cause.message : f.details, a = f.cause instanceof v && f.cause.docsPath || f.docsPath;
139
+ const b = f.cause instanceof m ? f.cause.details : (c = f.cause) != null && c.message ? f.cause.message : f.details, a = f.cause instanceof m && f.cause.docsPath || f.docsPath;
140
140
  this.message = [
141
- b || "An error occurred.",
141
+ e || "An error occurred.",
142
142
  "",
143
143
  ...f.metaMessages ? [...f.metaMessages, ""] : [],
144
144
  ...a ? [
145
145
  `Docs: ${this.docsBaseUrl}${a}.html${f.docsSlug ? `#${f.docsSlug}` : ""}`
146
146
  ] : [],
147
- ...e ? [`Details: ${e}`] : [],
147
+ ...b ? [`Details: ${b}`] : [],
148
148
  `Version: ${this.version}`
149
149
  ].join(`
150
- `), f.cause && (this.cause = f.cause), this.details = e, this.docsPath = a, this.metaMessages = f.metaMessages, this.shortMessage = b;
150
+ `), f.cause && (this.cause = f.cause), this.details = b, this.docsPath = a, this.metaMessages = f.metaMessages, this.shortMessage = e;
151
151
  }
152
- walk(b) {
153
- return S(this, I, "m", M).call(this, this, b);
152
+ walk(e) {
153
+ return S(this, I, "m", M).call(this, this, e);
154
154
  }
155
155
  }
156
- I = /* @__PURE__ */ new WeakSet(), M = function t(b, f) {
157
- return f != null && f(b) ? b : b.cause ? S(this, I, "m", t).call(this, b.cause, f) : b;
156
+ I = /* @__PURE__ */ new WeakSet(), M = function t(e, f) {
157
+ return f != null && f(e) ? e : e.cause ? S(this, I, "m", t).call(this, e.cause, f) : e;
158
158
  };
159
- class Uf extends v {
159
+ class Qf extends m {
160
160
  constructor() {
161
161
  super("Connector not connected."), Object.defineProperty(this, "name", {
162
162
  enumerable: !0,
@@ -166,9 +166,9 @@ class Uf extends v {
166
166
  });
167
167
  }
168
168
  }
169
- class Wf extends v {
170
- constructor({ address: b, connector: f }) {
171
- super(`Account "${b}" not found for connector "${f.name}".`), Object.defineProperty(this, "name", {
169
+ class Yf extends m {
170
+ constructor({ address: e, connector: f }) {
171
+ super(`Account "${e}" not found for connector "${f.name}".`), Object.defineProperty(this, "name", {
172
172
  enumerable: !0,
173
173
  configurable: !0,
174
174
  writable: !0,
@@ -176,12 +176,12 @@ class Wf extends v {
176
176
  });
177
177
  }
178
178
  }
179
- class kf extends v {
180
- constructor({ connectionChainId: b, connectorChainId: f }) {
181
- super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${b}).`, {
179
+ class Jf extends m {
180
+ constructor({ connectionChainId: e, connectorChainId: f }) {
181
+ super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`, {
182
182
  metaMessages: [
183
183
  `Current Chain ID: ${f}`,
184
- `Expected Chain ID: ${b}`
184
+ `Expected Chain ID: ${e}`
185
185
  ]
186
186
  }), Object.defineProperty(this, "name", {
187
187
  enumerable: !0,
@@ -191,9 +191,9 @@ class kf extends v {
191
191
  });
192
192
  }
193
193
  }
194
- class Hf extends v {
195
- constructor({ connector: b }) {
196
- super(`Connector "${b.name}" unavailable while reconnecting.`, {
194
+ class Kf extends m {
195
+ constructor({ connector: e }) {
196
+ super(`Connector "${e.name}" unavailable while reconnecting.`, {
197
197
  details: [
198
198
  "During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.",
199
199
  "All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.",
@@ -207,12 +207,12 @@ class Hf extends v {
207
207
  });
208
208
  }
209
209
  }
210
- async function V(t, b = {}) {
210
+ async function V(t, e = {}) {
211
211
  let f;
212
- if (b.connector) {
213
- const { connector: s } = b;
212
+ if (e.connector) {
213
+ const { connector: s } = e;
214
214
  if (t.state.status === "reconnecting" && !s.getAccounts && !s.getChainId)
215
- throw new Hf({ connector: s });
215
+ throw new Kf({ connector: s });
216
216
  const [w, g] = await Promise.all([
217
217
  s.getAccounts(),
218
218
  s.getChainId()
@@ -225,95 +225,95 @@ async function V(t, b = {}) {
225
225
  } else
226
226
  f = t.state.connections.get(t.state.current);
227
227
  if (!f)
228
- throw new Uf();
229
- const e = b.chainId ?? f.chainId, a = await f.connector.getChainId();
228
+ throw new Qf();
229
+ const b = e.chainId ?? f.chainId, a = await f.connector.getChainId();
230
230
  if (a !== f.chainId)
231
- throw new kf({
231
+ throw new Jf({
232
232
  connectionChainId: f.chainId,
233
233
  connectorChainId: a
234
234
  });
235
235
  const c = f.connector;
236
236
  if (c.getClient)
237
- return c.getClient({ chainId: e });
238
- const d = xf(b.account ?? f.accounts[0]);
239
- if (d.address = Tf(d.address), b.account && !f.accounts.some((s) => s.toLowerCase() === d.address.toLowerCase()))
240
- throw new Wf({
237
+ return c.getClient({ chainId: b });
238
+ const d = kf(e.account ?? f.accounts[0]);
239
+ if (d.address = Gf(d.address), e.account && !f.accounts.some((s) => s.toLowerCase() === d.address.toLowerCase()))
240
+ throw new Yf({
241
241
  address: d.address,
242
242
  connector: c
243
243
  });
244
- const n = t.chains.find((s) => s.id === e), i = await f.connector.getProvider({ chainId: e });
245
- return ef({
244
+ const n = t.chains.find((s) => s.id === b), i = await f.connector.getProvider({ chainId: b });
245
+ return tf({
246
246
  account: d,
247
247
  chain: n,
248
248
  name: "Connector Client",
249
- transport: (s) => af(i)({ ...s, retryCount: 0 })
249
+ transport: (s) => cf(i)({ ...s, retryCount: 0 })
250
250
  });
251
251
  }
252
- async function Qf(t, b) {
253
- const { abi: f, chainId: e, connector: a, ...c } = b;
252
+ async function Xf(t, e) {
253
+ const { abi: f, chainId: b, connector: a, ...c } = e;
254
254
  let d;
255
- b.account ? d = b.account : d = (await V(t, {
256
- chainId: e,
255
+ e.account ? d = e.account : d = (await V(t, {
256
+ chainId: b,
257
257
  connector: a
258
258
  })).account;
259
- const n = t.getClient({ chainId: e }), i = O(n, $f, "simulateContract"), { result: s, request: w } = await i({ ...c, abi: f, account: d });
259
+ const n = t.getClient({ chainId: b }), i = O(n, zf, "simulateContract"), { result: s, request: w } = await i({ ...c, abi: f, account: d });
260
260
  return {
261
261
  chainId: n.chain.id,
262
262
  result: s,
263
- request: { __mode: "prepared", ...w, chainId: e }
263
+ request: { __mode: "prepared", ...w, chainId: b }
264
264
  };
265
265
  }
266
- async function L(t, b) {
267
- const { account: f, chainId: e, connector: a, __mode: c, ...d } = b;
266
+ async function L(t, e) {
267
+ const { account: f, chainId: b, connector: a, __mode: c, ...d } = e;
268
268
  let n;
269
- typeof f == "object" && f.type === "local" ? n = t.getClient({ chainId: e }) : n = await V(t, { account: f, chainId: e, connector: a });
269
+ typeof f == "object" && f.type === "local" ? n = t.getClient({ chainId: b }) : n = await V(t, { account: f, chainId: b, connector: a });
270
270
  const { connector: i } = N(t);
271
271
  let s;
272
272
  if (c === "prepared" || i != null && i.supportsSimulation)
273
273
  s = d;
274
274
  else {
275
- const { request: o } = await Qf(t, {
275
+ const { request: o } = await Xf(t, {
276
276
  ...d,
277
277
  account: f,
278
- chainId: e
278
+ chainId: b
279
279
  });
280
280
  s = o;
281
281
  }
282
- return await O(n, jf, "writeContract")({
282
+ return await O(n, qf, "writeContract")({
283
283
  ...s,
284
284
  ...f ? { account: f } : {},
285
- chain: e ? { id: e } : null
285
+ chain: b ? { id: b } : null
286
286
  });
287
287
  }
288
- function Yf(t) {
289
- return t.address !== void 0 && typeof t.address == "object" ? (b, f) => {
288
+ function Zf(t) {
289
+ return t.address !== void 0 && typeof t.address == "object" ? (e, f) => {
290
290
  var d;
291
- const e = qf(b), a = N(b);
291
+ const b = Wf(e), a = N(e);
292
292
  let c;
293
- return f.chainId ? c = f.chainId : f.account && f.account === a.address || f.account === void 0 ? c = a.chainId : c = e, L(b, {
293
+ return f.chainId ? c = f.chainId : f.account && f.account === a.address || f.account === void 0 ? c = a.chainId : c = b, L(e, {
294
294
  ...f,
295
295
  ...t.functionName ? { functionName: t.functionName } : {},
296
296
  address: c ? (d = t.address) == null ? void 0 : d[c] : void 0,
297
297
  abi: t.abi
298
298
  });
299
- } : (b, f) => L(b, {
299
+ } : (e, f) => L(e, {
300
300
  ...f,
301
301
  ...t.address ? { address: t.address } : {},
302
302
  ...t.functionName ? { functionName: t.functionName } : {},
303
303
  abi: t.abi
304
304
  });
305
305
  }
306
- const Jf = 10000n, y = {
306
+ const f0 = 10000n, y = {
307
307
  31337: void 0,
308
- ...tf
309
- }, F0 = y[11155111] || m;
310
- function Kf(t) {
308
+ ...sf
309
+ }, O0 = y[11155111] || v;
310
+ function e0(t) {
311
311
  return t.address;
312
312
  }
313
- function Xf(t) {
313
+ function b0(t) {
314
314
  return t.registryAddress && t.protocolFeeReceiver && t.owner;
315
315
  }
316
- const _ = class _ extends wf {
316
+ const _ = class _ extends Af {
317
317
  /**
318
318
  * A getter that will return Boost core's static addresses by numerical chain ID
319
319
  *
@@ -333,21 +333,21 @@ const _ = class _ extends wf {
333
333
  * @param {?Account} [param0.account]
334
334
  * @param {({ address?: Address; } | { registryAddress: Address; protocolFeeReceiver: Address; owner: Address; })} param0....options
335
335
  */
336
- constructor({ config: b, account: f, ...e }) {
337
- if (Kf(e) && e.address)
338
- super({ account: f, config: b }, e.address);
339
- else if (Xf(e))
340
- super({ account: f, config: b }, [
341
- e.registryAddress,
342
- e.protocolFeeReceiver,
343
- e.owner
336
+ constructor({ config: e, account: f, ...b }) {
337
+ if (e0(b) && b.address)
338
+ super({ account: f, config: e }, b.address);
339
+ else if (b0(b))
340
+ super({ account: f, config: e }, [
341
+ b.registryAddress,
342
+ b.protocolFeeReceiver,
343
+ b.owner
344
344
  ]);
345
345
  else {
346
- const { address: a } = h(
347
- b,
346
+ const { address: a } = u(
347
+ e,
348
348
  y
349
349
  );
350
- super({ account: f, config: b }, a);
350
+ super({ account: f, config: e }, a);
351
351
  }
352
352
  this.abi = C;
353
353
  }
@@ -361,19 +361,19 @@ const _ = class _ extends wf {
361
361
  * @param {?WriteParams} [params]
362
362
  * @returns {Promise<Boost>}
363
363
  */
364
- async createBoost(b, f) {
365
- const [e, a] = this.validateDeploymentConfig(b), c = f == null ? void 0 : f.chainId, { chainId: d, address: n } = h(
364
+ async createBoost(e, f) {
365
+ const [b, a] = this.validateDeploymentConfig(e), c = f == null ? void 0 : f.chainId, { chainId: d, address: n } = u(
366
366
  a.config,
367
367
  this.addresses,
368
368
  c
369
- ), i = Yf({
369
+ ), i = Zf({
370
370
  abi: C,
371
371
  functionName: "createBoost",
372
372
  address: n
373
373
  }), s = await this.prepareCreateBoostPayload(
374
374
  n,
375
375
  d,
376
- e,
376
+ b,
377
377
  a
378
378
  ), w = await i(a.config, {
379
379
  ...this.optionallyAttachAccount(a.account),
@@ -381,7 +381,7 @@ const _ = class _ extends wf {
381
381
  ...f,
382
382
  chainId: d,
383
383
  args: [B(s)]
384
- }), g = await X(a.config, {
384
+ }), g = await ff(a.config, {
385
385
  hash: w
386
386
  }), o = P({
387
387
  abi: C,
@@ -389,26 +389,42 @@ const _ = class _ extends wf {
389
389
  logs: g.logs
390
390
  }).at(0);
391
391
  let r = 0n;
392
- if (!o) throw new Ff();
392
+ if (!o) throw new Of();
393
393
  r = o == null ? void 0 : o.args.boostId;
394
- const u = await this.readBoost(r);
394
+ const l = await this.readBoost(r);
395
395
  return new E({
396
396
  id: r,
397
- budget: e.budget.at(u.budget),
398
- action: e.action.at(u.action),
399
- validator: e.validator.at(u.validator),
400
- allowList: e.allowList.at(u.allowList),
401
- incentives: e.incentives.map(
397
+ budget: b.budget.at(l.budget),
398
+ action: b.action.at(l.action),
399
+ validator: b.validator.at(l.validator),
400
+ allowList: b.allowList.at(l.allowList),
401
+ incentives: b.incentives.map(
402
402
  (A, $) => (
403
403
  // biome-ignore lint/style/noNonNullAssertion: this will never be undefined
404
- A.at(u.incentives.at($))
404
+ A.at(l.incentives.at($))
405
405
  )
406
406
  ),
407
- protocolFee: u.protocolFee,
408
- maxParticipants: u.maxParticipants,
409
- owner: u.owner
407
+ protocolFee: l.protocolFee,
408
+ maxParticipants: l.maxParticipants,
409
+ owner: l.owner
410
410
  });
411
411
  }
412
+ /**
413
+ * Create a new Boost.
414
+ *
415
+ * @public
416
+ * @async
417
+ * @param {CreateBoostPayload} _boostPayload
418
+ * @param {?WriteParams} [params]
419
+ * @returns {Promise<HashAndSimulatedResult>}
420
+ */
421
+ async createBoostRaw(e, f) {
422
+ const { request: b, result: a } = await this.simulateCreateBoost(
423
+ e,
424
+ f
425
+ );
426
+ return { hash: await j(this._config, b), result: a };
427
+ }
412
428
  /**
413
429
  * Returns a simulated Boost creation.
414
430
  *
@@ -418,18 +434,18 @@ const _ = class _ extends wf {
418
434
  * @param {?WriteParams} [params]
419
435
  * @returns {Promise<SimulateContractReturnType>}
420
436
  */
421
- async simulateCreateBoost(b, f) {
422
- const [e, a] = this.validateDeploymentConfig(b), c = f == null ? void 0 : f.chainId, { chainId: d, address: n } = h(
437
+ async simulateCreateBoost(e, f) {
438
+ const [b, a] = this.validateDeploymentConfig(e), c = f == null ? void 0 : f.chainId, { chainId: d, address: n } = u(
423
439
  a.config,
424
440
  this.addresses,
425
441
  c
426
442
  ), i = await this.prepareCreateBoostPayload(
427
443
  n,
428
444
  d,
429
- e,
445
+ b,
430
446
  a
431
447
  );
432
- return await j(this._config, {
448
+ return await x(this._config, {
433
449
  ...this.optionallyAttachAccount(),
434
450
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
435
451
  ...f,
@@ -439,104 +455,104 @@ const _ = class _ extends wf {
439
455
  });
440
456
  }
441
457
  // This function mutates payload, which isn't awesome but it's fine
442
- async prepareCreateBoostPayload(b, f, e, a) {
458
+ async prepareCreateBoostPayload(e, f, b, a) {
443
459
  var g;
444
- if (!e.owner && (e.owner = ((g = this._account) == null ? void 0 : g.address) || Z(a.config).address || m, e.owner === m))
445
- throw new Lf();
446
- if (!e.validator) {
447
- const r = ff(a.config).filter(
460
+ if (!b.owner && (b.owner = ((g = this._account) == null ? void 0 : g.address) || ef(a.config).address || v, b.owner === v))
461
+ throw new Sf();
462
+ if (!b.validator) {
463
+ const r = bf(a.config).filter(
448
464
  (A) => !!this.addresses[A.id] && A.id === f
449
465
  ).at(0);
450
466
  if (!r)
451
- throw new Df(
467
+ throw new Mf(
452
468
  f,
453
469
  Object.keys(this.addresses).map(Number)
454
470
  );
455
- const u = r.testnet || r.id === 31337;
456
- e.validator = this.SignerValidator({
471
+ const l = r.testnet || r.id === 31337;
472
+ b.validator = this.SignerValidator({
457
473
  signers: [
458
- u ? F.TESTNET : F.MAINNET
474
+ l ? F.TESTNET : F.MAINNET
459
475
  ],
460
- validatorCaller: b
476
+ validatorCaller: e
461
477
  });
462
478
  }
463
- let c = m;
464
- if (e.budget.address) {
465
- if (c = e.budget.address, !await e.budget.isAuthorized(b))
466
- throw new Nf(b);
479
+ let c = v;
480
+ if (b.budget.address) {
481
+ if (c = b.budget.address, !await b.budget.isAuthorized(e))
482
+ throw new Vf(e);
467
483
  } else
468
- throw new Of();
484
+ throw new $f();
469
485
  let d = {
470
- instance: m,
486
+ instance: v,
471
487
  isBase: !0,
472
- parameters: l
488
+ parameters: h
473
489
  };
474
- if (e.action.address) {
475
- const o = e.action.isBase;
490
+ if (b.action.address) {
491
+ const o = b.action.isBase;
476
492
  d = {
477
493
  isBase: o,
478
- instance: e.action.address,
479
- parameters: o ? e.action.buildParameters(void 0, a).args.at(0) || l : l
494
+ instance: b.action.address,
495
+ parameters: o ? b.action.buildParameters(void 0, a).args.at(0) || h : h
480
496
  };
481
497
  } else
482
- d.parameters = e.action.buildParameters(void 0, a).args.at(0) || l, d.instance = h(
498
+ d.parameters = b.action.buildParameters(void 0, a).args.at(0) || h, d.instance = u(
483
499
  a.config,
484
- e.action.bases,
500
+ b.action.bases,
485
501
  f
486
502
  ).address;
487
503
  let n = {
488
- instance: m,
504
+ instance: v,
489
505
  isBase: !0,
490
- parameters: l
506
+ parameters: h
491
507
  };
492
- if (e.validator.address) {
493
- const o = e.validator.isBase;
508
+ if (b.validator.address) {
509
+ const o = b.validator.isBase;
494
510
  n = {
495
511
  isBase: o,
496
- instance: e.validator.address,
497
- parameters: o ? e.validator.buildParameters(void 0, a).args.at(0) || l : l
512
+ instance: b.validator.address,
513
+ parameters: o ? b.validator.buildParameters(void 0, a).args.at(0) || h : h
498
514
  };
499
515
  } else
500
- n.parameters = e.validator.buildParameters(void 0, a).args.at(0) || l, n.instance = h(
516
+ n.parameters = b.validator.buildParameters(void 0, a).args.at(0) || h, n.instance = u(
501
517
  a.config,
502
- e.validator.bases,
518
+ b.validator.bases,
503
519
  f
504
520
  ).address;
505
521
  let i = {
506
- instance: m,
522
+ instance: v,
507
523
  isBase: !0,
508
- parameters: l
524
+ parameters: h
509
525
  };
510
- if (e.allowList || (e.allowList = this.OpenAllowList()), e.allowList.address) {
511
- const o = e.allowList.isBase;
526
+ if (b.allowList || (b.allowList = this.OpenAllowList()), b.allowList.address) {
527
+ const o = b.allowList.isBase;
512
528
  i = {
513
529
  isBase: o,
514
- instance: e.allowList.address,
515
- parameters: o ? l : l
530
+ instance: b.allowList.address,
531
+ parameters: o ? h : h
516
532
  };
517
533
  } else
518
- i.parameters = e.allowList.buildParameters(void 0, a).args.at(0) || l, i.instance = h(
534
+ i.parameters = b.allowList.buildParameters(void 0, a).args.at(0) || h, i.instance = u(
519
535
  a.config,
520
- e.allowList.bases,
536
+ b.allowList.bases,
521
537
  f
522
538
  ).address;
523
- const s = e.incentives.map(() => ({
524
- instance: m,
539
+ const s = b.incentives.map(() => ({
540
+ instance: v,
525
541
  isBase: !0,
526
- parameters: l
542
+ parameters: h
527
543
  }));
528
- for (let o = 0; o < e.incentives.length; o++) {
529
- const r = e.incentives.at(o);
544
+ for (let o = 0; o < b.incentives.length; o++) {
545
+ const r = b.incentives.at(o);
530
546
  if (r.address) {
531
- const u = r.isBase;
532
- if (!u) throw new Sf(r);
547
+ const l = r.isBase;
548
+ if (!l) throw new jf(r);
533
549
  s[o] = {
534
- isBase: u,
550
+ isBase: l,
535
551
  instance: r.address,
536
- parameters: u ? r.buildParameters(void 0, a).args.at(0) || l : l
552
+ parameters: l ? r.buildParameters(void 0, a).args.at(0) || h : h
537
553
  };
538
554
  } else
539
- s[o].parameters = r.buildParameters(void 0, a).args.at(0) || l, s[o].instance = h(
555
+ s[o].parameters = r.buildParameters(void 0, a).args.at(0) || h, s[o].instance = u(
540
556
  a.config,
541
557
  r.bases,
542
558
  f
@@ -548,9 +564,9 @@ const _ = class _ extends wf {
548
564
  validator: n,
549
565
  allowList: i,
550
566
  incentives: s,
551
- protocolFee: e.protocolFee || 0n,
552
- maxParticipants: e.maxParticipants || 0n,
553
- owner: e.owner
567
+ protocolFee: b.protocolFee || 0n,
568
+ maxParticipants: b.maxParticipants || 0n,
569
+ owner: b.owner
554
570
  };
555
571
  }
556
572
  /**
@@ -565,9 +581,9 @@ const _ = class _ extends wf {
565
581
  * @param {?WriteParams} [params]
566
582
  * @returns {Promise<void>}
567
583
  */
568
- async claimIncentive(b, f, e, a, c) {
584
+ async claimIncentive(e, f, b, a, c) {
569
585
  return await this.awaitResult(
570
- this.claimIncentiveRaw(b, f, e, a, c)
586
+ this.claimIncentiveRaw(e, f, b, a, c)
571
587
  );
572
588
  }
573
589
  /**
@@ -582,22 +598,22 @@ const _ = class _ extends wf {
582
598
  * @param {?WriteParams} [params]
583
599
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
584
600
  */
585
- async claimIncentiveRaw(b, f, e, a, c) {
586
- const { request: d, result: n } = await x(
601
+ async claimIncentiveRaw(e, f, b, a, c) {
602
+ const { request: d, result: n } = await T(
587
603
  this._config,
588
604
  {
589
- ...h(
605
+ ...u(
590
606
  this._config,
591
607
  this.addresses,
592
608
  c == null ? void 0 : c.chainId
593
609
  ),
594
- args: [b, f, e, a],
610
+ args: [e, f, b, a],
595
611
  ...this.optionallyAttachAccount(),
596
612
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
597
613
  ...c
598
614
  }
599
615
  );
600
- return { hash: await T(this._config, d), result: n };
616
+ return { hash: await z(this._config, d), result: n };
601
617
  }
602
618
  /**
603
619
  * Claims one incentive for a given `Boost` on behalf of another user by `boostId` and `incentiveId`
@@ -612,12 +628,12 @@ const _ = class _ extends wf {
612
628
  * @param {?WriteParams} [params]
613
629
  * @returns {Promise<void>}
614
630
  */
615
- async claimIncentiveFor(b, f, e, a, c, d) {
631
+ async claimIncentiveFor(e, f, b, a, c, d) {
616
632
  return await this.awaitResult(
617
633
  this.claimIncentiveForRaw(
618
- b,
619
- f,
620
634
  e,
635
+ f,
636
+ b,
621
637
  a,
622
638
  c,
623
639
  d
@@ -637,22 +653,22 @@ const _ = class _ extends wf {
637
653
  * @param {?WriteParams} [params]
638
654
  * @returns {Promise<{ hash: Hex; result: void; }>}
639
655
  */
640
- async claimIncentiveForRaw(b, f, e, a, c, d) {
641
- const { request: n, result: i } = await z(
656
+ async claimIncentiveForRaw(e, f, b, a, c, d) {
657
+ const { request: n, result: i } = await q(
642
658
  this._config,
643
659
  {
644
- ...h(
660
+ ...u(
645
661
  this._config,
646
662
  this.addresses,
647
663
  d == null ? void 0 : d.chainId
648
664
  ),
649
- args: [b, f, e, a, c],
665
+ args: [e, f, b, a, c],
650
666
  ...this.optionallyAttachAccount(),
651
667
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
652
668
  ...d
653
669
  }
654
670
  );
655
- return { hash: await q(this._config, n), result: i };
671
+ return { hash: await k(this._config, n), result: i };
656
672
  }
657
673
  /**
658
674
  * Get a Boost by index, will return the raw on chain representation of a Boost.
@@ -664,12 +680,12 @@ const _ = class _ extends wf {
664
680
  * @returns {Promise<RawBoost>}
665
681
  * @throws {@link BoostNotFoundError}
666
682
  */
667
- async readBoost(b, f) {
668
- var e;
683
+ async readBoost(e, f) {
684
+ var b;
669
685
  try {
670
686
  let a;
671
- return typeof b == "string" ? a = BigInt(b) : a = b, await G(this._config, {
672
- ...h(
687
+ return typeof e == "string" ? a = BigInt(e) : a = e, await G(this._config, {
688
+ ...u(
673
689
  this._config,
674
690
  this.addresses,
675
691
  f == null ? void 0 : f.chainId
@@ -680,7 +696,7 @@ const _ = class _ extends wf {
680
696
  ...f
681
697
  });
682
698
  } catch (a) {
683
- throw (e = a == null ? void 0 : a.message) != null && e.includes("bounds") ? new Mf(String(b)) : a;
699
+ throw (b = a == null ? void 0 : a.message) != null && b.includes("bounds") ? new xf(String(e)) : a;
684
700
  }
685
701
  }
686
702
  /**
@@ -693,25 +709,25 @@ const _ = class _ extends wf {
693
709
  * @returns {Promise<Boost>}
694
710
  * @throws {@link BoostNotFoundError}
695
711
  */
696
- async getBoost(b, f) {
697
- let e;
698
- typeof b == "string" ? e = BigInt(b) : e = b;
699
- const { protocolFee: a, maxParticipants: c, owner: d, ...n } = await this.readBoost(e, f), i = {
712
+ async getBoost(e, f) {
713
+ let b;
714
+ typeof e == "string" ? b = BigInt(e) : b = e;
715
+ const { protocolFee: a, maxParticipants: c, owner: d, ...n } = await this.readBoost(b, f), i = {
700
716
  config: this._config,
701
717
  account: this._account
702
718
  }, [s, w, g, o, r] = await Promise.all([
703
- cf(i, n.action, f),
704
- lf(i, n.budget, f),
705
- Rf(i, n.validator, f),
706
- nf(i, n.allowList, f),
719
+ of(i, n.action, f),
720
+ vf(i, n.budget, f),
721
+ Nf(i, n.validator, f),
722
+ uf(i, n.allowList, f),
707
723
  Promise.all(
708
724
  n.incentives.map(
709
- (u) => Af(i, u, f)
725
+ (l) => Pf(i, l, f)
710
726
  )
711
727
  )
712
728
  ]);
713
729
  return new E({
714
- id: e,
730
+ id: b,
715
731
  action: s,
716
732
  budget: w,
717
733
  validator: g,
@@ -730,17 +746,17 @@ const _ = class _ extends wf {
730
746
  * @param {?ReadParams} [params]
731
747
  * @returns {Promise<bigint>}
732
748
  */
733
- async getBoostCount(b) {
734
- return await p(this._config, {
735
- ...h(
749
+ async getBoostCount(e) {
750
+ return await U(this._config, {
751
+ ...u(
736
752
  this._config,
737
753
  this.addresses,
738
- b == null ? void 0 : b.chainId
754
+ e == null ? void 0 : e.chainId
739
755
  ),
740
756
  args: [],
741
757
  ...this.optionallyAttachAccount(),
742
758
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
743
- ...b
759
+ ...e
744
760
  });
745
761
  }
746
762
  /**
@@ -753,11 +769,11 @@ const _ = class _ extends wf {
753
769
  * ReadParams} [params]
754
770
  * @returns {Promise<boolean>}
755
771
  */
756
- async isAuthorized(b, f) {
757
- const e = await this.createBoostAuth(f);
758
- return U(this._config, {
759
- address: e,
760
- args: [b],
772
+ async isAuthorized(e, f) {
773
+ const b = await this.createBoostAuth(f);
774
+ return W(this._config, {
775
+ address: b,
776
+ args: [e],
761
777
  ...this.optionallyAttachAccount(),
762
778
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
763
779
  ...f
@@ -771,17 +787,17 @@ const _ = class _ extends wf {
771
787
  * @param {?ReadParams} [params]
772
788
  * @returns {Promise<Address>}
773
789
  */
774
- async createBoostAuth(b) {
775
- return await W(this._config, {
776
- ...h(
790
+ async createBoostAuth(e) {
791
+ return await H(this._config, {
792
+ ...u(
777
793
  this._config,
778
794
  this.addresses,
779
- b == null ? void 0 : b.chainId
795
+ e == null ? void 0 : e.chainId
780
796
  ),
781
797
  args: [],
782
798
  ...this.optionallyAttachAccount(),
783
799
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
784
- ...b
800
+ ...e
785
801
  });
786
802
  }
787
803
  /**
@@ -793,9 +809,9 @@ const _ = class _ extends wf {
793
809
  * @param {?WriteParams} [params]
794
810
  * @returns {Promise<void>}
795
811
  */
796
- async setCreateBoostAuth(b, f) {
812
+ async setCreateBoostAuth(e, f) {
797
813
  return await this.awaitResult(
798
- this.setCreateBoostAuthRaw(b.assertValidAddress(), {
814
+ this.setCreateBoostAuthRaw(e.assertValidAddress(), {
799
815
  ...f
800
816
  })
801
817
  );
@@ -809,22 +825,22 @@ const _ = class _ extends wf {
809
825
  * @param {?WriteParams} [params]
810
826
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
811
827
  */
812
- async setCreateBoostAuthRaw(b, f) {
813
- const { request: e, result: a } = await k(
828
+ async setCreateBoostAuthRaw(e, f) {
829
+ const { request: b, result: a } = await p(
814
830
  this._config,
815
831
  {
816
- ...h(
832
+ ...u(
817
833
  this._config,
818
834
  this.addresses,
819
835
  f == null ? void 0 : f.chainId
820
836
  ),
821
- args: [b],
837
+ args: [e],
822
838
  ...this.optionallyAttachAccount(),
823
839
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
824
840
  ...f
825
841
  }
826
842
  );
827
- return { hash: await H(this._config, e), result: a };
843
+ return { hash: await Q(this._config, b), result: a };
828
844
  }
829
845
  /**
830
846
  * Get the protocol fee.
@@ -834,17 +850,17 @@ const _ = class _ extends wf {
834
850
  * @param {?ReadParams} [params]
835
851
  * @returns {unknown}
836
852
  */
837
- async protocolFee(b) {
838
- return await Q(this._config, {
839
- ...h(
853
+ async protocolFee(e) {
854
+ return await Y(this._config, {
855
+ ...u(
840
856
  this._config,
841
857
  this.addresses,
842
- b == null ? void 0 : b.chainId
858
+ e == null ? void 0 : e.chainId
843
859
  ),
844
860
  args: [],
845
861
  ...this.optionallyAttachAccount(),
846
862
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
847
- ...b
863
+ ...e
848
864
  });
849
865
  }
850
866
  /**
@@ -855,17 +871,17 @@ const _ = class _ extends wf {
855
871
  * @param {?ReadParams} [params]
856
872
  * @returns {Promise<Address>}
857
873
  */
858
- async protocolFeeReceiver(b) {
859
- return await Y(this._config, {
860
- ...h(
874
+ async protocolFeeReceiver(e) {
875
+ return await J(this._config, {
876
+ ...u(
861
877
  this._config,
862
878
  this.addresses,
863
- b == null ? void 0 : b.chainId
879
+ e == null ? void 0 : e.chainId
864
880
  ),
865
881
  args: [],
866
882
  ...this.optionallyAttachAccount(),
867
883
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
868
- ...b
884
+ ...e
869
885
  });
870
886
  }
871
887
  /**
@@ -877,9 +893,9 @@ const _ = class _ extends wf {
877
893
  * @param {?WriteParams} [params]
878
894
  * @returns {Promise<void>}
879
895
  */
880
- async setProcolFeeReceiver(b, f) {
896
+ async setProcolFeeReceiver(e, f) {
881
897
  return await this.awaitResult(
882
- this.setProcolFeeReceiverRaw(b, {
898
+ this.setProcolFeeReceiverRaw(e, {
883
899
  ...f
884
900
  })
885
901
  );
@@ -893,26 +909,52 @@ const _ = class _ extends wf {
893
909
  * @param {?WriteParams} [params]
894
910
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
895
911
  */
896
- async setProcolFeeReceiverRaw(b, f) {
897
- const { request: e, result: a } = await J(
912
+ async setProcolFeeReceiverRaw(e, f) {
913
+ const { request: b, result: a } = await K(
898
914
  this._config,
899
915
  {
900
- ...h(
916
+ ...u(
901
917
  this._config,
902
918
  this.addresses,
903
919
  f == null ? void 0 : f.chainId
904
920
  ),
905
- args: [b],
921
+ args: [e],
906
922
  ...this.optionallyAttachAccount(),
907
923
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
908
924
  ...f
909
925
  }
910
926
  );
911
- return { hash: await K(
927
+ return { hash: await X(
912
928
  this._config,
913
- e
929
+ b
914
930
  ), result: a };
915
931
  }
932
+ /**
933
+ * Get the incentives fees information for a given Boost ID and Incentive ID.
934
+ *
935
+ * @public
936
+ * @async
937
+ * @param {bigint} boostId - The ID of the Boost
938
+ * @param {bigint} incentiveId - The ID of the Incentive
939
+ * @param {?ReadParams} [params]
940
+ * @returns {Promise<IncentiveDisbursalInfo>}
941
+ */
942
+ async getIncentiveFeesInfo(e, f, b) {
943
+ const a = df(
944
+ nf(["uint256", "uint256"], [e, f])
945
+ );
946
+ return await Z(this._config, {
947
+ ...u(
948
+ this._config,
949
+ this.addresses,
950
+ b == null ? void 0 : b.chainId
951
+ ),
952
+ args: [a],
953
+ ...this.optionallyAttachAccount(),
954
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
955
+ ...b
956
+ });
957
+ }
916
958
  /**
917
959
  * Retrieves the claim information from a transaction receipt.
918
960
  *
@@ -936,9 +978,9 @@ const _ = class _ extends wf {
936
978
  * }
937
979
  * ```
938
980
  */
939
- async getClaimFromTransaction(b) {
981
+ async getClaimFromTransaction(e) {
940
982
  var a;
941
- const f = await bf(this._config, b);
983
+ const f = await af(this._config, e);
942
984
  return (a = P({
943
985
  abi: C,
944
986
  eventName: "BoostClaimed",
@@ -968,9 +1010,9 @@ const _ = class _ extends wf {
968
1010
  * @param {?ReadParams} [params]
969
1011
  * @returns {Promise<void>}
970
1012
  */
971
- async calculateProtocolFee(b, f) {
972
- const e = await this.protocolFee(f);
973
- return b * e / Jf;
1013
+ async calculateProtocolFee(e, f) {
1014
+ const b = await this.protocolFee(f);
1015
+ return e * b / f0;
974
1016
  }
975
1017
  /**
976
1018
  * Bound {@link PassthroughAuth} constructor that reuses the same configuration as the Boost Core instance.
@@ -983,10 +1025,10 @@ const _ = class _ extends wf {
983
1025
  * @param {Address} address
984
1026
  * @returns {PassthroughAuth}
985
1027
  */
986
- PassthroughAuth(b) {
987
- return new uf(
1028
+ PassthroughAuth(e) {
1029
+ return new wf(
988
1030
  { config: this._config, account: this._account },
989
- b
1031
+ e
990
1032
  );
991
1033
  }
992
1034
  // /**
@@ -1019,10 +1061,10 @@ const _ = class _ extends wf {
1019
1061
  * const action = core.EventAction('0x') // is roughly equivalent to
1020
1062
  * const action = new EventAction({ config: core._config, account: core._account }, '0x')
1021
1063
  */
1022
- EventAction(b, f) {
1023
- return new df(
1064
+ EventAction(e, f) {
1065
+ return new rf(
1024
1066
  { config: this._config, account: this._account },
1025
- b,
1067
+ e,
1026
1068
  f
1027
1069
  );
1028
1070
  }
@@ -1059,11 +1101,11 @@ const _ = class _ extends wf {
1059
1101
  * @param {?boolean} [isBase]
1060
1102
  * @returns {OpenAllowList}
1061
1103
  */
1062
- OpenAllowList(b) {
1063
- return new sf(
1104
+ OpenAllowList(e) {
1105
+ return new lf(
1064
1106
  { config: this._config, account: this._account },
1065
1107
  void 0,
1066
- b
1108
+ e
1067
1109
  );
1068
1110
  }
1069
1111
  /**
@@ -1078,10 +1120,10 @@ const _ = class _ extends wf {
1078
1120
  * @param {?boolean} [isBase]
1079
1121
  * @returns {SimpleAllowList}
1080
1122
  */
1081
- SimpleAllowList(b, f) {
1082
- return new of(
1123
+ SimpleAllowList(e, f) {
1124
+ return new hf(
1083
1125
  { config: this._config, account: this._account },
1084
- b,
1126
+ e,
1085
1127
  f
1086
1128
  );
1087
1129
  }
@@ -1097,10 +1139,10 @@ const _ = class _ extends wf {
1097
1139
  * @param {?boolean} [isBase]
1098
1140
  * @returns {SimpleDenyList}
1099
1141
  */
1100
- SimpleDenyList(b, f) {
1101
- return new rf(
1142
+ SimpleDenyList(e, f) {
1143
+ return new gf(
1102
1144
  { config: this._config, account: this._account },
1103
- b,
1145
+ e,
1104
1146
  f
1105
1147
  );
1106
1148
  }
@@ -1132,10 +1174,10 @@ const _ = class _ extends wf {
1132
1174
  * @param {DeployablePayloadOrAddress<ManagedBudgetPayload>} options
1133
1175
  * @returns {ManagedBudget}
1134
1176
  */
1135
- ManagedBudget(b) {
1136
- return typeof b != "string" && !b.authorized.includes(this.assertValidAddress()) && (b.authorized = [this.assertValidAddress(), ...b.authorized], b.roles = [R.MANAGER, ...b.roles]), new gf(
1177
+ ManagedBudget(e) {
1178
+ return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new Cf(
1137
1179
  { config: this._config, account: this._account },
1138
- b
1180
+ e
1139
1181
  );
1140
1182
  }
1141
1183
  /**
@@ -1150,10 +1192,10 @@ const _ = class _ extends wf {
1150
1192
  * @param {DeployablePayloadOrAddress<ManagedBudgetWithFeesPayload>} options
1151
1193
  * @returns {ManagedBudgetWithFees}
1152
1194
  */
1153
- ManagedBudgetWithFees(b) {
1154
- return typeof b != "string" && !b.authorized.includes(this.assertValidAddress()) && (b.authorized = [this.assertValidAddress(), ...b.authorized], b.roles = [R.MANAGER, ...b.roles]), new hf(
1195
+ ManagedBudgetWithFees(e) {
1196
+ return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new mf(
1155
1197
  { config: this._config, account: this._account },
1156
- b
1198
+ e
1157
1199
  );
1158
1200
  }
1159
1201
  // /**
@@ -1184,10 +1226,10 @@ const _ = class _ extends wf {
1184
1226
  * @param {DeployablePayloadOrAddress<VestingBudgetPayload>} options
1185
1227
  * @returns {VestingBudget}
1186
1228
  */
1187
- AllowListIncentive(b) {
1188
- return new mf(
1229
+ AllowListIncentive(e) {
1230
+ return new If(
1189
1231
  { config: this._config, account: this._account },
1190
- b
1232
+ e
1191
1233
  );
1192
1234
  }
1193
1235
  /**
@@ -1201,10 +1243,10 @@ const _ = class _ extends wf {
1201
1243
  * @param {CGDAIncentivePayload} options
1202
1244
  * @returns {CGDAIncentive}
1203
1245
  */
1204
- CGDAIncentive(b) {
1205
- return new vf(
1246
+ CGDAIncentive(e) {
1247
+ return new yf(
1206
1248
  { config: this._config, account: this._account },
1207
- b
1249
+ e
1208
1250
  );
1209
1251
  }
1210
1252
  /**
@@ -1218,10 +1260,10 @@ const _ = class _ extends wf {
1218
1260
  * @param {ERC20IncentivePayload} options
1219
1261
  * @returns {ERC20Incentive}
1220
1262
  */
1221
- ERC20Incentive(b) {
1222
- return new Cf(
1263
+ ERC20Incentive(e) {
1264
+ return new _f(
1223
1265
  { config: this._config, account: this._account },
1224
- b
1266
+ e
1225
1267
  );
1226
1268
  }
1227
1269
  /**
@@ -1235,10 +1277,10 @@ const _ = class _ extends wf {
1235
1277
  * @param {ERC20PeggedIncentivePayload} options
1236
1278
  * @returns {ERC20PeggedIncentive}
1237
1279
  */
1238
- ERC20PeggedIncentive(b) {
1239
- return new If(
1280
+ ERC20PeggedIncentive(e) {
1281
+ return new Bf(
1240
1282
  { config: this._config, account: this._account },
1241
- b
1283
+ e
1242
1284
  );
1243
1285
  }
1244
1286
  // /**
@@ -1271,10 +1313,10 @@ const _ = class _ extends wf {
1271
1313
  * @param {PointsIncentivePayload} options
1272
1314
  * @returns {PointsIncentive}
1273
1315
  */
1274
- PointsIncentive(b) {
1275
- return new Pf(
1316
+ PointsIncentive(e) {
1317
+ return new Ff(
1276
1318
  { config: this._config, account: this._account },
1277
- b
1319
+ e
1278
1320
  );
1279
1321
  }
1280
1322
  /**
@@ -1289,10 +1331,10 @@ const _ = class _ extends wf {
1289
1331
  * @param {?boolean} [isBase]
1290
1332
  * @returns {SignerValidator}
1291
1333
  */
1292
- SignerValidator(b, f) {
1293
- return new Ef(
1334
+ SignerValidator(e, f) {
1335
+ return new Df(
1294
1336
  { config: this._config, account: this._account },
1295
- b,
1337
+ e,
1296
1338
  f
1297
1339
  );
1298
1340
  }
@@ -1308,10 +1350,10 @@ const _ = class _ extends wf {
1308
1350
  * @param {?boolean} [isBase]
1309
1351
  * @returns {LimitedSignerValidator}
1310
1352
  */
1311
- LimitedSignerValidator(b, f) {
1312
- return new Bf(
1353
+ LimitedSignerValidator(e, f) {
1354
+ return new Lf(
1313
1355
  { config: this._config, account: this._account },
1314
- b,
1356
+ e,
1315
1357
  f
1316
1358
  );
1317
1359
  }
@@ -1327,10 +1369,10 @@ const _ = class _ extends wf {
1327
1369
  * @param {?boolean} [isBase]
1328
1370
  * @returns {ERC20VariableCrtieriaIncentive}
1329
1371
  * */
1330
- ERC20VariableCriteriaIncentive(b, f) {
1331
- return new _f(
1372
+ ERC20VariableCriteriaIncentive(e, f) {
1373
+ return new Rf(
1332
1374
  { config: this._config, account: this._account },
1333
- b,
1375
+ e,
1334
1376
  f
1335
1377
  );
1336
1378
  }
@@ -1346,10 +1388,10 @@ const _ = class _ extends wf {
1346
1388
  * @param {?boolean} [isBase]
1347
1389
  * @returns {ERC20PeggedVariableCriteriaIncentive}
1348
1390
  * */
1349
- ERC20PeggedVariableCriteriaIncentive(b, f) {
1350
- return new yf(
1391
+ ERC20PeggedVariableCriteriaIncentive(e, f) {
1392
+ return new Ef(
1351
1393
  { config: this._config, account: this._account },
1352
- b,
1394
+ e,
1353
1395
  f
1354
1396
  );
1355
1397
  }
@@ -1365,10 +1407,10 @@ const _ = class _ extends wf {
1365
1407
  * @param {?boolean} [isBase]
1366
1408
  * @returns {ERC20VariableIncentive}
1367
1409
  */
1368
- ERC20VariableIncentive(b, f) {
1369
- return new Vf(
1410
+ ERC20VariableIncentive(e, f) {
1411
+ return new Tf(
1370
1412
  { config: this._config, account: this._account },
1371
- b,
1413
+ e,
1372
1414
  f
1373
1415
  );
1374
1416
  }
@@ -1380,15 +1422,15 @@ const _ = class _ extends wf {
1380
1422
  * @param {?DeployableOptions} [_options]
1381
1423
  * @returns {GenericDeployableParams}
1382
1424
  */
1383
- buildParameters(b, f) {
1384
- const [e, a] = this.validateDeploymentConfig(
1385
- b,
1425
+ buildParameters(e, f) {
1426
+ const [b, a] = this.validateDeploymentConfig(
1427
+ e,
1386
1428
  f
1387
1429
  );
1388
1430
  return {
1389
1431
  abi: C,
1390
- bytecode: zf,
1391
- args: e,
1432
+ bytecode: Uf,
1433
+ args: b,
1392
1434
  ...this.optionallyAttachAccount(a.account)
1393
1435
  };
1394
1436
  }
@@ -1396,10 +1438,10 @@ const _ = class _ extends wf {
1396
1438
  _.addresses = y;
1397
1439
  let D = _;
1398
1440
  export {
1399
- F0 as BOOST_CORE_ADDRESS,
1441
+ O0 as BOOST_CORE_ADDRESS,
1400
1442
  y as BOOST_CORE_ADDRESSES,
1401
1443
  D as BoostCore,
1402
- Jf as FEE_DENOMINATOR,
1444
+ f0 as FEE_DENOMINATOR,
1403
1445
  C as boostCoreAbi
1404
1446
  };
1405
1447
  //# sourceMappingURL=BoostCore.js.map