@argonprotocol/mainchain 1.4.3-dev.6cdce319 → 1.4.3-dev.6de0a801
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/index.d.ts +1388 -2896
- package/browser/index.js +1220 -91
- package/browser/index.js.map +1 -1
- package/lib/index.cjs +1239 -97
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +1388 -2896
- package/lib/index.d.ts +1388 -2896
- package/lib/index.js +1238 -96
- package/lib/index.js.map +1 -1
- package/package.json +28 -25
- package/src/interfaces/augment-api-consts.ts +597 -0
- package/src/interfaces/augment-api-errors.ts +1182 -0
- package/src/interfaces/augment-api-events.ts +711 -0
- package/src/interfaces/augment-api-query.ts +915 -0
- package/src/interfaces/augment-api-rpc.ts +621 -0
- package/src/interfaces/augment-api-runtime.ts +179 -0
- package/src/interfaces/augment-api-tx.ts +1059 -0
- package/src/interfaces/augment-api.ts +10 -0
- package/src/interfaces/augment-types.ts +1382 -0
- package/src/interfaces/definitions.ts +57 -0
- package/src/interfaces/ethereum/index.ts +4 -0
- package/src/interfaces/ethereum/types.ts +48 -0
- package/src/interfaces/lookup.ts +3465 -0
- package/src/interfaces/registry.ts +286 -0
- package/src/interfaces/types-lookup.ts +3714 -0
package/lib/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/mainchain/mainchain/client/nodejs/lib/index.cjs","../src/interfaces/augment-api-consts.ts","../src/interfaces/augment-api-errors.ts","../src/interfaces/augment-api-events.ts","../src/interfaces/augment-api-query.ts","../src/interfaces/augment-api-tx.ts","../src/interfaces/augment-api-rpc.ts","../src/interfaces/augment-api-runtime.ts","../src/interfaces/augment-types.ts","../src/index.ts","../metadata.json","../runtime_version.json","../genesis.json","../src/WageProtector.ts","../src/utils.ts","../src/TxResult.ts","../src/TxSubmitter.ts","../src/keyringUtils.ts","../src/header.ts","../src/Vault.ts","../src/convert.ts","../src/BitcoinLock.ts","../src/PriceIndex.ts"],"names":["result","BigNumber"],"mappings":"AAAA;ACKA,2CAAO;ADHP;AACA;AEEA,2CAAO;AFAP;AACA;AGDA,2CAAO;AHGP;AACA;AIJA,4CAAO;AJMP;AACA;AKPA,gDAAO;ALSP;AACA;AMVA,4CAAO;ANYP;AACA;AObA,0CAAO;APeP;AACA;AQhBA,0CAAO;ARkBP;AACA;ASpBA,oCAA8D;AAC9D;AACE;AACA;AACA;AACA;AACA;AAAA,mDACK;AAKP,wCAAuC;ATkBvC;AACA;AUhCE,IAAA,OAAA,EAAU,s+uWAAA;AVkCZ;AACA;AWlCE,IAAA,YAAA,EAAe,GAAA;AXoCjB;AACA;AYzCA,IAAA,gBAAA,EAAA;AAAA,EACE,OAAA,EAAW,oEAAA;AAAA,EACX,OAAA,EAAW;AACb,CAAA;AZ2CA;AACA;Aa9BO,IAAM,cAAA,EAAN,MAAM,eAAc;AAAA,EACzB,WAAA,CAAmB,SAAA,EAA8B;AAA9B,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AAAA,EAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3C,gBAAA,CAAiB,QAAA,EAA0B;AAChD,IAAA,OAAQ,SAAA,EAAW,IAAA,CAAK,SAAA,CAAU,oBAAA,EAAuB,IAAA,CAAK,SAAA,CAAU,aAAA;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAA,MAAoB,SAAA,CAClB,MAAA,EACA,QAAA,EAGC;AACD,IAAA,MAAM,YAAA,EAAc,MAAM,MAAA,CAAO,KAAA,CAAM,UAAA,CAAW,OAAA,CAAQ,MAAA,CAAM,GAAA,EAAA,GAAO;AACrE,MAAA,GAAA,CAAI,GAAA,CAAI,MAAA,EAAQ;AACd,QAAA,MAAA;AAAA,MACF;AACA,MAAA,MAAM,eAAA,EAAiB,MAAM,MAAA,CAAO,GAAA,CAAI,KAAA,CAAM,gBAAA,CAAiB,CAAA;AAE/D,MAAA,QAAA;AAAA,QACE,IAAI,cAAA,CAAc;AAAA,UAChB,mBAAA,EAAqB,GAAA,CAAI,KAAA,CAAM,mBAAA,CAAoB,QAAA,CAAS,CAAA;AAAA,UAC5D,aAAA,EAAe,GAAA,CAAI,KAAA,CAAM,aAAA,CAAc,QAAA,CAAS,CAAA;AAAA,UAChD,cAAA,EAAgB,IAAI,UAAA,CAAW,cAAc,CAAA;AAAA,UAC7C,IAAA,EAAM,GAAA,CAAI,KAAA,CAAM,IAAA,CAAK,QAAA,CAAS;AAAA,QAChC,CAAC;AAAA,MACH,CAAA;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO,EAAE,YAAY,CAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAA,MAAoB,MAAA,CAAO,MAAA,EAA6C;AACtE,IAAA,OAAO,IAAI,OAAA,CAAuB,MAAA,CAAO,OAAA,EAAS,MAAA,EAAA,GAAW;AAC3D,MAAA,IAAI;AACF,QAAA,MAAM,EAAE,YAAY,EAAA,EAAI,MAAM,cAAA,CAAc,SAAA,CAAU,MAAA,EAAQ,CAAA,CAAA,EAAA,GAAK;AACjE,UAAA,OAAA,CAAQ,CAAC,CAAA;AACT,UAAA,WAAA,CAAY,CAAA;AAAA,QACd,CAAC,CAAA;AAAA,MACH,EAAA,MAAA,CAAS,CAAA,EAAG;AACV,QAAA,MAAA,CAAO,CAAC,CAAA;AAAA,MACV;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AbyBA;AACA;ActGA,2FAA+B;AAK/B,IAAM,EAAE,YAAY,EAAA,EAAI,EAAA;AAEjB,IAAM,oBAAA,EAAsB,GAAA;AAE5B,SAAS,YAAA,CAAa,SAAA,EAAoC;AAC/D,EAAA,GAAA,CAAI,UAAA,IAAc,KAAA,EAAA,GAAa,UAAA,IAAc,IAAA,EAAM,OAAO,IAAA;AAC1D,EAAA,MAAM,WAAA,EAAa,UAAA,EAAY,CAAA;AAC/B,EAAA,IAAI,OAAA,EAAS,wBAAA,SAAU,CAAU,QAAA,CAAS,CAAC,CAAA,CACxC,GAAA,CAAI,CAAA,CACJ,GAAA,CAAI,mBAAmB,CAAA,CACvB,QAAA,CAAS,CAAA,EAAG,WAAW,CAAA;AAC1B,EAAA,GAAA,CAAI,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC1B,IAAA,OAAA,EAAS,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAA,CAAE,CAAA;AAAA,EAC7B;AACA,EAAA,OAAO,CAAA,EAAA;AACT;AAEA;AACM,EAAA;AAEE,EAAA;AAEN,EAAA;AACO,IAAA;AACP,EAAA;AAEI,EAAA;AACI,IAAA;AAEN,IAAA;AACE,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEMA,EAAAA;AACN,EAAA;AACQ,IAAA;AAEF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACF,IAAA;AAEJA,IAAAA;AACF,EAAA;AACOA,EAAAA;AACT;AAEgB;AACV,EAAA;AACA,EAAA;AACI,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAGa;AACX,EAAA;AAMQ,IAAA;AALU,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAGlB,EAAA;AAEgB,EAAA;AACV,IAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAEgB;AAMV,EAAA;AACI,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAQgB;AAIP,EAAA;AACL,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AAEE,QAAA;AACA,QAAA;AAEA,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AAEA,QAAA;AACF,MAAA;AACF,IAAA;AACD,EAAA;AACH;Ad+DU;AACA;AevLG;AAyDX,EAAA;AACqB,IAAA;AACZ,IAAA;AASF,IAAA;AACH,MAAA;AACA,MAAA;AACD,IAAA;AACI,IAAA;AACH,MAAA;AACA,MAAA;AACD,IAAA;AAEI,IAAA;AACA,IAAA;AACP,EAAA;AA9EA,EAAA;AACA,EAAA;AAEI,EAAA;AACG,IAAA;AACA,IAAA;AACP,EAAA;AAEI,EAAA;AACF,IAAA;AACF,EAAA;AAEI,EAAA;AACE,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEI,EAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACA,EAAA;AACA,iBAAA;AAEA,EAAA;AACA,EAAA;AAEA,EAAA;AAAA;AAAA;AAAA;AAIA,EAAA;AACA,EAAA;AACA,EAAA;AAAA;AAAA;AAAA;AAIA,EAAA;AAAA;AAAA;AAAA;AAIA,EAAA;AAEA,kBAAA;AACA,kBAAA;AAEG,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AA0BG,EAAA;AAML,IAAA;AACF,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AAGA,MAAA;AACA,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACA,IAAA;AACA,IAAA;AAED,IAAA;AACC,IAAA;AACH,MAAA;AACF,IAAA;AAEI,IAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACC,IAAA;AACA,IAAA;AAEF,IAAA;AACF,MAAA;AACIA,MAAAA;AACN,IAAA;AACI,IAAA;AACF,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACD,MAAA;AACH,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAEQ,EAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACF,IAAA;AACK,oBAAA;AACP,EAAA;AAEQ,EAAA;AACF,IAAA;AACJ,IAAA;AACM,MAAA;AACF,QAAA;AACA,QAAA;AACF,MAAA;AACI,MAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACI,MAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACE,MAAA;AACF,IAAA;AACK,IAAA;AACP,EAAA;AACF;AfuJU;AACA;AgBvUG;AAGX,EAAA;AACkB,IAAA;AACT,IAAA;AACS,IAAA;AAEX,IAAA;AACP,EAAA;AARgB,EAAA;AAUH,EAAA;AACL,IAAA;AACN,IAAA;AACF,EAAA;AAEa,EAAA;AAOL,IAAA;AACA,IAAA;AACF,IAAA;AACE,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AAGA,IAAA;AACA,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AAEa,EAAA;AACL,IAAA;AACA,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AAEI,IAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA;AACF,EAAA;AAEa,EAAA;AAIL,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACAA,IAAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACDA,IAAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACM,MAAA;AACF,QAAA;AACAA,QAAAA;AACF,MAAA;AACEA,QAAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEa,EAAA;AACL,IAAA;AACN,IAAA;AACF,EAAA;AAEQ,EAAA;AACF,IAAA;AACE,IAAA;AACF,IAAA;AACE,IAAA;AACF,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACI,IAAA;AAEF,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACK,IAAA;AACL,IAAA;AACF,EAAA;AACF;AAES;AACA,EAAA;AACT;AhBkTU;AACA;AiBtbM;AAIP,EAAA;AACT;AAEgB;AACN,EAAA;AACF,EAAA;AACC,EAAA;AACT;AjBobU;AACA;AkBhcM;AACd,EAAA;AACQ,IAAA;AACJ,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEgB;AACd,EAAA;AACQ,IAAA;AACJ,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEgB;AAGd,EAAA;AACQ,IAAA;AACJ,MAAA;AACI,MAAA;AACF,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AlB8bU;AACA;AmBneHC;AACA;AACE;AA+BI;AAwBX,EAAA;AAGS,IAAA;AAEF,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACP,EAAA;AAjCO,EAAA;AACA,EAAA;AACA,EAAA;AAAA;AAAA;AAAA;AAIA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAcK,EAAA;AACL,IAAA;AACA,IAAA;AACH,MAAA;AACA,MAAA;AACA,IAAA;AACG,IAAA;AACD,IAAA;AACA,IAAA;AAEF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACK,IAAA;AACH,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AAEK,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACD,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACC,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAKO,EAAA;AACC,IAAA;AACN,IAAA;AACF,EAAA;AAEO,EAAA;AACC,IAAA;AAGN,IAAA;AACF,EAAA;AAEA,EAAA;AAKQ,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AAGN,IAAA;AACF,EAAA;AAEA,EAAA;AAeQ,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACE,IAAA;AACA,IAAA;AACA,IAAA;AAEA,MAAA;AAIA,QAAA;AACA,QAAA;AACE,UAAA;AACF,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AACJ,MAAA;AAAO;AAEL,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACM,IAAA;AACF,IAAA;AACF,MAAA;AACI,MAAA;AACJ,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACD,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AAEMD,IAAAA;AACD,MAAA;AACH,MAAA;AACD,IAAA;AAED,IAAA;AACE,MAAA;AACI,MAAA;AACJ,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAOQ,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AAEA,IAAA;AACK,MAAA;AACH,MAAA;AACD,IAAA;AACH,EAAA;AACF;AAOS;AACA,EAAA;AACT;AAES;AACA,EAAA;AACT;AAES;AACH,EAAA;AACF,IAAA;AACF,EAAA;AACK,EAAA;AACG,IAAA;AACJ,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AnB0YU;AACA;AoBluBHC;AAES;AAIR,EAAA;AACA,EAAA;AAEA,EAAA;AACC,EAAA;AACT;AAEgB;AACR,EAAA;AACA,EAAA;AACC,EAAA;AACT;AAEa;AACA;ApB6tBH;AACA;AqBruBD;AAKI;AASJ;AAIH,EAAA;AACA,EAAA;AACF,IAAA;AACF,EAAA;AACE,IAAA;AACF,EAAA;AACI,EAAA;AACA,EAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEa;AACJ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAKA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEP,EAAA;AACO,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAEA,IAAA;AACP,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUa,EAAA;AAGP,IAAA;AAEF,IAAA;AAIA,MAAA;AACF,IAAA;AACE,MAAA;AACF,IAAA;AACK,IAAA;AACH,MAAA;AACF,IAAA;AACM,IAAA;AAEA,IAAA;AACA,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AAEa,EAAA;AACL,IAAA;AACA,IAAA;AACN,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEa,EAAA;AAKL,IAAA;AACA,IAAA;AAEF,IAAA;AACA,IAAA;AAEA,IAAA;AACF,MAAA;AACA,MAAA;AAGA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACF,IAAA;AAEA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEa,EAAA;AAqBL,IAAA;AAEA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACJ,MAAA;AACA,MAAA;AACD,IAAA;AACI,IAAA;AACH,MAAA;AACE,QAAA;AACE,UAAA;AACD,QAAA;AACH,MAAA;AACF,IAAA;AAEM,IAAA;AACA,IAAA;AACJ,MAAA;AACA,MAAA;AAA0C,QAAA;AAE1C,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AAGA,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACE,MAAA;AACJ,MAAA;AACI,MAAA;AACA,MAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEa,EAAA;AACX,IAAA;AACF,EAAA;AAEa,EAAA;AAQL,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACE,IAAA;AAEC,IAAA;AACH,MAAA;AACF,IAAA;AAEM,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AAEM,IAAA;AAEA,IAAA;AACJ,MAAA;AACA,MAAA;AACD,IAAA;AAEI,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACG,MAAA;AACJ,IAAA;AACH,EAAA;AAEa,EAAA;AAGL,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACM,IAAA;AACN,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQa,EAAA;AAKP,IAAA;AACA,IAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACM,IAAA;AACJ,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACA,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AAEK,IAAA;AACH,MAAA;AACF,IAAA;AAEA,IAAA;AACM,MAAA;AACJ,MAAA;AACE,QAAA;AACA,QAAA;AAEI,UAAA;AACE,4BAAA;AACA,YAAA;AACA,YAAA;AACF,UAAA;AACD,QAAA;AAEC,UAAA;AACD,QAAA;AACJ,MAAA;AACG,MAAA;AACF,QAAA;AACE,0BAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACD,IAAA;AACH,EAAA;AAEa,EAAA;AAIL,IAAA;AACD,IAAA;AACH,MAAA;AACA,MAAA;AACF,IAAA;AAEM,IAAA;AACN,IAAA;AACM,MAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AACE,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAIE,IAAA;AACF,EAAA;AAEA,EAAA;AAIQ,IAAA;AAEA,IAAA;AACF,IAAA;AACJ,IAAA;AAEI,IAAA;AACF,MAAA;AACF,IAAA;AAEM,IAAA;AAEF,IAAA;AAEA,IAAA;AAEF,MAAA;AACF,IAAA;AAGE,MAAA;AACF,IAAA;AAGE,MAAA;AACF,IAAA;AAGE,MAAA;AACF,IAAA;AAEA,IAAA;AACF,EAAA;AAEA,EAAA;AACQ,IAAA;AACN,IAAA;AACE,MAAA;AAEA,MAAA;AAEA,MAAA;AAGA,MAAA;AACA,MAAA;AAEF,IAAA;AACF,EAAA;AAEA,EAAA;AACE,IAAA;AAGF,EAAA;AAEA,EAAA;AAQQ,IAAA;AACD,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AACA,IAAA;AAEN,IAAA;AACF,EAAA;AAEA,EAAA;AAOQ,IAAA;AACA,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAOQ,IAAA;AACA,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAOQ,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACE,IAAA;AAEC,IAAA;AACH,MAAA;AACF,IAAA;AAEM,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AAEA,IAAA;AACF,EAAA;AAEA,EAAA;AAQQ,IAAA;AACD,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACK,IAAA;AACH,MAAA;AACF,IAAA;AACM,IAAA;AACN,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA;AAIQ,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAIA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AAEM,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACN,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACH,EAAA;AAEA,EAAA;AAIE,IAAA;AACE,MAAA;AACI,MAAA;AACF,QAAA;AACE,UAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACI,MAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAYQ,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACE,IAAA;AACA,IAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AAEI,IAAA;AACA,IAAA;AACF,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACE,UAAA;AAAI,YAAA;AAEJ,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACF,QAAA;AACD,MAAA;AACH,IAAA;AACM,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAEA,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACD,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA;AAcQ,IAAA;AAEA,IAAA;AACD,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AAEN,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA;AAQQ,IAAA;AACA,IAAA;AACA,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAQQ,IAAA;AACN,IAAA;AACF,EAAA;AACF;ArBogBU;AACA;AsBhxCHA;AAGM;AACX,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEM,EAAA;AACE,IAAA;AACD,IAAA;AACH,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACM,IAAA;AAED,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACH,MAAA;AACA,MAAA;AACF,IAAA;AACK,IAAA;AACH,MAAA;AACA,MAAA;AACF,IAAA;AACK,IAAA;AACL,IAAA;AACF,EAAA;AAEA,EAAA;AACM,IAAA;AACF,MAAA;AACF,IAAA;AAEM,IAAA;AAEA,IAAA;AACN,IAAA;AACF,EAAA;AAEI,EAAA;AACE,IAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEI,EAAA;AACE,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACN,IAAA;AACF,EAAA;AACF;AtBywCU;AACA;ASpyCD;AAGA;AACT;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACK;AA8BP;AACQ,EAAA;AACR;AAQA;AACM,EAAA;AACA,EAAA;AACF,IAAA;AACK,EAAA;AACL,IAAA;AACF,EAAA;AAEA,EAAA;AACQ,EAAA;AAER,EAAA;AACE,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEM;AACG;AACH,EAAA;AACJ,EAAA;AACA,EAAA;AACA,EAAA;AACF;AAEgB;AACP,EAAA;AACT;AT4vCU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/mainchain/mainchain/client/nodejs/lib/index.cjs","sourcesContent":[null,"// Auto-generated via `yarn polkadot-types-from-chain`, do not edit\n/* eslint-disable */\n\n// import type lookup before we augment - in some environments\n// this is required to allow for ambient/previous definitions\nimport '@polkadot/api-base/types/consts';\n\nimport type { ApiTypes, AugmentedConst } from '@polkadot/api-base/types';\nimport type { u128, u16, u32, u64, u8 } from '@polkadot/types-codec';\nimport type { ITuple } from '@polkadot/types-codec/types';\nimport type { AccountId32, Percent } from '@polkadot/types/interfaces/runtime';\nimport type {\n FrameSupportPalletId,\n FrameSystemLimitsBlockLength,\n FrameSystemLimitsBlockWeights,\n SpVersionRuntimeVersion,\n SpWeightsRuntimeDbWeight,\n} from '@polkadot/types/lookup';\n\nexport type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;\n\ndeclare module '@polkadot/api-base/types/consts' {\n interface AugmentedConsts<ApiType extends ApiTypes> {\n balances: {\n /**\n * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!\n *\n * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for\n * this pallet. However, you do so at your own risk: this will open up a major DoS vector.\n * In case you have multiple sources of provider references, you may also get unexpected\n * behaviour if you set this to zero.\n *\n * Bottom line: Do yourself a favour and make it at least one!\n **/\n existentialDeposit: u128 & AugmentedConst<ApiType>;\n /**\n * The maximum number of individual freeze locks that can exist on an account at any time.\n **/\n maxFreezes: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of locks that should exist on an account.\n * Not strictly enforced, but used for weight estimation.\n *\n * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`\n **/\n maxLocks: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of named reserves that can exist on an account.\n *\n * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`\n **/\n maxReserves: u32 & AugmentedConst<ApiType>;\n };\n bitcoinLocks: {\n /**\n * Argon tick per day\n **/\n argonTicksPerDay: u64 & AugmentedConst<ApiType>;\n /**\n * The number of bitcoin blocks a bitcoin is locked for\n **/\n lockDurationBlocks: u64 & AugmentedConst<ApiType>;\n /**\n * The bitcoin blocks after a BitcoinLock expires which the vault will be allowed to claim\n * a bitcoin\n **/\n lockReclamationBlocks: u64 & AugmentedConst<ApiType>;\n /**\n * Number of frames a vault has to counter-sign a bitcoin release\n **/\n lockReleaseCosignDeadlineFrames: u64 & AugmentedConst<ApiType>;\n /**\n * Max allowed tick-age of microgon-per-btc prices\n **/\n maxBtcPriceTickAge: u32 & AugmentedConst<ApiType>;\n /**\n * Pallet storage requires bounds, so we have to set a maximum number that can expire in a\n * single block\n **/\n maxConcurrentlyExpiringLocks: u32 & AugmentedConst<ApiType>;\n /**\n * Maximum releasing utxos at a time\n **/\n maxConcurrentlyReleasingLocks: u32 & AugmentedConst<ApiType>;\n /**\n * Number of frames orphaned UTXO release entries are retained after a lock lifecycle\n * transition before being cleaned up.\n **/\n orphanedUtxoReleaseExpiryFrames: u64 & AugmentedConst<ApiType>;\n /**\n * Number of ticks per bitcoin block\n **/\n ticksPerBitcoinBlock: u64 & AugmentedConst<ApiType>;\n };\n bitcoinUtxos: {\n /**\n * Maximum number of candidate UTXOs stored per lock\n **/\n maxCandidateUtxosPerLock: u32 & AugmentedConst<ApiType>;\n /**\n * Maximum number of satoshi difference allowed from expected to consider a UTXO as\n * \"confirmed\"\n **/\n maximumSatoshiThresholdFromExpected: u64 & AugmentedConst<ApiType>;\n /**\n * Maximum bitcoin blocks to watch a Utxo for confirmation before canceling\n **/\n maxPendingConfirmationBlocks: u64 & AugmentedConst<ApiType>;\n /**\n * The maximum number of UTXOs that can be watched in a block and/or expiring at same block\n **/\n maxPendingConfirmationUtxos: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of expired pending funding entries cleaned up in a block\n **/\n maxPendingFundingExpirationsPerBlock: u32 & AugmentedConst<ApiType>;\n };\n blockRewards: {\n /**\n * The tick number at which the halving begins for ownership tokens\n **/\n halvingBeginTicks: u64 & AugmentedConst<ApiType>;\n /**\n * Number of ticks for halving of ownership share rewards\n **/\n halvingTicks: u64 & AugmentedConst<ApiType>;\n /**\n * The growth path for both ownership and argons before halving\n **/\n incrementalGrowth: ITuple<[u128, u64, u128]> & AugmentedConst<ApiType>;\n /**\n * Percent as a number out of 100 of the block reward that goes to the miner.\n **/\n minerPayoutPercent: u128 & AugmentedConst<ApiType>;\n /**\n * Number of argons minted per block\n **/\n startingArgonsPerBlock: u128 & AugmentedConst<ApiType>;\n /**\n * Number of ownership tokens minted per block\n **/\n startingOwnershipTokensPerBlock: u128 & AugmentedConst<ApiType>;\n };\n blockSealSpec: {\n /**\n * The number of historical compute times to use to calculate the rolling compute average\n * (for adjustment)\n **/\n historicalComputeBlocksForAverage: u32 & AugmentedConst<ApiType>;\n /**\n * The number of historical vote blocks to use to calculate the rolling vote average\n **/\n historicalVoteBlocksForAverage: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum active notaries allowed\n **/\n maxActiveNotaries: u32 & AugmentedConst<ApiType>;\n /**\n * The desired votes per block\n **/\n targetBlockVotes: u128 & AugmentedConst<ApiType>;\n };\n chainTransfer: {\n /**\n * How many transfers out can be queued per block\n **/\n maxPendingTransfersOutPerBlock: u32 & AugmentedConst<ApiType>;\n palletId: FrameSupportPalletId & AugmentedConst<ApiType>;\n /**\n * How long a transfer should remain in storage before returning. NOTE: there is a 2 tick\n * grace period where we will still allow a transfer\n **/\n transferExpirationTicks: u64 & AugmentedConst<ApiType>;\n };\n grandpa: {\n /**\n * Max Authorities in use\n **/\n maxAuthorities: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of nominators for each validator.\n **/\n maxNominators: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of entries to keep in the set id to session index mapping.\n *\n * Since the `SetIdSession` map is only used for validating equivocations this\n * value should relate to the bonding duration of whatever staking system is\n * being used (if any). If equivocation handling is not enabled then this value\n * can be zero.\n **/\n maxSetIdSessionEntries: u64 & AugmentedConst<ApiType>;\n };\n inboundTransferLog: {\n /**\n * How many blocks to retain inbound transfer records.\n **/\n inboundTransfersRetentionBlocks: u32 & AugmentedConst<ApiType>;\n /**\n * Maximum number of bytes allowed in a TokenGateway request body (0 disables the cap).\n **/\n maxInboundTransferBytes: u32 & AugmentedConst<ApiType>;\n /**\n * Maximum number of records retained from a single block.\n **/\n maxTransfersToRetainPerBlock: u32 & AugmentedConst<ApiType>;\n /**\n * Minimum amount (in base units) to record an inbound transfer.\n **/\n minimumTransferMicrogonsToRecord: u128 & AugmentedConst<ApiType>;\n /**\n * Ownership token asset id (Argonot).\n **/\n ownershipAssetId: u32 & AugmentedConst<ApiType>;\n };\n miningSlot: {\n /**\n * The max percent swing for the argonots per slot (from the last percent)\n **/\n argonotsPercentAdjustmentDamper: u128 & AugmentedConst<ApiType>;\n /**\n * The increment that bids can be on (for instance, one cent increments)\n **/\n bidIncrements: u128 & AugmentedConst<ApiType>;\n /**\n * The number of frames a miner operates for\n **/\n framesPerMiningTerm: u32 & AugmentedConst<ApiType>;\n /**\n * How many new miners can be in the cohort for each slot. The actual maximum will adjust\n * dynamically\n **/\n maxCohortSize: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum percent of argonots in the network that should be required for\n * mining seats\n **/\n maximumArgonotProrataPercent: Percent & AugmentedConst<ApiType>;\n /**\n * The minimum number of miners per cohort\n **/\n minCohortSize: u32 & AugmentedConst<ApiType>;\n /**\n * The minimum argonots needed per seat\n **/\n minimumArgonotsPerSeat: u128 & AugmentedConst<ApiType>;\n /**\n * Account that receives mining bid funds before treasury distribution.\n **/\n miningBidPoolAccount: AccountId32 & AugmentedConst<ApiType>;\n /**\n * The damper on the price per seat adjustment (from the last price)\n **/\n pricePerSeatAdjustmentDamper: u128 & AugmentedConst<ApiType>;\n /**\n * The target percent of bids per auction relative to the max number of seats. This will\n * adjust the argonots per seat up or down to ensure mining slots are filled.\n **/\n targetBidsPerSeatPercent: u128 & AugmentedConst<ApiType>;\n /**\n * The target price per seat.\n **/\n targetPricePerSeat: u128 & AugmentedConst<ApiType>;\n };\n mint: {\n /**\n * The maximum number of mint histories to keep\n **/\n maxMintHistoryToMaintain: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of UTXOs that can be waiting for minting\n **/\n maxPendingMintUtxos: u32 & AugmentedConst<ApiType>;\n maxPossibleMiners: u32 & AugmentedConst<ApiType>;\n };\n multisig: {\n /**\n * The base amount of currency needed to reserve for creating a multisig execution or to\n * store a dispatch call for later.\n *\n * This is held for an additional storage item whose value size is\n * `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is\n * `32 + sizeof(AccountId)` bytes.\n **/\n depositBase: u128 & AugmentedConst<ApiType>;\n /**\n * The amount of currency needed per unit threshold when creating a multisig execution.\n *\n * This is held for adding 32 bytes more into a pre-existing storage value.\n **/\n depositFactor: u128 & AugmentedConst<ApiType>;\n /**\n * The maximum amount of signatories allowed in the multisig.\n **/\n maxSignatories: u32 & AugmentedConst<ApiType>;\n };\n notaries: {\n /**\n * The maximum active notaries allowed\n **/\n maxActiveNotaries: u32 & AugmentedConst<ApiType>;\n /**\n * Maximum hosts a notary can supply\n **/\n maxNotaryHosts: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum blocks a proposal can sit unapproved\n **/\n maxProposalHoldBlocks: u32 & AugmentedConst<ApiType>;\n maxProposalsPerBlock: u32 & AugmentedConst<ApiType>;\n /**\n * Number of ticks to maintain key history for each notary\n * NOTE: only pruned when new keys are added\n **/\n maxTicksForKeyHistory: u32 & AugmentedConst<ApiType>;\n /**\n * Number of ticks to delay changing a notaries' meta (this is to allow a window for\n * notaries to switch to new keys after a new key is finalized)\n **/\n metaChangesTickDelay: u64 & AugmentedConst<ApiType>;\n };\n operationalAccounts: {\n /**\n * Additional argon amount (base units) required per referral after operational.\n **/\n bitcoinLockSizeForReferral: u128 & AugmentedConst<ApiType>;\n /**\n * Maximum number of available referrals allowed at once.\n **/\n maxAvailableReferrals: u32 & AugmentedConst<ApiType>;\n /**\n * Maximum number of encrypted server bytes stored per sponsee.\n **/\n maxEncryptedServerLen: u32 & AugmentedConst<ApiType>;\n /**\n * Maximum number of expired referral codes cleared per block.\n **/\n maxExpiredReferralCodeCleanupsPerBlock: u32 & AugmentedConst<ApiType>;\n /**\n * Mining seats required to become operational.\n **/\n miningSeatsForOperational: u32 & AugmentedConst<ApiType>;\n /**\n * Mining seats required per referral after operational.\n **/\n miningSeatsPerReferral: u32 & AugmentedConst<ApiType>;\n /**\n * Minimum vault securitization required to become operational.\n **/\n operationalMinimumVaultSecuritization: u128 & AugmentedConst<ApiType>;\n /**\n * Default bonus reward paid every referral threshold.\n **/\n operationalReferralBonusReward: u128 & AugmentedConst<ApiType>;\n /**\n * Default reward paid when an account becomes operational.\n **/\n operationalReferralReward: u128 & AugmentedConst<ApiType>;\n /**\n * Number of operational sponsees required per referral bonus reward.\n **/\n referralBonusEveryXOperationalSponsees: u32 & AugmentedConst<ApiType>;\n };\n ownership: {\n /**\n * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!\n *\n * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for\n * this pallet. However, you do so at your own risk: this will open up a major DoS vector.\n * In case you have multiple sources of provider references, you may also get unexpected\n * behaviour if you set this to zero.\n *\n * Bottom line: Do yourself a favour and make it at least one!\n **/\n existentialDeposit: u128 & AugmentedConst<ApiType>;\n /**\n * The maximum number of individual freeze locks that can exist on an account at any time.\n **/\n maxFreezes: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of locks that should exist on an account.\n * Not strictly enforced, but used for weight estimation.\n *\n * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`\n **/\n maxLocks: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of named reserves that can exist on an account.\n *\n * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`\n **/\n maxReserves: u32 & AugmentedConst<ApiType>;\n };\n priceIndex: {\n /**\n * The max price difference dropping below target or raising above target per tick. There's\n * no corresponding constant for time to recovery to target\n **/\n maxArgonChangePerTickAwayFromTarget: u128 & AugmentedConst<ApiType>;\n maxArgonTargetChangePerTick: u128 & AugmentedConst<ApiType>;\n /**\n * The maximum number of ticks to preserve a price index\n **/\n maxDowntimeTicksBeforeReset: u64 & AugmentedConst<ApiType>;\n /**\n * The oldest history to keep\n **/\n maxPriceAgeInTicks: u64 & AugmentedConst<ApiType>;\n };\n proxy: {\n /**\n * The base amount of currency needed to reserve for creating an announcement.\n *\n * This is held when a new storage item holding a `Balance` is created (typically 16\n * bytes).\n **/\n announcementDepositBase: u128 & AugmentedConst<ApiType>;\n /**\n * The amount of currency needed per announcement made.\n *\n * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)\n * into a pre-existing storage value.\n **/\n announcementDepositFactor: u128 & AugmentedConst<ApiType>;\n /**\n * The maximum amount of time-delayed announcements that are allowed to be pending.\n **/\n maxPending: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum amount of proxies allowed for a single account.\n **/\n maxProxies: u32 & AugmentedConst<ApiType>;\n /**\n * The base amount of currency needed to reserve for creating a proxy.\n *\n * This is held for an additional storage item whose value size is\n * `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes.\n **/\n proxyDepositBase: u128 & AugmentedConst<ApiType>;\n /**\n * The amount of currency needed per proxy added.\n *\n * This is held for adding 32 bytes plus an instance of `ProxyType` more into a\n * pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take\n * into account `32 + proxy_type.encode().len()` bytes of data.\n **/\n proxyDepositFactor: u128 & AugmentedConst<ApiType>;\n };\n system: {\n /**\n * Maximum number of block number to block hash mappings to keep (oldest pruned first).\n **/\n blockHashCount: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum length of a block (in bytes).\n **/\n blockLength: FrameSystemLimitsBlockLength & AugmentedConst<ApiType>;\n /**\n * Block & extrinsics weights: base values and limits.\n **/\n blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst<ApiType>;\n /**\n * The weight of runtime database operations the runtime can invoke.\n **/\n dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst<ApiType>;\n /**\n * The designated SS58 prefix of this chain.\n *\n * This replaces the \"ss58Format\" property declared in the chain spec. Reason is\n * that the runtime should know about the prefix in order to make use of it as\n * an identifier of the chain.\n **/\n ss58Prefix: u16 & AugmentedConst<ApiType>;\n /**\n * Get the chain's in-code version.\n **/\n version: SpVersionRuntimeVersion & AugmentedConst<ApiType>;\n };\n timestamp: {\n /**\n * The minimum period between blocks.\n *\n * Be aware that this is different to the *expected* period that the block production\n * apparatus provides. Your chosen consensus system will generally work with this to\n * determine a sensible block time. For example, in the Aura pallet it will be double this\n * period on default settings.\n **/\n minimumPeriod: u64 & AugmentedConst<ApiType>;\n };\n tokenGateway: {\n /**\n * The decimals of the native currency\n **/\n decimals: u8 & AugmentedConst<ApiType>;\n };\n transactionPayment: {\n /**\n * A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their\n * `priority`\n *\n * This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later\n * added to a tip component in regular `priority` calculations.\n * It means that a `Normal` transaction can front-run a similarly-sized `Operational`\n * extrinsic (with no tip), by including a tip value greater than the virtual tip.\n *\n * ```rust,ignore\n * // For `Normal`\n * let priority = priority_calc(tip);\n *\n * // For `Operational`\n * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;\n * let priority = priority_calc(tip + virtual_tip);\n * ```\n *\n * Note that since we use `final_fee` the multiplier applies also to the regular `tip`\n * sent with the transaction. So, not only does the transaction get a priority bump based\n * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`\n * transactions.\n **/\n operationalFeeMultiplier: u8 & AugmentedConst<ApiType>;\n };\n treasury: {\n /**\n * The maximum number of bond lots whose release delay may mature in a single frame.\n **/\n maxPendingUnlocksPerFrame: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of accepted bond lots in a vault's accepted bond-lot list.\n **/\n maxTreasuryContributors: u32 & AugmentedConst<ApiType>;\n /**\n * The maximum number of vaults that can participate in one frame's locked vault capital.\n **/\n maxVaultsPerPool: u32 & AugmentedConst<ApiType>;\n /**\n * The minimum whole-bond purchase amount.\n **/\n minimumArgonsPerContributor: u128 & AugmentedConst<ApiType>;\n /**\n * Treasury pallet id retained in metadata for account derivation.\n **/\n palletId: FrameSupportPalletId & AugmentedConst<ApiType>;\n /**\n * Percent of the bid pool reserved for treasury reserves.\n **/\n percentForTreasuryReserves: Percent & AugmentedConst<ApiType>;\n /**\n * The number of frames a releasing bond lot remains held before release.\n **/\n treasuryExitDelayFrames: u64 & AugmentedConst<ApiType>;\n /**\n * Account that holds treasury reserves for claims and reserve-funded payouts.\n **/\n treasuryReservesAccount: AccountId32 & AugmentedConst<ApiType>;\n };\n txPause: {\n /**\n * Maximum length for pallet name and call name SCALE encoded string names.\n *\n * TOO LONG NAMES WILL BE TREATED AS PAUSED.\n **/\n maxNameLen: u32 & AugmentedConst<ApiType>;\n };\n utility: {\n /**\n * The limit on the number of batched calls.\n **/\n batchedCallsLimit: u32 & AugmentedConst<ApiType>;\n };\n vaults: {\n /**\n * One no-fee stale `initialize_for` failure is allowed for each this-many units of lost\n * `available_for_lock`.\n **/\n capacityDropAttemptUnit: u128 & AugmentedConst<ApiType>;\n /**\n * Max concurrent cosigns pending per vault\n **/\n maxPendingCosignsPerVault: u32 & AugmentedConst<ApiType>;\n /**\n * The max pending vault term changes per block\n **/\n maxPendingTermModificationsPerTick: u32 & AugmentedConst<ApiType>;\n /**\n * Maximum number of recent `available_for_lock` drops retained per vault.\n **/\n maxRecentCapacityDropsPerVault: u32 & AugmentedConst<ApiType>;\n /**\n * The max number of vaults that can be created\n **/\n maxVaults: u32 & AugmentedConst<ApiType>;\n /**\n * Duration to keep the operational minimum securitization locked from vault creation.\n **/\n operationalMinimumVaultLockTicks: u64 & AugmentedConst<ApiType>;\n /**\n * Minimum vault securitization required while the operational floor lock is active.\n **/\n operationalMinimumVaultSecuritization: u128 & AugmentedConst<ApiType>;\n /**\n * Number of Argon blocks to keep recent `available_for_lock` drops for stale init checks.\n **/\n recentCapacityDropBlockWindow: u32 & AugmentedConst<ApiType>;\n /**\n * The number of frames within which revenue must be collected\n **/\n revenueCollectionExpirationFrames: u64 & AugmentedConst<ApiType>;\n };\n } // AugmentedConsts\n} // declare module\n","// Auto-generated via `yarn polkadot-types-from-chain`, do not edit\n/* eslint-disable */\n\n// import type lookup before we augment - in some environments\n// this is required to allow for ambient/previous definitions\nimport '@polkadot/api-base/types/errors';\n\nimport type { ApiTypes, AugmentedError } from '@polkadot/api-base/types';\n\nexport type __AugmentedError<ApiType extends ApiTypes> = AugmentedError<ApiType>;\n\ndeclare module '@polkadot/api-base/types/errors' {\n interface AugmentedErrors<ApiType extends ApiTypes> {\n balances: {\n /**\n * Beneficiary account must pre-exist.\n **/\n DeadAccount: AugmentedError<ApiType>;\n /**\n * The delta cannot be zero.\n **/\n DeltaZero: AugmentedError<ApiType>;\n /**\n * Value too low to create account due to existential deposit.\n **/\n ExistentialDeposit: AugmentedError<ApiType>;\n /**\n * A vesting schedule already exists for this account.\n **/\n ExistingVestingSchedule: AugmentedError<ApiType>;\n /**\n * Transfer/payment would kill account.\n **/\n Expendability: AugmentedError<ApiType>;\n /**\n * Balance too low to send value.\n **/\n InsufficientBalance: AugmentedError<ApiType>;\n /**\n * The issuance cannot be modified since it is already deactivated.\n **/\n IssuanceDeactivated: AugmentedError<ApiType>;\n /**\n * Account liquidity restrictions prevent withdrawal.\n **/\n LiquidityRestrictions: AugmentedError<ApiType>;\n /**\n * Number of freezes exceed `MaxFreezes`.\n **/\n TooManyFreezes: AugmentedError<ApiType>;\n /**\n * Number of holds exceed `VariantCountOf<T::RuntimeHoldReason>`.\n **/\n TooManyHolds: AugmentedError<ApiType>;\n /**\n * Number of named reserves exceed `MaxReserves`.\n **/\n TooManyReserves: AugmentedError<ApiType>;\n /**\n * Vesting balance too high to send value.\n **/\n VestingBalance: AugmentedError<ApiType>;\n };\n bitcoinLocks: {\n /**\n * The proposed transaction would take the account below the minimum (existential) balance\n **/\n AccountWouldGoBelowMinimumBalance: AugmentedError<ApiType>;\n /**\n * The fee for this bitcoin release is too high\n **/\n BitcoinFeeTooHigh: AugmentedError<ApiType>;\n /**\n * The cosign signature is not valid for the bitcoin release\n **/\n BitcoinInvalidCosignature: AugmentedError<ApiType>;\n /**\n * This bitcoin pubkey couldn't be decoded for release\n **/\n BitcoinPubkeyUnableToBeDecoded: AugmentedError<ApiType>;\n /**\n * The bitcoin has passed the deadline to release it\n **/\n BitcoinReleaseInitiationDeadlinePassed: AugmentedError<ApiType>;\n /**\n * This bitcoin signature couldn't be decoded for release\n **/\n BitcoinSignatureUnableToBeDecoded: AugmentedError<ApiType>;\n /**\n * This bitcoin cosign script couldn't be decoded for release\n **/\n BitcoinUnableToBeDecodedForRelease: AugmentedError<ApiType>;\n /**\n * The Bitcoin Unspect Transaction Output (UTXO) was not found\n **/\n BitcoinUtxoNotFound: AugmentedError<ApiType>;\n /**\n * An overflow occurred recording a lock expiration\n **/\n ExpirationAtBlockOverflow: AugmentedError<ApiType>;\n /**\n * Cannot request an orphaned release for the funding UTXO\n **/\n FundingUtxoCannotBeReleased: AugmentedError<ApiType>;\n /**\n * An error occurred in the vault module\n **/\n GenericVaultError: AugmentedError<ApiType>;\n /**\n * The expected amount of funds to return from hold was not available\n **/\n HoldUnexpectedlyModified: AugmentedError<ApiType>;\n /**\n * An ineligible microgon rate per btc was requested\n **/\n IneligibleMicrogonRateRequested: AugmentedError<ApiType>;\n InsufficientFunds: AugmentedError<ApiType>;\n /**\n * The minimum number of satoshis was not met\n **/\n InsufficientSatoshisLocked: AugmentedError<ApiType>;\n InsufficientVaultFunds: AugmentedError<ApiType>;\n /**\n * The bitcoin script to lock this bitcoin has errors\n **/\n InvalidBitcoinScript: AugmentedError<ApiType>;\n /**\n * Funding would result in an overflow of the balance type\n **/\n InvalidVaultAmount: AugmentedError<ApiType>;\n /**\n * A lock in process of release cannot be ratcheted\n **/\n LockInProcessOfRelease: AugmentedError<ApiType>;\n /**\n * The Bitcoin Lock record was not found\n **/\n LockNotFound: AugmentedError<ApiType>;\n /**\n * The lock funding has not been confirmed on bitcoin\n **/\n LockPendingFunding: AugmentedError<ApiType>;\n /**\n * Too many orphaned utxo release requests for a lock\n **/\n MaxOrphanedUtxoReleaseRequestsExceeded: AugmentedError<ApiType>;\n /**\n * The price provider has no bitcoin prices available. This is a temporary error\n **/\n NoBitcoinPricesAvailable: AugmentedError<ApiType>;\n /**\n * The user does not have permissions to perform this action\n **/\n NoPermissions: AugmentedError<ApiType>;\n /**\n * Nothing to ratchet\n **/\n NoRatchetingAvailable: AugmentedError<ApiType>;\n /**\n * No Vault public keys are available\n **/\n NoVaultBitcoinPubkeysAvailable: AugmentedError<ApiType>;\n /**\n * Cannot fund with an orphaned utxo after lock funding is confirmed\n **/\n OrphanedUtxoFundingConflict: AugmentedError<ApiType>;\n /**\n * Cannot lock an orphaned utxo with a pending release request\n **/\n OrphanedUtxoReleaseRequested: AugmentedError<ApiType>;\n /**\n * An overflow or underflow occurred while calculating the redemption price\n **/\n OverflowError: AugmentedError<ApiType>;\n /**\n * This bitcoin redemption has not been locked in\n **/\n RedemptionNotLocked: AugmentedError<ApiType>;\n /**\n * Unable to generate a new vault public key\n **/\n UnableToGenerateVaultBitcoinPubkey: AugmentedError<ApiType>;\n /**\n * The hold on funds could not be recovered\n **/\n UnrecoverableHold: AugmentedError<ApiType>;\n /**\n * This vault is closed\n **/\n VaultClosed: AugmentedError<ApiType>;\n /**\n * The vault was not found\n **/\n VaultNotFound: AugmentedError<ApiType>;\n /**\n * This vault is not yet active\n **/\n VaultNotYetActive: AugmentedError<ApiType>;\n };\n bitcoinUtxos: {\n /**\n * Bitcoin height not confirmed yet\n **/\n BitcoinHeightNotConfirmed: AugmentedError<ApiType>;\n /**\n * Duplicated UtxoId. Already in use\n **/\n DuplicateUtxoId: AugmentedError<ApiType>;\n /**\n * Insufficient bitcoin amount\n **/\n InsufficientBitcoinAmount: AugmentedError<ApiType>;\n /**\n * Locking script has errors\n **/\n InvalidBitcoinScript: AugmentedError<ApiType>;\n /**\n * Invalid bitcoin sync height attempted\n **/\n InvalidBitcoinSyncHeight: AugmentedError<ApiType>;\n /**\n * This Lock already has an attached funding UTXO\n **/\n LockAlreadyFunded: AugmentedError<ApiType>;\n /**\n * Too many candidate UTXOs are being stored for this lock\n **/\n MaxCandidateUtxosExceeded: AugmentedError<ApiType>;\n /**\n * Too many UTXOs are being watched\n **/\n MaxUtxosExceeded: AugmentedError<ApiType>;\n /**\n * No Oracle-provided bitcoin block has been provided to the network\n **/\n NoBitcoinConfirmedBlock: AugmentedError<ApiType>;\n /**\n * No prices are available to mint bitcoins\n **/\n NoBitcoinPricesAvailable: AugmentedError<ApiType>;\n /**\n * Only an Oracle Operator can perform this action\n **/\n NoPermissions: AugmentedError<ApiType>;\n /**\n * Redemptions not currently available\n **/\n RedemptionsUnavailable: AugmentedError<ApiType>;\n /**\n * ScriptPubKey is already being waited for\n **/\n ScriptPubkeyConflict: AugmentedError<ApiType>;\n /**\n * The UTXO reference does not map to a candidate entry\n **/\n UtxoNotCandidate: AugmentedError<ApiType>;\n /**\n * Locked Utxo Not Found\n **/\n UtxoNotLocked: AugmentedError<ApiType>;\n };\n blockRewards: {};\n blockSeal: {\n /**\n * A block seal authority could not be properly decoded\n **/\n BlockSealDecodeError: AugmentedError<ApiType>;\n /**\n * The vote signature was invalid\n **/\n BlockVoteInvalidSignature: AugmentedError<ApiType>;\n /**\n * Could not decode the scale bytes of the votes\n **/\n CouldNotDecodeVote: AugmentedError<ApiType>;\n /**\n * Too many block seals submitted\n **/\n DuplicateBlockSealProvided: AugmentedError<ApiType>;\n /**\n * Duplicate vote block\n **/\n DuplicateVoteBlockAtTick: AugmentedError<ApiType>;\n /**\n * The notebook for this vote was not eligible to vote\n **/\n IneligibleNotebookUsed: AugmentedError<ApiType>;\n /**\n * The block vote did not reach the minimum voting power at time of the grandparent block\n **/\n InsufficientVotingPower: AugmentedError<ApiType>;\n /**\n * The merkle proof of vote inclusion in the notebook is invalid\n **/\n InvalidBlockVoteProof: AugmentedError<ApiType>;\n /**\n * Compute blocks cant be added in the same tick as a vote\n **/\n InvalidComputeBlockTick: AugmentedError<ApiType>;\n /**\n * Invalid fork power parent\n **/\n InvalidForkPowerParent: AugmentedError<ApiType>;\n /**\n * The nonce score distance supplied is invalid\n **/\n InvalidMinerNonceScore: AugmentedError<ApiType>;\n /**\n * Vote not submitted by the right miner\n **/\n InvalidSubmitter: AugmentedError<ApiType>;\n /**\n * The block vote was not for a valid block\n **/\n InvalidVoteGrandparentHash: AugmentedError<ApiType>;\n /**\n * The strength of the given seal did not match calculations\n **/\n InvalidVoteSealStrength: AugmentedError<ApiType>;\n /**\n * Too many notebooks were submitted for the current tick. Should not be possible\n **/\n MaxNotebooksAtTickExceeded: AugmentedError<ApiType>;\n /**\n * No closest miner found for vote\n **/\n NoClosestMinerFoundForVote: AugmentedError<ApiType>;\n /**\n * The lookup to verify a vote's authenticity is not available for the given block\n **/\n NoEligibleVotingRoot: AugmentedError<ApiType>;\n /**\n * No vote minimum found at grandparent height\n **/\n NoGrandparentVoteMinimum: AugmentedError<ApiType>;\n /**\n * No registered voting key found for the parent block\n **/\n ParentVotingKeyNotFound: AugmentedError<ApiType>;\n /**\n * Could not decode the vote bytes\n **/\n UnableToDecodeVoteAccount: AugmentedError<ApiType>;\n /**\n * The block author is not a registered miner\n **/\n UnregisteredBlockAuthor: AugmentedError<ApiType>;\n };\n blockSealSpec: {\n /**\n * The maximum number of notebooks at the current tick has been exceeded\n **/\n MaxNotebooksAtTickExceeded: AugmentedError<ApiType>;\n };\n chainTransfer: {\n /**\n * Insufficient balance to create this transfer\n **/\n InsufficientFunds: AugmentedError<ApiType>;\n /**\n * Insufficient balance to fulfill a mainchain transfer\n **/\n InsufficientNotarizedFunds: AugmentedError<ApiType>;\n /**\n * The notary id is not registered\n **/\n InvalidNotaryUsedForTransfer: AugmentedError<ApiType>;\n /**\n * The transfer was already submitted in a previous block\n **/\n InvalidOrDuplicatedLocalchainTransfer: AugmentedError<ApiType>;\n MaxBlockTransfersExceeded: AugmentedError<ApiType>;\n /**\n * No transfer IDs are currently available\n **/\n NoAvailableTransferId: AugmentedError<ApiType>;\n /**\n * The notary is currently locked and cannot process transfers\n **/\n NotaryLockedForTransfer: AugmentedError<ApiType>;\n /**\n * A transfer was submitted in a previous block but the expiration block has passed\n **/\n NotebookIncludesExpiredLocalchainTransfer: AugmentedError<ApiType>;\n };\n digests: {\n /**\n * Failed to decode digests\n **/\n CouldNotDecodeDigest: AugmentedError<ApiType>;\n /**\n * Duplicate AuthorDigest found\n **/\n DuplicateAuthorDigest: AugmentedError<ApiType>;\n /**\n * Duplicate BlockVoteDigest found\n **/\n DuplicateBlockVoteDigest: AugmentedError<ApiType>;\n /**\n * Duplicate ForkPowerDigest found\n **/\n DuplicateForkPowerDigest: AugmentedError<ApiType>;\n /**\n * Duplicate FrameInfo found\n **/\n DuplicateFrameInfoDigest: AugmentedError<ApiType>;\n /**\n * Duplicate NotebookDigest found\n **/\n DuplicateNotebookDigest: AugmentedError<ApiType>;\n /**\n * Duplicate ParentVotingKeyDigest found\n **/\n DuplicateParentVotingKeyDigest: AugmentedError<ApiType>;\n /**\n * Duplicate TickDigest found\n **/\n DuplicateTickDigest: AugmentedError<ApiType>;\n /**\n * Missing AuthorDigest\n **/\n MissingAuthorDigest: AugmentedError<ApiType>;\n /**\n * Missing BlockVoteDigest\n **/\n MissingBlockVoteDigest: AugmentedError<ApiType>;\n /**\n * Missing NotebookDigest\n **/\n MissingNotebookDigest: AugmentedError<ApiType>;\n /**\n * Missing ParentVotingKeyDigest\n **/\n MissingParentVotingKeyDigest: AugmentedError<ApiType>;\n /**\n * Missing TickDigest\n **/\n MissingTickDigest: AugmentedError<ApiType>;\n };\n domains: {\n /**\n * Error decoding account from notary\n **/\n AccountDecodingError: AugmentedError<ApiType>;\n /**\n * The domain is not registered.\n **/\n DomainNotRegistered: AugmentedError<ApiType>;\n /**\n * Failed to add to the expiring domain list\n **/\n FailedToAddExpiringDomain: AugmentedError<ApiType>;\n /**\n * Failed to add to the address history.\n **/\n FailedToAddToAddressHistory: AugmentedError<ApiType>;\n /**\n * The sender is not the owner of the domain.\n **/\n NotDomainOwner: AugmentedError<ApiType>;\n };\n feeControl: {\n /**\n * The requested tip + fee is higher than the maximum allowed by the sponsor\n **/\n SponsoredFeeTooHigh: AugmentedError<ApiType>;\n };\n grandpa: {\n /**\n * Attempt to signal GRANDPA change with one already pending.\n **/\n ChangePending: AugmentedError<ApiType>;\n /**\n * A given equivocation report is valid but already previously reported.\n **/\n DuplicateOffenceReport: AugmentedError<ApiType>;\n /**\n * An equivocation proof provided as part of an equivocation report is invalid.\n **/\n InvalidEquivocationProof: AugmentedError<ApiType>;\n /**\n * A key ownership proof provided as part of an equivocation report is invalid.\n **/\n InvalidKeyOwnershipProof: AugmentedError<ApiType>;\n /**\n * Attempt to signal GRANDPA pause when the authority set isn't live\n * (either paused or already pending pause).\n **/\n PauseFailed: AugmentedError<ApiType>;\n /**\n * Attempt to signal GRANDPA resume when the authority set isn't paused\n * (either live or already pending resume).\n **/\n ResumeFailed: AugmentedError<ApiType>;\n /**\n * Cannot signal forced change so soon after last.\n **/\n TooSoon: AugmentedError<ApiType>;\n };\n hyperbridge: {};\n ismp: {\n /**\n * Couldn't update challenge period\n **/\n ChallengePeriodUpdateFailed: AugmentedError<ApiType>;\n /**\n * Encountered an error while creating the consensus client.\n **/\n ConsensusClientCreationFailed: AugmentedError<ApiType>;\n /**\n * Error charging fee\n **/\n ErrorChargingFee: AugmentedError<ApiType>;\n /**\n * Invalid ISMP message\n **/\n InvalidMessage: AugmentedError<ApiType>;\n /**\n * Requested message was not found\n **/\n MessageNotFound: AugmentedError<ApiType>;\n /**\n * Couldn't update unbonding period\n **/\n UnbondingPeriodUpdateFailed: AugmentedError<ApiType>;\n };\n miningSlot: {\n /**\n * The mining bid cannot be reduced\n **/\n BidCannotBeReduced: AugmentedError<ApiType>;\n /**\n * The given bid isn't high enough to be in the cohort\n **/\n BidTooLow: AugmentedError<ApiType>;\n /**\n * Cannot re-register an account with a different funding account\n **/\n CannotChangeFundingAccount: AugmentedError<ApiType>;\n /**\n * An account can only have one active registration\n **/\n CannotRegisterOverlappingSessions: AugmentedError<ApiType>;\n /**\n * The funding account does not have enough funds to cover the bid\n **/\n InsufficientFunds: AugmentedError<ApiType>;\n /**\n * This funding account does not hold the minimum argonots needed\n **/\n InsufficientOwnershipTokens: AugmentedError<ApiType>;\n /**\n * Bids must be in allowed increments\n **/\n InvalidBidAmount: AugmentedError<ApiType>;\n /**\n * Bidding for the next cohort has closed\n **/\n SlotNotTakingBids: AugmentedError<ApiType>;\n /**\n * The cohort registration overflowed\n **/\n TooManyBlockRegistrants: AugmentedError<ApiType>;\n /**\n * The argonots on hold cannot be released\n **/\n UnrecoverableHold: AugmentedError<ApiType>;\n };\n mint: {\n TooManyPendingMints: AugmentedError<ApiType>;\n };\n multisig: {\n /**\n * Call is already approved by this signatory.\n **/\n AlreadyApproved: AugmentedError<ApiType>;\n /**\n * The data to be stored is already stored.\n **/\n AlreadyStored: AugmentedError<ApiType>;\n /**\n * The maximum weight information provided was too low.\n **/\n MaxWeightTooLow: AugmentedError<ApiType>;\n /**\n * Threshold must be 2 or greater.\n **/\n MinimumThreshold: AugmentedError<ApiType>;\n /**\n * Call doesn't need any (more) approvals.\n **/\n NoApprovalsNeeded: AugmentedError<ApiType>;\n /**\n * Multisig operation not found in storage.\n **/\n NotFound: AugmentedError<ApiType>;\n /**\n * No timepoint was given, yet the multisig operation is already underway.\n **/\n NoTimepoint: AugmentedError<ApiType>;\n /**\n * Only the account that originally created the multisig is able to cancel it or update\n * its deposits.\n **/\n NotOwner: AugmentedError<ApiType>;\n /**\n * The sender was contained in the other signatories; it shouldn't be.\n **/\n SenderInSignatories: AugmentedError<ApiType>;\n /**\n * The signatories were provided out of order; they should be ordered.\n **/\n SignatoriesOutOfOrder: AugmentedError<ApiType>;\n /**\n * There are too few signatories in the list.\n **/\n TooFewSignatories: AugmentedError<ApiType>;\n /**\n * There are too many signatories in the list.\n **/\n TooManySignatories: AugmentedError<ApiType>;\n /**\n * A timepoint was given, yet no multisig operation is underway.\n **/\n UnexpectedTimepoint: AugmentedError<ApiType>;\n /**\n * A different timepoint was given to the multisig operation that is underway.\n **/\n WrongTimepoint: AugmentedError<ApiType>;\n };\n notaries: {\n /**\n * The proposed effective tick is too soon\n **/\n EffectiveTickTooSoon: AugmentedError<ApiType>;\n /**\n * The notary is invalid\n **/\n InvalidNotary: AugmentedError<ApiType>;\n /**\n * Invalid notary operator for this operation\n **/\n InvalidNotaryOperator: AugmentedError<ApiType>;\n /**\n * Maximum number of notaries exceeded\n **/\n MaxNotariesExceeded: AugmentedError<ApiType>;\n /**\n * Maximum number of proposals per block exceeded\n **/\n MaxProposalsPerBlockExceeded: AugmentedError<ApiType>;\n /**\n * An internal error has occurred. The notary ids are exhausted.\n **/\n NoMoreNotaryIds: AugmentedError<ApiType>;\n /**\n * This notary is not active, so this change cannot be made yet\n **/\n NotAnActiveNotary: AugmentedError<ApiType>;\n /**\n * The proposal to activate was not found\n **/\n ProposalNotFound: AugmentedError<ApiType>;\n /**\n * Too many internal keys\n **/\n TooManyKeys: AugmentedError<ApiType>;\n };\n notebook: {\n /**\n * Could not decode the scale bytes of the notebook\n **/\n CouldNotDecodeNotebook: AugmentedError<ApiType>;\n /**\n * The notebook digest was included more than once\n **/\n DuplicateNotebookDigest: AugmentedError<ApiType>;\n /**\n * This notebook has already been submitted\n **/\n DuplicateNotebookNumber: AugmentedError<ApiType>;\n /**\n * Unable to track the notebook change list\n **/\n InternalError: AugmentedError<ApiType>;\n /**\n * Invalid notary operator\n **/\n InvalidNotaryOperator: AugmentedError<ApiType>;\n /**\n * The notebook digest did not match the included notebooks\n **/\n InvalidNotebookDigest: AugmentedError<ApiType>;\n /**\n * The signature of the notebook is invalid\n **/\n InvalidNotebookSignature: AugmentedError<ApiType>;\n /**\n * Invalid notebook submission tick\n **/\n InvalidNotebookSubmissionTick: AugmentedError<ApiType>;\n /**\n * Invalid reprocess notebook\n **/\n InvalidReprocessNotebook: AugmentedError<ApiType>;\n /**\n * The secret or secret hash of the parent notebook do not match\n **/\n InvalidSecretProvided: AugmentedError<ApiType>;\n /**\n * The notebook digest was not included\n **/\n MissingNotebookDigest: AugmentedError<ApiType>;\n /**\n * Notebooks received out of order\n **/\n MissingNotebookNumber: AugmentedError<ApiType>;\n /**\n * Multiple inherents provided\n **/\n MultipleNotebookInherentsProvided: AugmentedError<ApiType>;\n /**\n * A notebook was submitted for a notary that failed audit, which is not allowed\n **/\n NotebookSubmittedForLockedNotary: AugmentedError<ApiType>;\n /**\n * A notebook was already provided at this tick\n **/\n NotebookTickAlreadyUsed: AugmentedError<ApiType>;\n };\n operationalAccounts: {\n /**\n * One of the provided accounts is already linked to an operational account.\n **/\n AccountAlreadyLinked: AugmentedError<ApiType>;\n /**\n * The account is already operational.\n **/\n AlreadyOperational: AugmentedError<ApiType>;\n /**\n * The caller already registered an operational account.\n **/\n AlreadyRegistered: AugmentedError<ApiType>;\n /**\n * The encrypted server payload exceeds the configured max length.\n **/\n EncryptedServerTooLong: AugmentedError<ApiType>;\n /**\n * One of the linked account ownership proofs is invalid.\n **/\n InvalidAccountProof: AugmentedError<ApiType>;\n /**\n * The referral proof or sponsor proof is invalid.\n **/\n InvalidReferralProof: AugmentedError<ApiType>;\n /**\n * The caller is not one of the accounts included in the registration.\n **/\n InvalidRegistrationSubmitter: AugmentedError<ApiType>;\n /**\n * The operational account has no pending rewards to claim.\n **/\n NoPendingRewards: AugmentedError<ApiType>;\n /**\n * The requested progress patch does not contain any updates.\n **/\n NoProgressUpdateProvided: AugmentedError<ApiType>;\n /**\n * The account has not satisfied operational requirements yet.\n **/\n NotEligibleForActivation: AugmentedError<ApiType>;\n /**\n * The caller has not registered an operational account.\n **/\n NotOperationalAccount: AugmentedError<ApiType>;\n /**\n * The caller is not the sponsor of the requested sponsee.\n **/\n NotSponsorOfSponsee: AugmentedError<ApiType>;\n /**\n * The referral proof has expired.\n **/\n ReferralProofExpired: AugmentedError<ApiType>;\n /**\n * Reward claims must be at least one Argon.\n **/\n RewardClaimBelowMinimum: AugmentedError<ApiType>;\n /**\n * The requested reward claim exceeds pending rewards.\n **/\n RewardClaimExceedsPending: AugmentedError<ApiType>;\n /**\n * Reward claims must be whole Argon increments.\n **/\n RewardClaimNotWholeArgon: AugmentedError<ApiType>;\n /**\n * The treasury does not currently have enough available reserves for the claim.\n **/\n TreasuryInsufficientFunds: AugmentedError<ApiType>;\n };\n ownership: {\n /**\n * Beneficiary account must pre-exist.\n **/\n DeadAccount: AugmentedError<ApiType>;\n /**\n * The delta cannot be zero.\n **/\n DeltaZero: AugmentedError<ApiType>;\n /**\n * Value too low to create account due to existential deposit.\n **/\n ExistentialDeposit: AugmentedError<ApiType>;\n /**\n * A vesting schedule already exists for this account.\n **/\n ExistingVestingSchedule: AugmentedError<ApiType>;\n /**\n * Transfer/payment would kill account.\n **/\n Expendability: AugmentedError<ApiType>;\n /**\n * Balance too low to send value.\n **/\n InsufficientBalance: AugmentedError<ApiType>;\n /**\n * The issuance cannot be modified since it is already deactivated.\n **/\n IssuanceDeactivated: AugmentedError<ApiType>;\n /**\n * Account liquidity restrictions prevent withdrawal.\n **/\n LiquidityRestrictions: AugmentedError<ApiType>;\n /**\n * Number of freezes exceed `MaxFreezes`.\n **/\n TooManyFreezes: AugmentedError<ApiType>;\n /**\n * Number of holds exceed `VariantCountOf<T::RuntimeHoldReason>`.\n **/\n TooManyHolds: AugmentedError<ApiType>;\n /**\n * Number of named reserves exceed `MaxReserves`.\n **/\n TooManyReserves: AugmentedError<ApiType>;\n /**\n * Vesting balance too high to send value.\n **/\n VestingBalance: AugmentedError<ApiType>;\n };\n priceIndex: {\n /**\n * Change in argon price is too large\n **/\n MaxPriceChangePerTickExceeded: AugmentedError<ApiType>;\n /**\n * Missing value\n **/\n MissingValue: AugmentedError<ApiType>;\n /**\n * Not authorized as an oracle operator\n **/\n NotAuthorizedOperator: AugmentedError<ApiType>;\n /**\n * The submitted prices are too old\n **/\n PricesTooOld: AugmentedError<ApiType>;\n };\n proxy: {\n /**\n * Account is already a proxy.\n **/\n Duplicate: AugmentedError<ApiType>;\n /**\n * Call may not be made by proxy because it may escalate its privileges.\n **/\n NoPermission: AugmentedError<ApiType>;\n /**\n * Cannot add self as proxy.\n **/\n NoSelfProxy: AugmentedError<ApiType>;\n /**\n * Proxy registration not found.\n **/\n NotFound: AugmentedError<ApiType>;\n /**\n * Sender is not a proxy of the account to be proxied.\n **/\n NotProxy: AugmentedError<ApiType>;\n /**\n * There are too many proxies registered or too many announcements pending.\n **/\n TooMany: AugmentedError<ApiType>;\n /**\n * Announcement, if made at all, was made too recently.\n **/\n Unannounced: AugmentedError<ApiType>;\n /**\n * A call which is incompatible with the proxy type's filter was attempted.\n **/\n Unproxyable: AugmentedError<ApiType>;\n };\n sudo: {\n /**\n * Sender must be the Sudo account.\n **/\n RequireSudo: AugmentedError<ApiType>;\n };\n system: {\n /**\n * The origin filter prevent the call to be dispatched.\n **/\n CallFiltered: AugmentedError<ApiType>;\n /**\n * Failed to extract the runtime version from the new runtime.\n *\n * Either calling `Core_version` or decoding `RuntimeVersion` failed.\n **/\n FailedToExtractRuntimeVersion: AugmentedError<ApiType>;\n /**\n * The name of specification does not match between the current runtime\n * and the new runtime.\n **/\n InvalidSpecName: AugmentedError<ApiType>;\n /**\n * A multi-block migration is ongoing and prevents the current code from being replaced.\n **/\n MultiBlockMigrationsOngoing: AugmentedError<ApiType>;\n /**\n * Suicide called when the account has non-default composite data.\n **/\n NonDefaultComposite: AugmentedError<ApiType>;\n /**\n * There is a non-zero reference count preventing the account from being purged.\n **/\n NonZeroRefCount: AugmentedError<ApiType>;\n /**\n * No upgrade authorized.\n **/\n NothingAuthorized: AugmentedError<ApiType>;\n /**\n * The specification version is not allowed to decrease between the current runtime\n * and the new runtime.\n **/\n SpecVersionNeedsToIncrease: AugmentedError<ApiType>;\n /**\n * The submitted code is not authorized.\n **/\n Unauthorized: AugmentedError<ApiType>;\n };\n ticks: {};\n tokenGateway: {\n /**\n * Asset Id creation failed\n **/\n AssetCreationError: AugmentedError<ApiType>;\n /**\n * Asset decimals not found\n **/\n AssetDecimalsNotFound: AugmentedError<ApiType>;\n /**\n * Error while teleporting asset\n **/\n AssetTeleportError: AugmentedError<ApiType>;\n /**\n * Coprocessor was not configured in the runtime\n **/\n CoprocessorNotConfigured: AugmentedError<ApiType>;\n /**\n * Asset or update Dispatch Error\n **/\n DispatchError: AugmentedError<ApiType>;\n /**\n * Only root or asset owner can update asset\n **/\n NotAssetOwner: AugmentedError<ApiType>;\n /**\n * Protocol Params have not been initialized\n **/\n NotInitialized: AugmentedError<ApiType>;\n /**\n * Unknown Asset\n **/\n UnknownAsset: AugmentedError<ApiType>;\n /**\n * A asset that has not been registered\n **/\n UnregisteredAsset: AugmentedError<ApiType>;\n };\n treasury: {\n /**\n * The bond lot is already scheduled for release.\n **/\n BondLotAlreadyReleasing: AugmentedError<ApiType>;\n /**\n * The bond lot could not be found.\n **/\n BondLotNotFound: AugmentedError<ApiType>;\n /**\n * The vault doesn't have enough bitcoin security to support this bond purchase\n **/\n BondPurchaseAboveSecurity: AugmentedError<ApiType>;\n /**\n * The purchase is below the minimum amount.\n **/\n BondPurchaseBelowMinimum: AugmentedError<ApiType>;\n /**\n * The purchase would not enter the vault's accepted list.\n **/\n BondPurchaseRejected: AugmentedError<ApiType>;\n /**\n * An internal error occurred.\n **/\n InternalError: AugmentedError<ApiType>;\n /**\n * The vault already has the maximum number of accepted bond lots.\n **/\n MaxAcceptedBondLotsExceeded: AugmentedError<ApiType>;\n /**\n * Too many bond lot releases are scheduled for the same frame.\n **/\n MaxPendingBondReleasesExceeded: AugmentedError<ApiType>;\n /**\n * The caller does not own the bond lot.\n **/\n NotBondLotOwner: AugmentedError<ApiType>;\n /**\n * The vault is not accepting bond purchases.\n **/\n VaultNotAcceptingBondPurchases: AugmentedError<ApiType>;\n };\n txPause: {\n /**\n * The call is paused.\n **/\n IsPaused: AugmentedError<ApiType>;\n /**\n * The call is unpaused.\n **/\n IsUnpaused: AugmentedError<ApiType>;\n NotFound: AugmentedError<ApiType>;\n /**\n * The call is whitelisted and cannot be paused.\n **/\n Unpausable: AugmentedError<ApiType>;\n };\n utility: {\n /**\n * Too many calls batched.\n **/\n TooManyCalls: AugmentedError<ApiType>;\n };\n vaults: {\n /**\n * An account may only be associated with a single vault\n **/\n AccountAlreadyHasVault: AugmentedError<ApiType>;\n /**\n * The proposed transaction would take the account below the minimum (existential) balance\n **/\n AccountBelowMinimumBalance: AugmentedError<ApiType>;\n /**\n * Bitcoin conversion to compressed pubkey failed\n **/\n BitcoinConversionFailed: AugmentedError<ApiType>;\n /**\n * A funding change is already scheduled\n **/\n FundingChangeAlreadyScheduled: AugmentedError<ApiType>;\n HoldUnexpectedlyModified: AugmentedError<ApiType>;\n /**\n * The user doesn't have enough funds to complete this request\n **/\n InsufficientFunds: AugmentedError<ApiType>;\n /**\n * There aren't enough funds in the vault to cover the requested bitcoin lock\n **/\n InsufficientVaultFunds: AugmentedError<ApiType>;\n /**\n * An internal processing error occurred\n **/\n InternalError: AugmentedError<ApiType>;\n /**\n * The bitcoin script to lock this bitcoin has errors\n **/\n InvalidBitcoinScript: AugmentedError<ApiType>;\n /**\n * An invalid securitization percent was provided for the vault. NOTE: it cannot be\n * decreased (or negative)\n **/\n InvalidSecuritization: AugmentedError<ApiType>;\n /**\n * Funding would result in an overflow of the balance type\n **/\n InvalidVaultAmount: AugmentedError<ApiType>;\n /**\n * Vault names must start with an uppercase ASCII letter and otherwise be ASCII\n * alphanumeric.\n **/\n InvalidVaultName: AugmentedError<ApiType>;\n /**\n * Unable to decode xpubkey\n **/\n InvalidXpubkey: AugmentedError<ApiType>;\n /**\n * Internally, the vault ids are maxed out\n **/\n NoMoreVaultIds: AugmentedError<ApiType>;\n NoPermissions: AugmentedError<ApiType>;\n /**\n * No Vault public keys are available\n **/\n NoVaultBitcoinPubkeysAvailable: AugmentedError<ApiType>;\n /**\n * A vault must clear out all pending cosigns before it can collect\n **/\n PendingCosignsBeforeCollect: AugmentedError<ApiType>;\n /**\n * A vault must clear out all pending orphan cosigns before it can collect\n **/\n PendingOrphanedUtxoCosignsBeforeCollect: AugmentedError<ApiType>;\n /**\n * The vault bitcoin xpubkey has already been used\n **/\n ReusedVaultBitcoinXpub: AugmentedError<ApiType>;\n /**\n * Terms are already scheduled to be changed\n **/\n TermsChangeAlreadyScheduled: AugmentedError<ApiType>;\n /**\n * The terms modification list could not handle any more items\n **/\n TermsModificationOverflow: AugmentedError<ApiType>;\n /**\n * Unable to derive xpubkey child\n **/\n UnableToDeriveVaultXpubChild: AugmentedError<ApiType>;\n /**\n * Unable to generate a new vault bitcoin pubkey\n **/\n UnableToGenerateVaultBitcoinPubkey: AugmentedError<ApiType>;\n UnrecoverableHold: AugmentedError<ApiType>;\n /**\n * The XPub is unsafe to use in a public blockchain (aka, unhardened)\n **/\n UnsafeXpubkey: AugmentedError<ApiType>;\n /**\n * This vault is closed\n **/\n VaultClosed: AugmentedError<ApiType>;\n VaultNotFound: AugmentedError<ApiType>;\n /**\n * The vault is not yet active\n **/\n VaultNotYetActive: AugmentedError<ApiType>;\n /**\n * This reduction in vault securitization goes below the amount already committed\n **/\n VaultReductionBelowSecuritization: AugmentedError<ApiType>;\n /**\n * Wrong Xpub Network\n **/\n WrongXpubNetwork: AugmentedError<ApiType>;\n };\n } // AugmentedErrors\n} // declare module\n","// Auto-generated via `yarn polkadot-types-from-chain`, do not edit\n/* eslint-disable */\n\n// import type lookup before we augment - in some environments\n// this is required to allow for ambient/previous definitions\nimport '@polkadot/api-base/types/events';\n\nimport type { ApiTypes, AugmentedEvent } from '@polkadot/api-base/types';\nimport type {\n Bytes,\n Null,\n Option,\n Result,\n U8aFixed,\n Vec,\n bool,\n i128,\n u128,\n u16,\n u32,\n u64,\n} from '@polkadot/types-codec';\nimport type { ITuple } from '@polkadot/types-codec/types';\nimport type { AccountId32, H256 } from '@polkadot/types/interfaces/runtime';\nimport type {\n ArgonNotaryAuditErrorVerifyError,\n ArgonPrimitivesBitcoinBitcoinRejectedReason,\n ArgonPrimitivesBitcoinUtxoRef,\n ArgonPrimitivesBlockSealBlockPayout,\n ArgonPrimitivesBlockSealMiningRegistration,\n ArgonPrimitivesDomainZoneRecord,\n ArgonPrimitivesNotaryNotaryMeta,\n ArgonPrimitivesNotaryNotaryRecord,\n ArgonPrimitivesProvidersOperationalRewardKind,\n ArgonRuntimeOriginCaller,\n ArgonRuntimeProxyType,\n ArgonRuntimeRuntimeHoldReason,\n FrameSupportTokensMiscBalanceStatus,\n FrameSystemDispatchEventInfo,\n IsmpConsensusStateMachineHeight,\n IsmpConsensusStateMachineId,\n IsmpEventsRequestResponseHandled,\n IsmpEventsTimeoutHandled,\n IsmpHostStateMachine,\n PalletBalancesUnexpectedKind,\n PalletDomainsDomainRegistration,\n PalletHyperbridgeVersionedHostParams,\n PalletInboundTransferLogInboundEvmTransfer,\n PalletInboundTransferLogInboundTransferDropReason,\n PalletIsmpErrorsHandlingError,\n PalletMintMintType,\n PalletMultisigTimepoint,\n PalletProxyDepositKind,\n PalletTreasuryBondReleaseReason,\n SpConsensusGrandpaAppPublic,\n SpRuntimeDispatchError,\n} from '@polkadot/types/lookup';\n\nexport type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;\n\ndeclare module '@polkadot/api-base/types/events' {\n interface AugmentedEvents<ApiType extends ApiTypes> {\n balances: {\n /**\n * A balance was set by root.\n **/\n BalanceSet: AugmentedEvent<\n ApiType,\n [who: AccountId32, free: u128],\n { who: AccountId32; free: u128 }\n >;\n /**\n * Some amount was burned from an account.\n **/\n Burned: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some debt has been dropped from the Total Issuance.\n **/\n BurnedDebt: AugmentedEvent<ApiType, [amount: u128], { amount: u128 }>;\n /**\n * Held balance was burned from an account.\n **/\n BurnedHeld: AugmentedEvent<\n ApiType,\n [reason: ArgonRuntimeRuntimeHoldReason, who: AccountId32, amount: u128],\n { reason: ArgonRuntimeRuntimeHoldReason; who: AccountId32; amount: u128 }\n >;\n /**\n * Some amount was deposited (e.g. for transaction fees).\n **/\n Deposit: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * An account was removed whose balance was non-zero but below ExistentialDeposit,\n * resulting in an outright loss.\n **/\n DustLost: AugmentedEvent<\n ApiType,\n [account: AccountId32, amount: u128],\n { account: AccountId32; amount: u128 }\n >;\n /**\n * An account was created with some free balance.\n **/\n Endowed: AugmentedEvent<\n ApiType,\n [account: AccountId32, freeBalance: u128],\n { account: AccountId32; freeBalance: u128 }\n >;\n /**\n * Some balance was frozen.\n **/\n Frozen: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some balance was placed on hold.\n **/\n Held: AugmentedEvent<\n ApiType,\n [reason: ArgonRuntimeRuntimeHoldReason, who: AccountId32, amount: u128],\n { reason: ArgonRuntimeRuntimeHoldReason; who: AccountId32; amount: u128 }\n >;\n /**\n * Total issuance was increased by `amount`, creating a credit to be balanced.\n **/\n Issued: AugmentedEvent<ApiType, [amount: u128], { amount: u128 }>;\n /**\n * Some balance was locked.\n **/\n Locked: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some amount was minted into an account.\n **/\n Minted: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some credit was balanced and added to the TotalIssuance.\n **/\n MintedCredit: AugmentedEvent<ApiType, [amount: u128], { amount: u128 }>;\n /**\n * Some balance was released from hold.\n **/\n Released: AugmentedEvent<\n ApiType,\n [reason: ArgonRuntimeRuntimeHoldReason, who: AccountId32, amount: u128],\n { reason: ArgonRuntimeRuntimeHoldReason; who: AccountId32; amount: u128 }\n >;\n /**\n * Total issuance was decreased by `amount`, creating a debt to be balanced.\n **/\n Rescinded: AugmentedEvent<ApiType, [amount: u128], { amount: u128 }>;\n /**\n * Some balance was reserved (moved from free to reserved).\n **/\n Reserved: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some balance was moved from the reserve of the first account to the second account.\n * Final argument indicates the destination balance type.\n **/\n ReserveRepatriated: AugmentedEvent<\n ApiType,\n [\n from: AccountId32,\n to: AccountId32,\n amount: u128,\n destinationStatus: FrameSupportTokensMiscBalanceStatus,\n ],\n {\n from: AccountId32;\n to: AccountId32;\n amount: u128;\n destinationStatus: FrameSupportTokensMiscBalanceStatus;\n }\n >;\n /**\n * Some amount was restored into an account.\n **/\n Restored: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some amount was removed from the account (e.g. for misbehavior).\n **/\n Slashed: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some amount was suspended from an account (it can be restored later).\n **/\n Suspended: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some balance was thawed.\n **/\n Thawed: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * The `TotalIssuance` was forcefully changed.\n **/\n TotalIssuanceForced: AugmentedEvent<\n ApiType,\n [old: u128, new_: u128],\n { old: u128; new_: u128 }\n >;\n /**\n * Transfer succeeded.\n **/\n Transfer: AugmentedEvent<\n ApiType,\n [from: AccountId32, to: AccountId32, amount: u128],\n { from: AccountId32; to: AccountId32; amount: u128 }\n >;\n /**\n * The `transferred` balance is placed on hold at the `dest` account.\n **/\n TransferAndHold: AugmentedEvent<\n ApiType,\n [\n reason: ArgonRuntimeRuntimeHoldReason,\n source: AccountId32,\n dest: AccountId32,\n transferred: u128,\n ],\n {\n reason: ArgonRuntimeRuntimeHoldReason;\n source: AccountId32;\n dest: AccountId32;\n transferred: u128;\n }\n >;\n /**\n * A transfer of `amount` on hold from `source` to `dest` was initiated.\n **/\n TransferOnHold: AugmentedEvent<\n ApiType,\n [\n reason: ArgonRuntimeRuntimeHoldReason,\n source: AccountId32,\n dest: AccountId32,\n amount: u128,\n ],\n {\n reason: ArgonRuntimeRuntimeHoldReason;\n source: AccountId32;\n dest: AccountId32;\n amount: u128;\n }\n >;\n /**\n * An unexpected/defensive event was triggered.\n **/\n Unexpected: AugmentedEvent<ApiType, [PalletBalancesUnexpectedKind]>;\n /**\n * Some balance was unlocked.\n **/\n Unlocked: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some balance was unreserved (moved from reserved to free).\n **/\n Unreserved: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * An account was upgraded.\n **/\n Upgraded: AugmentedEvent<ApiType, [who: AccountId32], { who: AccountId32 }>;\n /**\n * Some amount was withdrawn from the account (e.g. for transaction fees).\n **/\n Withdraw: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n };\n bitcoinLocks: {\n BitcoinCosignPastDue: AugmentedEvent<\n ApiType,\n [utxoId: u64, vaultId: u32, compensationAmount: u128, compensatedAccountId: AccountId32],\n { utxoId: u64; vaultId: u32; compensationAmount: u128; compensatedAccountId: AccountId32 }\n >;\n BitcoinLockBurned: AugmentedEvent<\n ApiType,\n [utxoId: u64, vaultId: u32, wasUtxoSpent: bool],\n { utxoId: u64; vaultId: u32; wasUtxoSpent: bool }\n >;\n BitcoinLockCreated: AugmentedEvent<\n ApiType,\n [\n utxoId: u64,\n vaultId: u32,\n liquidityPromised: u128,\n securitization: u128,\n lockedMarketRate: u128,\n accountId: AccountId32,\n securityFee: u128,\n ],\n {\n utxoId: u64;\n vaultId: u32;\n liquidityPromised: u128;\n securitization: u128;\n lockedMarketRate: u128;\n accountId: AccountId32;\n securityFee: u128;\n }\n >;\n BitcoinLockRatcheted: AugmentedEvent<\n ApiType,\n [\n utxoId: u64,\n vaultId: u32,\n liquidityPromised: u128,\n originalMarketRate: u128,\n securityFee: u128,\n newLockedMarketRate: u128,\n amountBurned: u128,\n accountId: AccountId32,\n ],\n {\n utxoId: u64;\n vaultId: u32;\n liquidityPromised: u128;\n originalMarketRate: u128;\n securityFee: u128;\n newLockedMarketRate: u128;\n amountBurned: u128;\n accountId: AccountId32;\n }\n >;\n BitcoinSpentAfterRelease: AugmentedEvent<\n ApiType,\n [utxoId: u64, vaultId: u32],\n { utxoId: u64; vaultId: u32 }\n >;\n BitcoinUtxoCosigned: AugmentedEvent<\n ApiType,\n [utxoId: u64, vaultId: u32, signature: Bytes],\n { utxoId: u64; vaultId: u32; signature: Bytes }\n >;\n BitcoinUtxoCosignRequested: AugmentedEvent<\n ApiType,\n [utxoId: u64, vaultId: u32],\n { utxoId: u64; vaultId: u32 }\n >;\n /**\n * An error occurred while refunding an overdue cosigned bitcoin lock\n **/\n CosignOverdueError: AugmentedEvent<\n ApiType,\n [utxoId: u64, error: SpRuntimeDispatchError],\n { utxoId: u64; error: SpRuntimeDispatchError }\n >;\n /**\n * An error occurred while completing a lock\n **/\n LockExpirationError: AugmentedEvent<\n ApiType,\n [utxoId: u64, error: SpRuntimeDispatchError],\n { utxoId: u64; error: SpRuntimeDispatchError }\n >;\n OrphanedUtxoCosigned: AugmentedEvent<\n ApiType,\n [\n utxoId: u64,\n utxoRef: ArgonPrimitivesBitcoinUtxoRef,\n vaultId: u32,\n accountId: AccountId32,\n signature: Bytes,\n ],\n {\n utxoId: u64;\n utxoRef: ArgonPrimitivesBitcoinUtxoRef;\n vaultId: u32;\n accountId: AccountId32;\n signature: Bytes;\n }\n >;\n OrphanedUtxoReceived: AugmentedEvent<\n ApiType,\n [utxoId: u64, utxoRef: ArgonPrimitivesBitcoinUtxoRef, vaultId: u32, satoshis: u64],\n { utxoId: u64; utxoRef: ArgonPrimitivesBitcoinUtxoRef; vaultId: u32; satoshis: u64 }\n >;\n OrphanedUtxoReleaseRequested: AugmentedEvent<\n ApiType,\n [utxoId: u64, utxoRef: ArgonPrimitivesBitcoinUtxoRef, vaultId: u32, accountId: AccountId32],\n {\n utxoId: u64;\n utxoRef: ArgonPrimitivesBitcoinUtxoRef;\n vaultId: u32;\n accountId: AccountId32;\n }\n >;\n SecuritizationIncreased: AugmentedEvent<\n ApiType,\n [utxoId: u64, vaultId: u32, newSatoshis: u64, accountId: AccountId32],\n { utxoId: u64; vaultId: u32; newSatoshis: u64; accountId: AccountId32 }\n >;\n UtxoFundedFromCandidate: AugmentedEvent<\n ApiType,\n [utxoId: u64, utxoRef: ArgonPrimitivesBitcoinUtxoRef, vaultId: u32, accountId: AccountId32],\n {\n utxoId: u64;\n utxoRef: ArgonPrimitivesBitcoinUtxoRef;\n vaultId: u32;\n accountId: AccountId32;\n }\n >;\n };\n bitcoinUtxos: {\n UtxoRejected: AugmentedEvent<\n ApiType,\n [\n utxoId: u64,\n utxoRef: ArgonPrimitivesBitcoinUtxoRef,\n rejectedReason: ArgonPrimitivesBitcoinBitcoinRejectedReason,\n satoshisReceived: u64,\n ],\n {\n utxoId: u64;\n utxoRef: ArgonPrimitivesBitcoinUtxoRef;\n rejectedReason: ArgonPrimitivesBitcoinBitcoinRejectedReason;\n satoshisReceived: u64;\n }\n >;\n UtxoRejectedError: AugmentedEvent<\n ApiType,\n [utxoId: u64, error: SpRuntimeDispatchError],\n { utxoId: u64; error: SpRuntimeDispatchError }\n >;\n UtxoSpent: AugmentedEvent<\n ApiType,\n [utxoId: u64, blockHeight: u64],\n { utxoId: u64; blockHeight: u64 }\n >;\n UtxoSpentError: AugmentedEvent<\n ApiType,\n [utxoId: u64, error: SpRuntimeDispatchError],\n { utxoId: u64; error: SpRuntimeDispatchError }\n >;\n UtxoUnwatched: AugmentedEvent<ApiType, [utxoId: u64], { utxoId: u64 }>;\n UtxoVerified: AugmentedEvent<\n ApiType,\n [utxoId: u64, satoshisReceived: u64],\n { utxoId: u64; satoshisReceived: u64 }\n >;\n UtxoVerifiedError: AugmentedEvent<\n ApiType,\n [utxoId: u64, error: SpRuntimeDispatchError],\n { utxoId: u64; error: SpRuntimeDispatchError }\n >;\n };\n blockRewards: {\n RewardCreated: AugmentedEvent<\n ApiType,\n [rewards: Vec<ArgonPrimitivesBlockSealBlockPayout>],\n { rewards: Vec<ArgonPrimitivesBlockSealBlockPayout> }\n >;\n RewardCreateError: AugmentedEvent<\n ApiType,\n [\n accountId: AccountId32,\n argons: Option<u128>,\n ownership: Option<u128>,\n error: SpRuntimeDispatchError,\n ],\n {\n accountId: AccountId32;\n argons: Option<u128>;\n ownership: Option<u128>;\n error: SpRuntimeDispatchError;\n }\n >;\n };\n blockSealSpec: {\n ComputeDifficultyAdjusted: AugmentedEvent<\n ApiType,\n [expectedBlockTime: u64, actualBlockTime: u64, startDifficulty: u128, newDifficulty: u128],\n { expectedBlockTime: u64; actualBlockTime: u64; startDifficulty: u128; newDifficulty: u128 }\n >;\n VoteMinimumAdjusted: AugmentedEvent<\n ApiType,\n [\n expectedBlockVotes: u128,\n actualBlockVotes: u128,\n startVoteMinimum: u128,\n newVoteMinimum: u128,\n ],\n {\n expectedBlockVotes: u128;\n actualBlockVotes: u128;\n startVoteMinimum: u128;\n newVoteMinimum: u128;\n }\n >;\n };\n chainTransfer: {\n /**\n * A localchain transfer could not be cleaned up properly. Possible invalid transfer\n * needing investigation.\n **/\n PossibleInvalidLocalchainTransferAllowed: AugmentedEvent<\n ApiType,\n [transferId: u32, notaryId: u32, notebookNumber: u32],\n { transferId: u32; notaryId: u32; notebookNumber: u32 }\n >;\n /**\n * Taxation failed\n **/\n TaxationError: AugmentedEvent<\n ApiType,\n [notaryId: u32, notebookNumber: u32, tax: u128, error: SpRuntimeDispatchError],\n { notaryId: u32; notebookNumber: u32; tax: u128; error: SpRuntimeDispatchError }\n >;\n /**\n * Transfer from Localchain to Mainchain\n **/\n TransferFromLocalchain: AugmentedEvent<\n ApiType,\n [accountId: AccountId32, amount: u128, notaryId: u32],\n { accountId: AccountId32; amount: u128; notaryId: u32 }\n >;\n /**\n * A transfer into the mainchain failed\n **/\n TransferFromLocalchainError: AugmentedEvent<\n ApiType,\n [\n accountId: AccountId32,\n amount: u128,\n notaryId: u32,\n notebookNumber: u32,\n error: SpRuntimeDispatchError,\n ],\n {\n accountId: AccountId32;\n amount: u128;\n notaryId: u32;\n notebookNumber: u32;\n error: SpRuntimeDispatchError;\n }\n >;\n /**\n * Funds sent to a localchain\n **/\n TransferToLocalchain: AugmentedEvent<\n ApiType,\n [accountId: AccountId32, amount: u128, transferId: u32, notaryId: u32, expirationTick: u64],\n {\n accountId: AccountId32;\n amount: u128;\n transferId: u32;\n notaryId: u32;\n expirationTick: u64;\n }\n >;\n /**\n * Transfer to localchain expired and rolled back\n **/\n TransferToLocalchainExpired: AugmentedEvent<\n ApiType,\n [accountId: AccountId32, transferId: u32, notaryId: u32],\n { accountId: AccountId32; transferId: u32; notaryId: u32 }\n >;\n /**\n * An expired transfer to localchain failed to be refunded\n **/\n TransferToLocalchainRefundError: AugmentedEvent<\n ApiType,\n [\n accountId: AccountId32,\n transferId: u32,\n notaryId: u32,\n notebookNumber: u32,\n error: SpRuntimeDispatchError,\n ],\n {\n accountId: AccountId32;\n transferId: u32;\n notaryId: u32;\n notebookNumber: u32;\n error: SpRuntimeDispatchError;\n }\n >;\n };\n digests: {};\n domains: {\n /**\n * A domain was expired\n **/\n DomainExpired: AugmentedEvent<ApiType, [domainHash: H256], { domainHash: H256 }>;\n /**\n * A domain was registered\n **/\n DomainRegistered: AugmentedEvent<\n ApiType,\n [domainHash: H256, registration: PalletDomainsDomainRegistration],\n { domainHash: H256; registration: PalletDomainsDomainRegistration }\n >;\n /**\n * A domain registration was canceled due to a conflicting registration in the same\n * tick\n **/\n DomainRegistrationCanceled: AugmentedEvent<\n ApiType,\n [domainHash: H256, registration: PalletDomainsDomainRegistration],\n { domainHash: H256; registration: PalletDomainsDomainRegistration }\n >;\n /**\n * A domain registration failed due to an error\n **/\n DomainRegistrationError: AugmentedEvent<\n ApiType,\n [domainHash: H256, accountId: AccountId32, error: SpRuntimeDispatchError],\n { domainHash: H256; accountId: AccountId32; error: SpRuntimeDispatchError }\n >;\n /**\n * A domain was registered\n **/\n DomainRenewed: AugmentedEvent<ApiType, [domainHash: H256], { domainHash: H256 }>;\n /**\n * A domain zone record was updated\n **/\n ZoneRecordUpdated: AugmentedEvent<\n ApiType,\n [domainHash: H256, zoneRecord: ArgonPrimitivesDomainZoneRecord],\n { domainHash: H256; zoneRecord: ArgonPrimitivesDomainZoneRecord }\n >;\n };\n feeControl: {\n /**\n * A transaction fee was delegated\n **/\n FeeDelegated: AugmentedEvent<\n ApiType,\n [origin: ArgonRuntimeOriginCaller, from: AccountId32, to: AccountId32],\n { origin: ArgonRuntimeOriginCaller; from: AccountId32; to: AccountId32 }\n >;\n /**\n * A transaction fee was skipped.\n **/\n FeeSkipped: AugmentedEvent<\n ApiType,\n [origin: ArgonRuntimeOriginCaller],\n { origin: ArgonRuntimeOriginCaller }\n >;\n };\n grandpa: {\n /**\n * New authority set has been applied.\n **/\n NewAuthorities: AugmentedEvent<\n ApiType,\n [authoritySet: Vec<ITuple<[SpConsensusGrandpaAppPublic, u64]>>],\n { authoritySet: Vec<ITuple<[SpConsensusGrandpaAppPublic, u64]>> }\n >;\n /**\n * Current authority set has been paused.\n **/\n Paused: AugmentedEvent<ApiType, []>;\n /**\n * Current authority set has been resumed.\n **/\n Resumed: AugmentedEvent<ApiType, []>;\n };\n hyperbridge: {\n /**\n * Hyperbridge governance has now updated it's host params on this chain.\n **/\n HostParamsUpdated: AugmentedEvent<\n ApiType,\n [old: PalletHyperbridgeVersionedHostParams, new_: PalletHyperbridgeVersionedHostParams],\n { old: PalletHyperbridgeVersionedHostParams; new_: PalletHyperbridgeVersionedHostParams }\n >;\n /**\n * A relayer has withdrawn some fees\n **/\n RelayerFeeWithdrawn: AugmentedEvent<\n ApiType,\n [amount: u128, account: AccountId32],\n { amount: u128; account: AccountId32 }\n >;\n };\n inboundTransferLog: {\n /**\n * A TokenGateway request was ignored or dropped.\n **/\n InboundEvmTransferDropped: AugmentedEvent<\n ApiType,\n [\n source: IsmpHostStateMachine,\n nonce: u64,\n reason: PalletInboundTransferLogInboundTransferDropReason,\n ],\n {\n source: IsmpHostStateMachine;\n nonce: u64;\n reason: PalletInboundTransferLogInboundTransferDropReason;\n }\n >;\n /**\n * A qualifying inbound TokenGateway request was recorded.\n **/\n InboundEvmTransferRecorded: AugmentedEvent<\n ApiType,\n [transfer: PalletInboundTransferLogInboundEvmTransfer],\n { transfer: PalletInboundTransferLogInboundEvmTransfer }\n >;\n };\n ismp: {\n /**\n * Indicates that a consensus client has been created\n **/\n ConsensusClientCreated: AugmentedEvent<\n ApiType,\n [consensusClientId: U8aFixed],\n { consensusClientId: U8aFixed }\n >;\n /**\n * Indicates that a consensus client has been created\n **/\n ConsensusClientFrozen: AugmentedEvent<\n ApiType,\n [consensusClientId: U8aFixed],\n { consensusClientId: U8aFixed }\n >;\n /**\n * Some errors handling some ismp messages\n **/\n Errors: AugmentedEvent<\n ApiType,\n [errors: Vec<PalletIsmpErrorsHandlingError>],\n { errors: Vec<PalletIsmpErrorsHandlingError> }\n >;\n /**\n * Get Response Handled\n **/\n GetRequestHandled: AugmentedEvent<ApiType, [IsmpEventsRequestResponseHandled]>;\n /**\n * Get request timeout handled\n **/\n GetRequestTimeoutHandled: AugmentedEvent<ApiType, [IsmpEventsTimeoutHandled]>;\n /**\n * Post Request Handled\n **/\n PostRequestHandled: AugmentedEvent<ApiType, [IsmpEventsRequestResponseHandled]>;\n /**\n * Post request timeout handled\n **/\n PostRequestTimeoutHandled: AugmentedEvent<ApiType, [IsmpEventsTimeoutHandled]>;\n /**\n * Post Response Handled\n **/\n PostResponseHandled: AugmentedEvent<ApiType, [IsmpEventsRequestResponseHandled]>;\n /**\n * Post response timeout handled\n **/\n PostResponseTimeoutHandled: AugmentedEvent<ApiType, [IsmpEventsTimeoutHandled]>;\n /**\n * An Outgoing Request has been deposited\n **/\n Request: AugmentedEvent<\n ApiType,\n [\n destChain: IsmpHostStateMachine,\n sourceChain: IsmpHostStateMachine,\n requestNonce: u64,\n commitment: H256,\n ],\n {\n destChain: IsmpHostStateMachine;\n sourceChain: IsmpHostStateMachine;\n requestNonce: u64;\n commitment: H256;\n }\n >;\n /**\n * An Outgoing Response has been deposited\n **/\n Response: AugmentedEvent<\n ApiType,\n [\n destChain: IsmpHostStateMachine,\n sourceChain: IsmpHostStateMachine,\n requestNonce: u64,\n commitment: H256,\n reqCommitment: H256,\n ],\n {\n destChain: IsmpHostStateMachine;\n sourceChain: IsmpHostStateMachine;\n requestNonce: u64;\n commitment: H256;\n reqCommitment: H256;\n }\n >;\n /**\n * Emitted when a state commitment is vetoed by a fisherman\n **/\n StateCommitmentVetoed: AugmentedEvent<\n ApiType,\n [height: IsmpConsensusStateMachineHeight, fisherman: Bytes],\n { height: IsmpConsensusStateMachineHeight; fisherman: Bytes }\n >;\n /**\n * Emitted when a state machine is successfully updated to a new height\n **/\n StateMachineUpdated: AugmentedEvent<\n ApiType,\n [stateMachineId: IsmpConsensusStateMachineId, latestHeight: u64],\n { stateMachineId: IsmpConsensusStateMachineId; latestHeight: u64 }\n >;\n };\n ismpGrandpa: {\n /**\n * State machines have been added to whitelist\n **/\n StateMachineAdded: AugmentedEvent<\n ApiType,\n [stateMachines: Vec<IsmpHostStateMachine>],\n { stateMachines: Vec<IsmpHostStateMachine> }\n >;\n /**\n * State machines have been removed from the whitelist\n **/\n StateMachineRemoved: AugmentedEvent<\n ApiType,\n [stateMachines: Vec<IsmpHostStateMachine>],\n { stateMachines: Vec<IsmpHostStateMachine> }\n >;\n };\n miningSlot: {\n /**\n * Bids are closed due to the VRF randomized function triggering\n **/\n MiningBidsClosed: AugmentedEvent<ApiType, [frameId: u64], { frameId: u64 }>;\n MiningConfigurationUpdated: AugmentedEvent<\n ApiType,\n [\n ticksBeforeBidEndForVrfClose: u64,\n ticksBetweenSlots: u64,\n slotBiddingStartAfterTicks: u64,\n ],\n {\n ticksBeforeBidEndForVrfClose: u64;\n ticksBetweenSlots: u64;\n slotBiddingStartAfterTicks: u64;\n }\n >;\n NewMiners: AugmentedEvent<\n ApiType,\n [\n newMiners: Vec<ArgonPrimitivesBlockSealMiningRegistration>,\n releasedMiners: u32,\n frameId: u64,\n ],\n {\n newMiners: Vec<ArgonPrimitivesBlockSealMiningRegistration>;\n releasedMiners: u32;\n frameId: u64;\n }\n >;\n ReleaseBidError: AugmentedEvent<\n ApiType,\n [accountId: AccountId32, error: SpRuntimeDispatchError],\n { accountId: AccountId32; error: SpRuntimeDispatchError }\n >;\n ReleaseMinerSeatError: AugmentedEvent<\n ApiType,\n [accountId: AccountId32, error: SpRuntimeDispatchError],\n { accountId: AccountId32; error: SpRuntimeDispatchError }\n >;\n SlotBidderAdded: AugmentedEvent<\n ApiType,\n [accountId: AccountId32, bidAmount: u128, index: u32],\n { accountId: AccountId32; bidAmount: u128; index: u32 }\n >;\n SlotBidderDropped: AugmentedEvent<\n ApiType,\n [accountId: AccountId32, preservedArgonotHold: bool],\n { accountId: AccountId32; preservedArgonotHold: bool }\n >;\n };\n mint: {\n /**\n * Any bitcoins minted\n **/\n BitcoinMint: AugmentedEvent<\n ApiType,\n [accountId: AccountId32, utxoId: Option<u64>, amount: u128],\n { accountId: AccountId32; utxoId: Option<u64>; amount: u128 }\n >;\n /**\n * The amount of microgons minted for mining. NOTE: accounts below Existential Deposit will\n * not be able to mint\n **/\n MiningMint: AugmentedEvent<\n ApiType,\n [amount: u128, perMiner: u128, argonCpi: i128, liquidity: u128],\n { amount: u128; perMiner: u128; argonCpi: i128; liquidity: u128 }\n >;\n /**\n * Errors encountered while minting. Most often due to mint amount still below Existential\n * Deposit\n **/\n MintError: AugmentedEvent<\n ApiType,\n [\n mintType: PalletMintMintType,\n accountId: AccountId32,\n utxoId: Option<u64>,\n amount: u128,\n error: SpRuntimeDispatchError,\n ],\n {\n mintType: PalletMintMintType;\n accountId: AccountId32;\n utxoId: Option<u64>;\n amount: u128;\n error: SpRuntimeDispatchError;\n }\n >;\n };\n multisig: {\n /**\n * The deposit for a multisig operation has been updated/poked.\n **/\n DepositPoked: AugmentedEvent<\n ApiType,\n [who: AccountId32, callHash: U8aFixed, oldDeposit: u128, newDeposit: u128],\n { who: AccountId32; callHash: U8aFixed; oldDeposit: u128; newDeposit: u128 }\n >;\n /**\n * A multisig operation has been approved by someone.\n **/\n MultisigApproval: AugmentedEvent<\n ApiType,\n [\n approving: AccountId32,\n timepoint: PalletMultisigTimepoint,\n multisig: AccountId32,\n callHash: U8aFixed,\n ],\n {\n approving: AccountId32;\n timepoint: PalletMultisigTimepoint;\n multisig: AccountId32;\n callHash: U8aFixed;\n }\n >;\n /**\n * A multisig operation has been cancelled.\n **/\n MultisigCancelled: AugmentedEvent<\n ApiType,\n [\n cancelling: AccountId32,\n timepoint: PalletMultisigTimepoint,\n multisig: AccountId32,\n callHash: U8aFixed,\n ],\n {\n cancelling: AccountId32;\n timepoint: PalletMultisigTimepoint;\n multisig: AccountId32;\n callHash: U8aFixed;\n }\n >;\n /**\n * A multisig operation has been executed.\n **/\n MultisigExecuted: AugmentedEvent<\n ApiType,\n [\n approving: AccountId32,\n timepoint: PalletMultisigTimepoint,\n multisig: AccountId32,\n callHash: U8aFixed,\n result: Result<Null, SpRuntimeDispatchError>,\n ],\n {\n approving: AccountId32;\n timepoint: PalletMultisigTimepoint;\n multisig: AccountId32;\n callHash: U8aFixed;\n result: Result<Null, SpRuntimeDispatchError>;\n }\n >;\n /**\n * A new multisig operation has begun.\n **/\n NewMultisig: AugmentedEvent<\n ApiType,\n [approving: AccountId32, multisig: AccountId32, callHash: U8aFixed],\n { approving: AccountId32; multisig: AccountId32; callHash: U8aFixed }\n >;\n };\n notaries: {\n /**\n * A notary proposal has been accepted\n **/\n NotaryActivated: AugmentedEvent<\n ApiType,\n [notary: ArgonPrimitivesNotaryNotaryRecord],\n { notary: ArgonPrimitivesNotaryNotaryRecord }\n >;\n /**\n * Notary metadata updated\n **/\n NotaryMetaUpdated: AugmentedEvent<\n ApiType,\n [notaryId: u32, meta: ArgonPrimitivesNotaryNotaryMeta],\n { notaryId: u32; meta: ArgonPrimitivesNotaryNotaryMeta }\n >;\n /**\n * Error updating queued notary info\n **/\n NotaryMetaUpdateError: AugmentedEvent<\n ApiType,\n [notaryId: u32, error: SpRuntimeDispatchError, meta: ArgonPrimitivesNotaryNotaryMeta],\n { notaryId: u32; error: SpRuntimeDispatchError; meta: ArgonPrimitivesNotaryNotaryMeta }\n >;\n /**\n * Notary metadata queued for update\n **/\n NotaryMetaUpdateQueued: AugmentedEvent<\n ApiType,\n [notaryId: u32, meta: ArgonPrimitivesNotaryNotaryMeta, effectiveTick: u64],\n { notaryId: u32; meta: ArgonPrimitivesNotaryNotaryMeta; effectiveTick: u64 }\n >;\n /**\n * A user has proposed operating as a notary\n **/\n NotaryProposed: AugmentedEvent<\n ApiType,\n [operatorAccount: AccountId32, meta: ArgonPrimitivesNotaryNotaryMeta, expires: u32],\n { operatorAccount: AccountId32; meta: ArgonPrimitivesNotaryNotaryMeta; expires: u32 }\n >;\n };\n notebook: {\n NotebookAuditFailure: AugmentedEvent<\n ApiType,\n [\n notaryId: u32,\n notebookNumber: u32,\n notebookHash: H256,\n firstFailureReason: ArgonNotaryAuditErrorVerifyError,\n ],\n {\n notaryId: u32;\n notebookNumber: u32;\n notebookHash: H256;\n firstFailureReason: ArgonNotaryAuditErrorVerifyError;\n }\n >;\n NotebookReadyForReprocess: AugmentedEvent<\n ApiType,\n [notaryId: u32, notebookNumber: u32],\n { notaryId: u32; notebookNumber: u32 }\n >;\n NotebookSubmitted: AugmentedEvent<\n ApiType,\n [notaryId: u32, notebookNumber: u32],\n { notaryId: u32; notebookNumber: u32 }\n >;\n };\n operationalAccounts: {\n /**\n * Account has become operational.\n **/\n AccountWentOperational: AugmentedEvent<\n ApiType,\n [account: AccountId32],\n { account: AccountId32 }\n >;\n /**\n * A sponsor updated the encrypted server payload for a sponsee.\n **/\n EncryptedServerUpdated: AugmentedEvent<\n ApiType,\n [sponsor: AccountId32, sponsee: AccountId32],\n { sponsor: AccountId32; sponsee: AccountId32 }\n >;\n /**\n * An operational account was registered with its linked accounts.\n **/\n OperationalAccountRegistered: AugmentedEvent<\n ApiType,\n [\n operationalAccount: AccountId32,\n vaultAccount: AccountId32,\n miningFundingAccount: AccountId32,\n miningBotAccount: AccountId32,\n sponsor: Option<AccountId32>,\n ],\n {\n operationalAccount: AccountId32;\n vaultAccount: AccountId32;\n miningFundingAccount: AccountId32;\n miningBotAccount: AccountId32;\n sponsor: Option<AccountId32>;\n }\n >;\n /**\n * Operational progress was forced by root.\n **/\n OperationalProgressForced: AugmentedEvent<\n ApiType,\n [\n account: AccountId32,\n updateOperationalProgress: bool,\n hasUniswapTransfer: bool,\n vaultCreated: bool,\n hasTreasuryPoolParticipation: bool,\n observedBitcoinTotal: u128,\n observedMiningSeatTotal: u32,\n ],\n {\n account: AccountId32;\n updateOperationalProgress: bool;\n hasUniswapTransfer: bool;\n vaultCreated: bool;\n hasTreasuryPoolParticipation: bool;\n observedBitcoinTotal: u128;\n observedMiningSeatTotal: u32;\n }\n >;\n /**\n * A reward is earned for an operational account, but not yet claimed.\n **/\n OperationalRewardEarned: AugmentedEvent<\n ApiType,\n [\n account: AccountId32,\n rewardKind: ArgonPrimitivesProvidersOperationalRewardKind,\n amount: u128,\n ],\n {\n account: AccountId32;\n rewardKind: ArgonPrimitivesProvidersOperationalRewardKind;\n amount: u128;\n }\n >;\n /**\n * Claimable operational rewards were paid to a managed account.\n **/\n OperationalRewardsClaimed: AugmentedEvent<\n ApiType,\n [\n operationalAccount: AccountId32,\n claimant: AccountId32,\n amount: u128,\n remainingPending: u128,\n ],\n {\n operationalAccount: AccountId32;\n claimant: AccountId32;\n amount: u128;\n remainingPending: u128;\n }\n >;\n /**\n * Reward config values were updated.\n **/\n RewardsConfigUpdated: AugmentedEvent<\n ApiType,\n [operationalReferralReward: u128, referralBonusReward: u128],\n { operationalReferralReward: u128; referralBonusReward: u128 }\n >;\n };\n ownership: {\n /**\n * A balance was set by root.\n **/\n BalanceSet: AugmentedEvent<\n ApiType,\n [who: AccountId32, free: u128],\n { who: AccountId32; free: u128 }\n >;\n /**\n * Some amount was burned from an account.\n **/\n Burned: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some debt has been dropped from the Total Issuance.\n **/\n BurnedDebt: AugmentedEvent<ApiType, [amount: u128], { amount: u128 }>;\n /**\n * Held balance was burned from an account.\n **/\n BurnedHeld: AugmentedEvent<\n ApiType,\n [reason: ArgonRuntimeRuntimeHoldReason, who: AccountId32, amount: u128],\n { reason: ArgonRuntimeRuntimeHoldReason; who: AccountId32; amount: u128 }\n >;\n /**\n * Some amount was deposited (e.g. for transaction fees).\n **/\n Deposit: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * An account was removed whose balance was non-zero but below ExistentialDeposit,\n * resulting in an outright loss.\n **/\n DustLost: AugmentedEvent<\n ApiType,\n [account: AccountId32, amount: u128],\n { account: AccountId32; amount: u128 }\n >;\n /**\n * An account was created with some free balance.\n **/\n Endowed: AugmentedEvent<\n ApiType,\n [account: AccountId32, freeBalance: u128],\n { account: AccountId32; freeBalance: u128 }\n >;\n /**\n * Some balance was frozen.\n **/\n Frozen: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some balance was placed on hold.\n **/\n Held: AugmentedEvent<\n ApiType,\n [reason: ArgonRuntimeRuntimeHoldReason, who: AccountId32, amount: u128],\n { reason: ArgonRuntimeRuntimeHoldReason; who: AccountId32; amount: u128 }\n >;\n /**\n * Total issuance was increased by `amount`, creating a credit to be balanced.\n **/\n Issued: AugmentedEvent<ApiType, [amount: u128], { amount: u128 }>;\n /**\n * Some balance was locked.\n **/\n Locked: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some amount was minted into an account.\n **/\n Minted: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some credit was balanced and added to the TotalIssuance.\n **/\n MintedCredit: AugmentedEvent<ApiType, [amount: u128], { amount: u128 }>;\n /**\n * Some balance was released from hold.\n **/\n Released: AugmentedEvent<\n ApiType,\n [reason: ArgonRuntimeRuntimeHoldReason, who: AccountId32, amount: u128],\n { reason: ArgonRuntimeRuntimeHoldReason; who: AccountId32; amount: u128 }\n >;\n /**\n * Total issuance was decreased by `amount`, creating a debt to be balanced.\n **/\n Rescinded: AugmentedEvent<ApiType, [amount: u128], { amount: u128 }>;\n /**\n * Some balance was reserved (moved from free to reserved).\n **/\n Reserved: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some balance was moved from the reserve of the first account to the second account.\n * Final argument indicates the destination balance type.\n **/\n ReserveRepatriated: AugmentedEvent<\n ApiType,\n [\n from: AccountId32,\n to: AccountId32,\n amount: u128,\n destinationStatus: FrameSupportTokensMiscBalanceStatus,\n ],\n {\n from: AccountId32;\n to: AccountId32;\n amount: u128;\n destinationStatus: FrameSupportTokensMiscBalanceStatus;\n }\n >;\n /**\n * Some amount was restored into an account.\n **/\n Restored: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some amount was removed from the account (e.g. for misbehavior).\n **/\n Slashed: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some amount was suspended from an account (it can be restored later).\n **/\n Suspended: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some balance was thawed.\n **/\n Thawed: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * The `TotalIssuance` was forcefully changed.\n **/\n TotalIssuanceForced: AugmentedEvent<\n ApiType,\n [old: u128, new_: u128],\n { old: u128; new_: u128 }\n >;\n /**\n * Transfer succeeded.\n **/\n Transfer: AugmentedEvent<\n ApiType,\n [from: AccountId32, to: AccountId32, amount: u128],\n { from: AccountId32; to: AccountId32; amount: u128 }\n >;\n /**\n * The `transferred` balance is placed on hold at the `dest` account.\n **/\n TransferAndHold: AugmentedEvent<\n ApiType,\n [\n reason: ArgonRuntimeRuntimeHoldReason,\n source: AccountId32,\n dest: AccountId32,\n transferred: u128,\n ],\n {\n reason: ArgonRuntimeRuntimeHoldReason;\n source: AccountId32;\n dest: AccountId32;\n transferred: u128;\n }\n >;\n /**\n * A transfer of `amount` on hold from `source` to `dest` was initiated.\n **/\n TransferOnHold: AugmentedEvent<\n ApiType,\n [\n reason: ArgonRuntimeRuntimeHoldReason,\n source: AccountId32,\n dest: AccountId32,\n amount: u128,\n ],\n {\n reason: ArgonRuntimeRuntimeHoldReason;\n source: AccountId32;\n dest: AccountId32;\n amount: u128;\n }\n >;\n /**\n * An unexpected/defensive event was triggered.\n **/\n Unexpected: AugmentedEvent<ApiType, [PalletBalancesUnexpectedKind]>;\n /**\n * Some balance was unlocked.\n **/\n Unlocked: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * Some balance was unreserved (moved from reserved to free).\n **/\n Unreserved: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n /**\n * An account was upgraded.\n **/\n Upgraded: AugmentedEvent<ApiType, [who: AccountId32], { who: AccountId32 }>;\n /**\n * Some amount was withdrawn from the account (e.g. for transaction fees).\n **/\n Withdraw: AugmentedEvent<\n ApiType,\n [who: AccountId32, amount: u128],\n { who: AccountId32; amount: u128 }\n >;\n };\n priceIndex: {\n /**\n * Event emitted when a new price index is submitted\n **/\n NewIndex: AugmentedEvent<ApiType, []>;\n OperatorChanged: AugmentedEvent<\n ApiType,\n [operatorId: AccountId32],\n { operatorId: AccountId32 }\n >;\n };\n proxy: {\n /**\n * An announcement was placed to make a call in the future.\n **/\n Announced: AugmentedEvent<\n ApiType,\n [real: AccountId32, proxy: AccountId32, callHash: H256],\n { real: AccountId32; proxy: AccountId32; callHash: H256 }\n >;\n /**\n * A deposit stored for proxies or announcements was poked / updated.\n **/\n DepositPoked: AugmentedEvent<\n ApiType,\n [who: AccountId32, kind: PalletProxyDepositKind, oldDeposit: u128, newDeposit: u128],\n { who: AccountId32; kind: PalletProxyDepositKind; oldDeposit: u128; newDeposit: u128 }\n >;\n /**\n * A proxy was added.\n **/\n ProxyAdded: AugmentedEvent<\n ApiType,\n [\n delegator: AccountId32,\n delegatee: AccountId32,\n proxyType: ArgonRuntimeProxyType,\n delay: u32,\n ],\n {\n delegator: AccountId32;\n delegatee: AccountId32;\n proxyType: ArgonRuntimeProxyType;\n delay: u32;\n }\n >;\n /**\n * A proxy was executed correctly, with the given.\n **/\n ProxyExecuted: AugmentedEvent<\n ApiType,\n [result: Result<Null, SpRuntimeDispatchError>],\n { result: Result<Null, SpRuntimeDispatchError> }\n >;\n /**\n * A proxy was removed.\n **/\n ProxyRemoved: AugmentedEvent<\n ApiType,\n [\n delegator: AccountId32,\n delegatee: AccountId32,\n proxyType: ArgonRuntimeProxyType,\n delay: u32,\n ],\n {\n delegator: AccountId32;\n delegatee: AccountId32;\n proxyType: ArgonRuntimeProxyType;\n delay: u32;\n }\n >;\n /**\n * A pure account has been created by new proxy with given\n * disambiguation index and proxy type.\n **/\n PureCreated: AugmentedEvent<\n ApiType,\n [\n pure: AccountId32,\n who: AccountId32,\n proxyType: ArgonRuntimeProxyType,\n disambiguationIndex: u16,\n at: u32,\n extrinsicIndex: u32,\n ],\n {\n pure: AccountId32;\n who: AccountId32;\n proxyType: ArgonRuntimeProxyType;\n disambiguationIndex: u16;\n at: u32;\n extrinsicIndex: u32;\n }\n >;\n /**\n * A pure proxy was killed by its spawner.\n **/\n PureKilled: AugmentedEvent<\n ApiType,\n [\n pure: AccountId32,\n spawner: AccountId32,\n proxyType: ArgonRuntimeProxyType,\n disambiguationIndex: u16,\n ],\n {\n pure: AccountId32;\n spawner: AccountId32;\n proxyType: ArgonRuntimeProxyType;\n disambiguationIndex: u16;\n }\n >;\n };\n sudo: {\n /**\n * The sudo key has been updated.\n **/\n KeyChanged: AugmentedEvent<\n ApiType,\n [old: Option<AccountId32>, new_: AccountId32],\n { old: Option<AccountId32>; new_: AccountId32 }\n >;\n /**\n * The key was permanently removed.\n **/\n KeyRemoved: AugmentedEvent<ApiType, []>;\n /**\n * A sudo call just took place.\n **/\n Sudid: AugmentedEvent<\n ApiType,\n [sudoResult: Result<Null, SpRuntimeDispatchError>],\n { sudoResult: Result<Null, SpRuntimeDispatchError> }\n >;\n /**\n * A [sudo_as](Pallet::sudo_as) call just took place.\n **/\n SudoAsDone: AugmentedEvent<\n ApiType,\n [sudoResult: Result<Null, SpRuntimeDispatchError>],\n { sudoResult: Result<Null, SpRuntimeDispatchError> }\n >;\n };\n system: {\n /**\n * `:code` was updated.\n **/\n CodeUpdated: AugmentedEvent<ApiType, []>;\n /**\n * An extrinsic failed.\n **/\n ExtrinsicFailed: AugmentedEvent<\n ApiType,\n [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSystemDispatchEventInfo],\n { dispatchError: SpRuntimeDispatchError; dispatchInfo: FrameSystemDispatchEventInfo }\n >;\n /**\n * An extrinsic completed successfully.\n **/\n ExtrinsicSuccess: AugmentedEvent<\n ApiType,\n [dispatchInfo: FrameSystemDispatchEventInfo],\n { dispatchInfo: FrameSystemDispatchEventInfo }\n >;\n /**\n * An account was reaped.\n **/\n KilledAccount: AugmentedEvent<ApiType, [account: AccountId32], { account: AccountId32 }>;\n /**\n * A new account was created.\n **/\n NewAccount: AugmentedEvent<ApiType, [account: AccountId32], { account: AccountId32 }>;\n /**\n * An invalid authorized upgrade was rejected while trying to apply it.\n **/\n RejectedInvalidAuthorizedUpgrade: AugmentedEvent<\n ApiType,\n [codeHash: H256, error: SpRuntimeDispatchError],\n { codeHash: H256; error: SpRuntimeDispatchError }\n >;\n /**\n * On on-chain remark happened.\n **/\n Remarked: AugmentedEvent<\n ApiType,\n [sender: AccountId32, hash_: H256],\n { sender: AccountId32; hash_: H256 }\n >;\n /**\n * An upgrade was authorized.\n **/\n UpgradeAuthorized: AugmentedEvent<\n ApiType,\n [codeHash: H256, checkVersion: bool],\n { codeHash: H256; checkVersion: bool }\n >;\n };\n tokenGateway: {\n /**\n * An asset has been received and transferred to the beneficiary's account\n **/\n AssetReceived: AugmentedEvent<\n ApiType,\n [beneficiary: AccountId32, amount: u128, source: IsmpHostStateMachine],\n { beneficiary: AccountId32; amount: u128; source: IsmpHostStateMachine }\n >;\n /**\n * An asset has been refunded and transferred to the beneficiary's account\n **/\n AssetRefunded: AugmentedEvent<\n ApiType,\n [beneficiary: AccountId32, amount: u128, source: IsmpHostStateMachine],\n { beneficiary: AccountId32; amount: u128; source: IsmpHostStateMachine }\n >;\n /**\n * An asset has been registered locally\n **/\n AssetRegisteredLocally: AugmentedEvent<\n ApiType,\n [localId: u32, assetId: H256],\n { localId: u32; assetId: H256 }\n >;\n /**\n * An asset has been teleported\n **/\n AssetTeleported: AugmentedEvent<\n ApiType,\n [from: AccountId32, to: H256, amount: u128, dest: IsmpHostStateMachine, commitment: H256],\n { from: AccountId32; to: H256; amount: u128; dest: IsmpHostStateMachine; commitment: H256 }\n >;\n /**\n * ERC6160 asset creation request dispatched to hyperbridge\n **/\n ERC6160AssetRegistrationDispatched: AugmentedEvent<\n ApiType,\n [commitment: H256],\n { commitment: H256 }\n >;\n };\n transactionPayment: {\n /**\n * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,\n * has been paid by `who`.\n **/\n TransactionFeePaid: AugmentedEvent<\n ApiType,\n [who: AccountId32, actualFee: u128, tip: u128],\n { who: AccountId32; actualFee: u128; tip: u128 }\n >;\n };\n treasury: {\n /**\n * A bond purchase entered a vault's accepted list.\n **/\n BondLotPurchased: AugmentedEvent<\n ApiType,\n [vaultId: u32, bondLotId: u64, accountId: AccountId32, bonds: u32],\n { vaultId: u32; bondLotId: u64; accountId: AccountId32; bonds: u32 }\n >;\n /**\n * A bond lot was released.\n **/\n BondLotReleased: AugmentedEvent<\n ApiType,\n [frameId: u64, vaultId: u32, bondLotId: u64, accountId: AccountId32, bonds: u32],\n { frameId: u64; vaultId: u32; bondLotId: u64; accountId: AccountId32; bonds: u32 }\n >;\n /**\n * A bond lot was removed from future frames and scheduled for release.\n **/\n BondLotReleaseScheduled: AugmentedEvent<\n ApiType,\n [\n vaultId: u32,\n bondLotId: u64,\n accountId: AccountId32,\n bonds: u32,\n releaseFrameId: u64,\n reason: PalletTreasuryBondReleaseReason,\n ],\n {\n vaultId: u32;\n bondLotId: u64;\n accountId: AccountId32;\n bonds: u32;\n releaseFrameId: u64;\n reason: PalletTreasuryBondReleaseReason;\n }\n >;\n /**\n * An error occurred while paying frame earnings for a bond lot.\n **/\n CouldNotDistributeEarningsToBondLot: AugmentedEvent<\n ApiType,\n [\n frameId: u64,\n vaultId: u32,\n bondLotId: u64,\n accountId: AccountId32,\n amount: u128,\n dispatchError: SpRuntimeDispatchError,\n ],\n {\n frameId: u64;\n vaultId: u32;\n bondLotId: u64;\n accountId: AccountId32;\n amount: u128;\n dispatchError: SpRuntimeDispatchError;\n }\n >;\n /**\n * An error occurred while releasing a bond lot.\n **/\n CouldNotReleaseBondLot: AugmentedEvent<\n ApiType,\n [\n frameId: u64,\n vaultId: u32,\n bondLotId: u64,\n amount: u128,\n accountId: AccountId32,\n dispatchError: SpRuntimeDispatchError,\n ],\n {\n frameId: u64;\n vaultId: u32;\n bondLotId: u64;\n amount: u128;\n accountId: AccountId32;\n dispatchError: SpRuntimeDispatchError;\n }\n >;\n /**\n * An error occurred while moving bid-pool funds into treasury reserves.\n **/\n CouldNotTransferToTreasuryReserves: AugmentedEvent<\n ApiType,\n [frameId: u64, amount: u128, dispatchError: SpRuntimeDispatchError],\n { frameId: u64; amount: u128; dispatchError: SpRuntimeDispatchError }\n >;\n /**\n * Frame earnings were distributed.\n **/\n FrameEarningsDistributed: AugmentedEvent<\n ApiType,\n [frameId: u64, bidPoolDistributed: u128, treasuryReserves: u128, participatingVaults: u32],\n { frameId: u64; bidPoolDistributed: u128; treasuryReserves: u128; participatingVaults: u32 }\n >;\n /**\n * The current frame's vault capital was locked in.\n **/\n FrameVaultCapitalLocked: AugmentedEvent<\n ApiType,\n [frameId: u64, totalEligibleBonds: u128, participatingVaults: u32],\n { frameId: u64; totalEligibleBonds: u128; participatingVaults: u32 }\n >;\n };\n txPause: {\n /**\n * This pallet, or a specific call is now paused.\n **/\n CallPaused: AugmentedEvent<\n ApiType,\n [fullName: ITuple<[Bytes, Bytes]>],\n { fullName: ITuple<[Bytes, Bytes]> }\n >;\n /**\n * This pallet, or a specific call is now unpaused.\n **/\n CallUnpaused: AugmentedEvent<\n ApiType,\n [fullName: ITuple<[Bytes, Bytes]>],\n { fullName: ITuple<[Bytes, Bytes]> }\n >;\n };\n utility: {\n /**\n * Batch of dispatches completed fully with no error.\n **/\n BatchCompleted: AugmentedEvent<ApiType, []>;\n /**\n * Batch of dispatches completed but has errors.\n **/\n BatchCompletedWithErrors: AugmentedEvent<ApiType, []>;\n /**\n * Batch of dispatches did not complete fully. Index of first failing dispatch given, as\n * well as the error.\n **/\n BatchInterrupted: AugmentedEvent<\n ApiType,\n [index: u32, error: SpRuntimeDispatchError],\n { index: u32; error: SpRuntimeDispatchError }\n >;\n /**\n * A call was dispatched.\n **/\n DispatchedAs: AugmentedEvent<\n ApiType,\n [result: Result<Null, SpRuntimeDispatchError>],\n { result: Result<Null, SpRuntimeDispatchError> }\n >;\n /**\n * The fallback call was dispatched.\n **/\n IfElseFallbackCalled: AugmentedEvent<\n ApiType,\n [mainError: SpRuntimeDispatchError],\n { mainError: SpRuntimeDispatchError }\n >;\n /**\n * Main call was dispatched.\n **/\n IfElseMainSuccess: AugmentedEvent<ApiType, []>;\n /**\n * A single item within a Batch of dispatches has completed with no error.\n **/\n ItemCompleted: AugmentedEvent<ApiType, []>;\n /**\n * A single item within a Batch of dispatches has completed with error.\n **/\n ItemFailed: AugmentedEvent<\n ApiType,\n [error: SpRuntimeDispatchError],\n { error: SpRuntimeDispatchError }\n >;\n };\n vaults: {\n FundLockCanceled: AugmentedEvent<\n ApiType,\n [vaultId: u32, amount: u128],\n { vaultId: u32; amount: u128 }\n >;\n FundsLocked: AugmentedEvent<\n ApiType,\n [\n vaultId: u32,\n locker: AccountId32,\n liquidityPromised: u128,\n isRatchet: bool,\n feeRevenue: u128,\n didUseFeeCoupon: bool,\n ],\n {\n vaultId: u32;\n locker: AccountId32;\n liquidityPromised: u128;\n isRatchet: bool;\n feeRevenue: u128;\n didUseFeeCoupon: bool;\n }\n >;\n FundsReleased: AugmentedEvent<\n ApiType,\n [vaultId: u32, securitization: u128],\n { vaultId: u32; securitization: u128 }\n >;\n FundsReleasedError: AugmentedEvent<\n ApiType,\n [vaultId: u32, error: SpRuntimeDispatchError],\n { vaultId: u32; error: SpRuntimeDispatchError }\n >;\n FundsScheduledForRelease: AugmentedEvent<\n ApiType,\n [vaultId: u32, securitization: u128, releaseHeight: u64],\n { vaultId: u32; securitization: u128; releaseHeight: u64 }\n >;\n LostBitcoinCompensated: AugmentedEvent<\n ApiType,\n [vaultId: u32, beneficiary: AccountId32, toBeneficiary: u128, burned: u128],\n { vaultId: u32; beneficiary: AccountId32; toBeneficiary: u128; burned: u128 }\n >;\n TreasuryRecordingError: AugmentedEvent<\n ApiType,\n [vaultId: u32, frameId: u64, vaultEarnings: u128, error: SpRuntimeDispatchError],\n { vaultId: u32; frameId: u64; vaultEarnings: u128; error: SpRuntimeDispatchError }\n >;\n VaultBitcoinXpubChange: AugmentedEvent<ApiType, [vaultId: u32], { vaultId: u32 }>;\n VaultClosed: AugmentedEvent<\n ApiType,\n [vaultId: u32, securitizationRemaining: u128, securitizationReleased: u128],\n { vaultId: u32; securitizationRemaining: u128; securitizationReleased: u128 }\n >;\n /**\n * The vault collected revenue and cosigned all pending bitcoin locks\n **/\n VaultCollected: AugmentedEvent<\n ApiType,\n [vaultId: u32, revenue: u128],\n { vaultId: u32; revenue: u128 }\n >;\n VaultCreated: AugmentedEvent<\n ApiType,\n [\n vaultId: u32,\n securitization: u128,\n securitizationRatio: u128,\n operatorAccountId: AccountId32,\n openedTick: u64,\n ],\n {\n vaultId: u32;\n securitization: u128;\n securitizationRatio: u128;\n operatorAccountId: AccountId32;\n openedTick: u64;\n }\n >;\n VaultModified: AugmentedEvent<\n ApiType,\n [vaultId: u32, securitization: u128, securitizationTarget: u128, securitizationRatio: u128],\n {\n vaultId: u32;\n securitization: u128;\n securitizationTarget: u128;\n securitizationRatio: u128;\n }\n >;\n /**\n * Vault revenue was not collected within the required window, so has been burned\n **/\n VaultRevenueUncollected: AugmentedEvent<\n ApiType,\n [vaultId: u32, frameId: u64, amount: u128],\n { vaultId: u32; frameId: u64; amount: u128 }\n >;\n VaultTermsChanged: AugmentedEvent<ApiType, [vaultId: u32], { vaultId: u32 }>;\n VaultTermsChangeScheduled: AugmentedEvent<\n ApiType,\n [vaultId: u32, changeTick: u64],\n { vaultId: u32; changeTick: u64 }\n >;\n };\n } // AugmentedEvents\n} // declare module\n","// Auto-generated via `yarn polkadot-types-from-chain`, do not edit\n/* eslint-disable */\n\n// import type lookup before we augment - in some environments\n// this is required to allow for ambient/previous definitions\nimport '@polkadot/api-base/types/storage';\n\nimport type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@polkadot/api-base/types';\nimport type {\n BTreeMap,\n BTreeSet,\n Bytes,\n Null,\n Option,\n U8aFixed,\n Vec,\n bool,\n u128,\n u16,\n u32,\n u64,\n u8,\n} from '@polkadot/types-codec';\nimport type { AnyNumber, ITuple } from '@polkadot/types-codec/types';\nimport type { AccountId32, H256 } from '@polkadot/types/interfaces/runtime';\nimport type {\n ArgonNotaryAuditErrorVerifyError,\n ArgonPrimitivesBalanceChangeAccountOrigin,\n ArgonPrimitivesBitcoinBitcoinBlock,\n ArgonPrimitivesBitcoinBitcoinNetwork,\n ArgonPrimitivesBitcoinBitcoinXPub,\n ArgonPrimitivesBitcoinUtxoRef,\n ArgonPrimitivesBitcoinUtxoValue,\n ArgonPrimitivesBlockSealBlockPayout,\n ArgonPrimitivesBlockSealMiningBidStats,\n ArgonPrimitivesBlockSealMiningRegistration,\n ArgonPrimitivesBlockSealMiningSlotConfig,\n ArgonPrimitivesDigestsBlockVoteDigest,\n ArgonPrimitivesDigestsDigestset,\n ArgonPrimitivesDigestsFrameInfo,\n ArgonPrimitivesDigestsNotebookDigest,\n ArgonPrimitivesDomainZoneRecord,\n ArgonPrimitivesForkPower,\n ArgonPrimitivesInherentsBlockSealInherent,\n ArgonPrimitivesNotaryNotaryMeta,\n ArgonPrimitivesNotaryNotaryNotebookKeyDetails,\n ArgonPrimitivesNotaryNotaryNotebookVoteDigestDetails,\n ArgonPrimitivesNotaryNotaryRecord,\n ArgonPrimitivesProvidersBlockSealerInfo,\n ArgonPrimitivesTickTicker,\n ArgonPrimitivesVault,\n FrameSupportDispatchPerDispatchClassWeight,\n FrameSupportTokensFungibleImbalance,\n FrameSupportTokensMiscIdAmountRuntimeFreezeReason,\n FrameSupportTokensMiscIdAmountRuntimeHoldReason,\n FrameSystemAccountInfo,\n FrameSystemCodeUpgradeAuthorization,\n FrameSystemEventRecord,\n FrameSystemLastRuntimeUpgradeInfo,\n FrameSystemPhase,\n IsmpConsensusStateCommitment,\n IsmpConsensusStateMachineHeight,\n IsmpConsensusStateMachineId,\n IsmpHostStateMachine,\n PalletBalancesAccountData,\n PalletBalancesBalanceLock,\n PalletBalancesReserveData,\n PalletBitcoinLocksLockReleaseRequest,\n PalletBitcoinLocksLockedBitcoin,\n PalletBitcoinLocksOrphanedUtxo,\n PalletChainTransferQueuedTransferOut,\n PalletDomainsDomainRegistration,\n PalletGrandpaStoredPendingChange,\n PalletGrandpaStoredState,\n PalletHyperbridgeVersionedHostParams,\n PalletInboundTransferLogInboundEvmTransfer,\n PalletMiningSlotMinerNonceScoring,\n PalletMintMintAction,\n PalletMultisigMultisig,\n PalletOperationalAccountsOperationalAccount,\n PalletOperationalAccountsRewardsConfig,\n PalletPriceIndexCpiMeasurementBucket,\n PalletPriceIndexPriceIndex,\n PalletProxyAnnouncement,\n PalletProxyProxyDefinition,\n PalletTransactionPaymentReleases,\n PalletTreasuryBondLot,\n PalletTreasuryBondLotSummary,\n PalletTreasuryFrameVaultCapital,\n PalletVaultsRecentCapacityDrop,\n PalletVaultsVaultFrameRevenue,\n SpConsensusGrandpaAppPublic,\n SpRuntimeDigest,\n SpWeightsWeightV2Weight,\n} from '@polkadot/types/lookup';\nimport type { Observable } from '@polkadot/types/types';\n\nexport type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;\nexport type __QueryableStorageEntry<ApiType extends ApiTypes> = QueryableStorageEntry<ApiType>;\n\ndeclare module '@polkadot/api-base/types/storage' {\n interface AugmentedQueries<ApiType extends ApiTypes> {\n authorship: {\n /**\n * Author of current block.\n **/\n author: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []>;\n };\n balances: {\n /**\n * The Balances pallet example of storing the balance of an account.\n *\n * # Example\n *\n * ```nocompile\n * impl pallet_balances::Config for Runtime {\n * type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>\n * }\n * ```\n *\n * You can also store the balance of an account in the `System` pallet.\n *\n * # Example\n *\n * ```nocompile\n * impl pallet_balances::Config for Runtime {\n * type AccountStore = System\n * }\n * ```\n *\n * But this comes with tradeoffs, storing account balances in the system pallet stores\n * `frame_system` data alongside the account data contrary to storing account balances in the\n * `Balances` pallet, which uses a `StorageMap` to store balances data only.\n * NOTE: This is only used in the case that this pallet is used to store balances.\n **/\n account: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<PalletBalancesAccountData>,\n [AccountId32]\n >;\n /**\n * Freeze locks on account balances.\n **/\n freezes: AugmentedQuery<\n ApiType,\n (\n arg: AccountId32 | string | Uint8Array,\n ) => Observable<Vec<FrameSupportTokensMiscIdAmountRuntimeFreezeReason>>,\n [AccountId32]\n >;\n /**\n * Holds on account balances.\n **/\n holds: AugmentedQuery<\n ApiType,\n (\n arg: AccountId32 | string | Uint8Array,\n ) => Observable<Vec<FrameSupportTokensMiscIdAmountRuntimeHoldReason>>,\n [AccountId32]\n >;\n /**\n * The total units of outstanding deactivated balance in the system.\n **/\n inactiveIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n /**\n * Any liquidity locks on some account balances.\n * NOTE: Should only be accessed when setting, changing and freeing a lock.\n *\n * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`\n **/\n locks: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesBalanceLock>>,\n [AccountId32]\n >;\n /**\n * Named reserves on some account balances.\n *\n * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`\n **/\n reserves: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesReserveData>>,\n [AccountId32]\n >;\n /**\n * The total units issued in the system.\n **/\n totalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n };\n bitcoinLocks: {\n /**\n * Utxos that have been requested to be cosigned for releasing\n **/\n lockCosignDueByFrame: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<BTreeSet<u64>>,\n [u64]\n >;\n /**\n * Expiration of bitcoin locks by bitcoin height. Funds are burned since the user did not\n * unlock it. Bitcoin will go to vault\n **/\n lockExpirationsByBitcoinHeight: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<BTreeSet<u64>>,\n [u64]\n >;\n /**\n * Stores the block number where a release was cosigned by the vault.\n **/\n lockReleaseCosignHeightById: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<u32>>,\n [u64]\n >;\n /**\n * Stores bitcoin locks that have requested to be released\n **/\n lockReleaseRequestsByUtxoId: AugmentedQuery<\n ApiType,\n (\n arg: u64 | AnyNumber | Uint8Array,\n ) => Observable<Option<PalletBitcoinLocksLockReleaseRequest>>,\n [u64]\n >;\n /**\n * Stores bitcoin utxos that have requested to be released\n **/\n locksByUtxoId: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<PalletBitcoinLocksLockedBitcoin>>,\n [u64]\n >;\n /**\n * History of microgons per btc\n **/\n microgonPerBtcHistory: AugmentedQuery<\n ApiType,\n () => Observable<Vec<ITuple<[u64, u128]>>>,\n []\n >;\n /**\n * The minimum number of satoshis that can be locked\n **/\n minimumSatoshis: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n nextUtxoId: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []>;\n /**\n * Expiration of orphaned utxo refs by user account\n **/\n orphanedUtxoExpirationByFrame: AugmentedQuery<\n ApiType,\n (\n arg: u64 | AnyNumber | Uint8Array,\n ) => Observable<BTreeSet<ITuple<[AccountId32, ArgonPrimitivesBitcoinUtxoRef]>>>,\n [u64]\n >;\n /**\n * Mismatched utxos that were sent with invalid amounts to a locked bitcoin\n **/\n orphanedUtxosByAccount: AugmentedQuery<\n ApiType,\n (\n arg1: AccountId32 | string | Uint8Array,\n arg2:\n | ArgonPrimitivesBitcoinUtxoRef\n | { txid?: any; outputIndex?: any }\n | string\n | Uint8Array,\n ) => Observable<Option<PalletBitcoinLocksOrphanedUtxo>>,\n [AccountId32, ArgonPrimitivesBitcoinUtxoRef]\n >;\n /**\n * Index of active UTXO IDs per vault\n **/\n utxoIdsByVaultId: AugmentedQuery<\n ApiType,\n (\n arg1: u32 | AnyNumber | Uint8Array,\n arg2: u64 | AnyNumber | Uint8Array,\n ) => Observable<Option<Null>>,\n [u32, u64]\n >;\n };\n bitcoinUtxos: {\n /**\n * The genesis set bitcoin network that this chain is tied to\n **/\n bitcoinNetwork: AugmentedQuery<\n ApiType,\n () => Observable<ArgonPrimitivesBitcoinBitcoinNetwork>,\n []\n >;\n /**\n * Candidate UTXOs associated with a lock (mismatches, extra funding, etc.).\n **/\n candidateUtxoRefsByUtxoId: AugmentedQuery<\n ApiType,\n (\n arg: u64 | AnyNumber | Uint8Array,\n ) => Observable<BTreeMap<ArgonPrimitivesBitcoinUtxoRef, u64>>,\n [u64]\n >;\n /**\n * An oracle-provided confirmed bitcoin block (eg, 6 blocks back)\n **/\n confirmedBitcoinBlockTip: AugmentedQuery<\n ApiType,\n () => Observable<Option<ArgonPrimitivesBitcoinBitcoinBlock>>,\n []\n >;\n /**\n * Pending funding entries that have expired and are awaiting bounded cleanup.\n **/\n expiredPendingFunding: AugmentedQuery<\n ApiType,\n () => Observable<BTreeMap<u64, ArgonPrimitivesBitcoinUtxoValue>>,\n []\n >;\n /**\n * Check if the inherent was included\n **/\n inherentIncluded: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * Locked Bitcoin UTXOs that have been funded with a UtxoRef from the Bitcoin network and\n * amounts within the MinimumSatoshiThreshold of the expected. If a Bitcoin UTXO is moved\n * before the expiration block, the funds are burned and the UTXO is unlocked.\n **/\n lockedUtxos: AugmentedQuery<\n ApiType,\n (\n arg:\n | ArgonPrimitivesBitcoinUtxoRef\n | { txid?: any; outputIndex?: any }\n | string\n | Uint8Array,\n ) => Observable<Option<ArgonPrimitivesBitcoinUtxoValue>>,\n [ArgonPrimitivesBitcoinUtxoRef]\n >;\n /**\n * Bitcoin locks that are pending full funding on the bitcoin network\n **/\n locksPendingFunding: AugmentedQuery<\n ApiType,\n () => Observable<BTreeMap<u64, ArgonPrimitivesBitcoinUtxoValue>>,\n []\n >;\n /**\n * Bitcoin Oracle Operator Account\n **/\n oracleOperatorAccount: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []>;\n previousBitcoinBlockTip: AugmentedQuery<\n ApiType,\n () => Observable<Option<ArgonPrimitivesBitcoinBitcoinBlock>>,\n []\n >;\n /**\n * The last synched bitcoin block\n **/\n synchedBitcoinBlock: AugmentedQuery<\n ApiType,\n () => Observable<Option<ArgonPrimitivesBitcoinBitcoinBlock>>,\n []\n >;\n /**\n * Stores if parent block had a confirmed bitcoin block\n **/\n tempParentHasSyncState: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * A mapping of utxo id to the confirmed utxo reference\n **/\n utxoIdToFundingUtxoRef: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<ArgonPrimitivesBitcoinUtxoRef>>,\n [u64]\n >;\n };\n blockRewards: {\n /**\n * The current scaled block rewards. It will adjust based on the argon movement away from price\n * target\n **/\n argonsPerBlock: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n blockFees: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n /**\n * The cohort block rewards by mining cohort (ie, with the same starting frame id)\n **/\n blockRewardsByCohort: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[u64, u128]>>>, []>;\n /**\n * Bool if block rewards are paused\n **/\n blockRewardsPaused: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * Historical payouts by block number\n **/\n payoutsByBlock: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ArgonPrimitivesBlockSealBlockPayout>>,\n [u32]\n >;\n };\n blockSeal: {\n /**\n * The calculated strength in the runtime so that it can be\n * upgraded, but is used by the node to determine which fork to follow\n **/\n blockForkPower: AugmentedQuery<ApiType, () => Observable<ArgonPrimitivesForkPower>, []>;\n /**\n * Is the block from a vote seal?\n **/\n isBlockFromVoteSeal: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n lastBlockSealerInfo: AugmentedQuery<\n ApiType,\n () => Observable<Option<ArgonPrimitivesProvidersBlockSealerInfo>>,\n []\n >;\n lastTickWithVoteSeal: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n /**\n * The calculated parent voting key for a block. Refers to the Notebook BlockVote Revealed\n * Secret + VotesMerkleRoot of the parent block notebooks.\n **/\n parentVotingKey: AugmentedQuery<ApiType, () => Observable<Option<H256>>, []>;\n /**\n * Ensures only a single inherent is applied\n **/\n tempSealInherent: AugmentedQuery<\n ApiType,\n () => Observable<Option<ArgonPrimitivesInherentsBlockSealInherent>>,\n []\n >;\n /**\n * The count of votes in the last 3 ticks\n **/\n votesInPast3Ticks: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[u64, u32]>>>, []>;\n };\n blockSealSpec: {\n /**\n * The current vote minimum of the chain. Block votes use this minimum to determine the\n * minimum amount of tax or compute needed to create a vote. It is adjusted up or down to\n * target a max number of votes\n **/\n currentComputeDifficulty: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n /**\n * The key K is selected to be the hash of a block in the blockchain - this block is called\n * the 'key block'. For optimal mining and verification performance, the key should\n * change every day\n **/\n currentComputeKeyBlock: AugmentedQuery<ApiType, () => Observable<Option<H256>>, []>;\n /**\n * The current vote minimum of the chain. Block votes use this minimum to determine the\n * minimum amount of tax or compute needed to create a vote. It is adjusted up or down to\n * target a max number of votes\n **/\n currentVoteMinimum: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n pastBlockVotes: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[u64, u32, u128]>>>, []>;\n pastComputeBlockTimes: AugmentedQuery<ApiType, () => Observable<Vec<u64>>, []>;\n /**\n * The timestamp from the previous block\n **/\n previousBlockTimestamp: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []>;\n tempBlockTimestamp: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []>;\n /**\n * Temporary store the vote digest\n **/\n tempBlockVoteDigest: AugmentedQuery<\n ApiType,\n () => Observable<Option<ArgonPrimitivesDigestsBlockVoteDigest>>,\n []\n >;\n /**\n * Temporary store of any current tick notebooks included in this block (vs tick)\n **/\n tempCurrentTickNotebooksInBlock: AugmentedQuery<\n ApiType,\n () => Observable<Vec<ArgonPrimitivesNotaryNotaryNotebookVoteDigestDetails>>,\n []\n >;\n /**\n * Keeps the last 3 vote minimums. The first one applies to the current block.\n **/\n voteMinimumHistory: AugmentedQuery<ApiType, () => Observable<Vec<u128>>, []>;\n };\n chainTransfer: {\n /**\n * Expiration index for outgoing transfers keyed by `(notary_id, expiration_tick)`.\n *\n * NOTE: Expiration processing follows notebook progression (`header.tick`) for each notary,\n * not wall/runtime tick. If a notary stops submitting notebooks indefinitely, pending\n * transfers for that notary remain frozen by design until a notary-switch recovery path is\n * executed.\n **/\n expiringTransfersOutByNotary: AugmentedQuery<\n ApiType,\n (\n arg1: u32 | AnyNumber | Uint8Array,\n arg2: u64 | AnyNumber | Uint8Array,\n ) => Observable<Vec<u32>>,\n [u32, u64]\n >;\n /**\n * The admin of the hyperbridge token gateway\n **/\n hyperbridgeTokenAdmin: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []>;\n nextTransferId: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []>;\n pendingTransfersOut: AugmentedQuery<\n ApiType,\n (\n arg: u32 | AnyNumber | Uint8Array,\n ) => Observable<Option<PalletChainTransferQueuedTransferOut>>,\n [u32]\n >;\n };\n digests: {\n tempDigests: AugmentedQuery<\n ApiType,\n () => Observable<Option<ArgonPrimitivesDigestsDigestset>>,\n []\n >;\n };\n domains: {\n expiringDomainsByBlock: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Vec<H256>>,\n [u64]\n >;\n registeredDomains: AugmentedQuery<\n ApiType,\n (arg: H256 | string | Uint8Array) => Observable<Option<PalletDomainsDomainRegistration>>,\n [H256]\n >;\n zoneRecordsByDomain: AugmentedQuery<\n ApiType,\n (arg: H256 | string | Uint8Array) => Observable<Option<ArgonPrimitivesDomainZoneRecord>>,\n [H256]\n >;\n };\n grandpa: {\n /**\n * The current list of authorities.\n **/\n authorities: AugmentedQuery<\n ApiType,\n () => Observable<Vec<ITuple<[SpConsensusGrandpaAppPublic, u64]>>>,\n []\n >;\n /**\n * The number of changes (both in terms of keys and underlying economic responsibilities)\n * in the \"set\" of Grandpa validators from genesis.\n **/\n currentSetId: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n /**\n * next block number where we can force a change.\n **/\n nextForced: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []>;\n /**\n * Pending change: (signaled at, scheduled change).\n **/\n pendingChange: AugmentedQuery<\n ApiType,\n () => Observable<Option<PalletGrandpaStoredPendingChange>>,\n []\n >;\n /**\n * A mapping from grandpa set ID to the index of the *most recent* session for which its\n * members were responsible.\n *\n * This is only used for validating equivocation proofs. An equivocation proof must\n * contains a key-ownership proof for a given session, therefore we need a way to tie\n * together sessions and GRANDPA set ids, i.e. we need to validate that a validator\n * was the owner of a given key on a given session, and what the active set ID was\n * during that session.\n *\n * TWOX-NOTE: `SetId` is not under user control.\n **/\n setIdSession: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<u32>>,\n [u64]\n >;\n /**\n * `true` if we are currently stalled.\n **/\n stalled: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[u32, u32]>>>, []>;\n /**\n * State of the current authority set.\n **/\n state: AugmentedQuery<ApiType, () => Observable<PalletGrandpaStoredState>, []>;\n };\n hyperbridge: {\n /**\n * The host parameters of the pallet-hyperbridge.\n **/\n hostParams: AugmentedQuery<\n ApiType,\n () => Observable<PalletHyperbridgeVersionedHostParams>,\n []\n >;\n };\n inboundTransferLog: {\n /**\n * Inbound EVM transfers recorded by their request commitment key.\n **/\n inboundEvmTransfers: AugmentedQuery<\n ApiType,\n (\n arg: H256 | string | Uint8Array,\n ) => Observable<Option<PalletInboundTransferLogInboundEvmTransfer>>,\n [H256]\n >;\n /**\n * Index of inbound transfer record keys expiring at a given block.\n **/\n inboundTransfersExpiringAt: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<H256>>,\n [u32]\n >;\n /**\n * Recent qualifying Argon transfer count keyed by recipient account.\n *\n * This is a transient retained-window index over `InboundEvmTransfers`, not permanent\n * history.\n **/\n recentArgonTransfersByAccount: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<u32>,\n [AccountId32]\n >;\n };\n ismp: {\n /**\n * A mapping of state machine Ids to their challenge periods\n **/\n challengePeriod: AugmentedQuery<\n ApiType,\n (\n arg:\n | IsmpConsensusStateMachineId\n | { stateId?: any; consensusStateId?: any }\n | string\n | Uint8Array,\n ) => Observable<Option<u64>>,\n [IsmpConsensusStateMachineId]\n >;\n /**\n * The child trie root of messages\n **/\n childTrieRoot: AugmentedQuery<ApiType, () => Observable<H256>, []>;\n /**\n * Holds the timestamp at which a consensus client was recently updated.\n * Used in ensuring that the configured challenge period elapses.\n **/\n consensusClientUpdateTime: AugmentedQuery<\n ApiType,\n (arg: U8aFixed | string | Uint8Array) => Observable<Option<u64>>,\n [U8aFixed]\n >;\n /**\n * A mapping of consensus state identifier to it's associated consensus client identifier\n **/\n consensusStateClient: AugmentedQuery<\n ApiType,\n (arg: U8aFixed | string | Uint8Array) => Observable<Option<U8aFixed>>,\n [U8aFixed]\n >;\n /**\n * Holds a map of consensus state identifiers to their consensus state.\n **/\n consensusStates: AugmentedQuery<\n ApiType,\n (arg: U8aFixed | string | Uint8Array) => Observable<Option<Bytes>>,\n [U8aFixed]\n >;\n /**\n * Holds a map of consensus clients frozen due to byzantine\n * behaviour\n **/\n frozenConsensusClients: AugmentedQuery<\n ApiType,\n (arg: U8aFixed | string | Uint8Array) => Observable<bool>,\n [U8aFixed]\n >;\n /**\n * The latest verified height for a state machine\n **/\n latestStateMachineHeight: AugmentedQuery<\n ApiType,\n (\n arg:\n | IsmpConsensusStateMachineId\n | { stateId?: any; consensusStateId?: any }\n | string\n | Uint8Array,\n ) => Observable<Option<u64>>,\n [IsmpConsensusStateMachineId]\n >;\n /**\n * Latest nonce for messages sent from this chain\n **/\n nonce: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n /**\n * The previous verified height for a state machine\n **/\n previousStateMachineHeight: AugmentedQuery<\n ApiType,\n (\n arg:\n | IsmpConsensusStateMachineId\n | { stateId?: any; consensusStateId?: any }\n | string\n | Uint8Array,\n ) => Observable<Option<u64>>,\n [IsmpConsensusStateMachineId]\n >;\n /**\n * Tracks requests that have been responded to\n * The key is the request commitment\n **/\n responded: AugmentedQuery<\n ApiType,\n (arg: H256 | string | Uint8Array) => Observable<bool>,\n [H256]\n >;\n /**\n * Holds a map of state machine heights to their verified state commitments. These state\n * commitments end up here after they are successfully verified by a `ConsensusClient`\n **/\n stateCommitments: AugmentedQuery<\n ApiType,\n (\n arg: IsmpConsensusStateMachineHeight | { id?: any; height?: any } | string | Uint8Array,\n ) => Observable<Option<IsmpConsensusStateCommitment>>,\n [IsmpConsensusStateMachineHeight]\n >;\n /**\n * Holds the timestamp at which a state machine height was updated.\n * Used in ensuring that the configured challenge period elapses.\n **/\n stateMachineUpdateTime: AugmentedQuery<\n ApiType,\n (\n arg: IsmpConsensusStateMachineHeight | { id?: any; height?: any } | string | Uint8Array,\n ) => Observable<Option<u64>>,\n [IsmpConsensusStateMachineHeight]\n >;\n /**\n * A mapping of consensus state identifiers to their unbonding periods\n **/\n unbondingPeriod: AugmentedQuery<\n ApiType,\n (arg: U8aFixed | string | Uint8Array) => Observable<Option<u64>>,\n [U8aFixed]\n >;\n };\n ismpGrandpa: {\n /**\n * Registered state machines for the grandpa consensus client\n **/\n supportedStateMachines: AugmentedQuery<\n ApiType,\n (\n arg:\n | IsmpHostStateMachine\n | { Evm: any }\n | { Polkadot: any }\n | { Kusama: any }\n | { Substrate: any }\n | { Tendermint: any }\n | { Relay: any }\n | string\n | Uint8Array,\n ) => Observable<Option<u64>>,\n [IsmpHostStateMachine]\n >;\n };\n miningSlot: {\n /**\n * Lookup by account id to the corresponding index in MinersByCohort and MinerNoncesByCohort\n **/\n accountIndexLookup: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<Option<ITuple<[u64, u32]>>>,\n [AccountId32]\n >;\n activeMinersCount: AugmentedQuery<ApiType, () => Observable<u16>, []>;\n /**\n * Argonots that must be locked to take a Miner role\n **/\n argonotsPerMiningSeat: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n /**\n * The average price per seat for the last 10 frames (newest first)\n **/\n averagePricePerSeat: AugmentedQuery<ApiType, () => Observable<Vec<u128>>, []>;\n /**\n * The cohort set to go into effect in the next slot. The Vec has all\n * registrants with their bid amount\n **/\n bidsForNextSlotCohort: AugmentedQuery<\n ApiType,\n () => Observable<Vec<ArgonPrimitivesBlockSealMiningRegistration>>,\n []\n >;\n /**\n * The number of reward ticks remaining in the frame\n **/\n frameRewardTicksRemaining: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n /**\n * The previous 10 frame start block numbers\n **/\n frameStartBlockNumbers: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []>;\n /**\n * The previous 10 frame start ticks\n **/\n frameStartTicks: AugmentedQuery<ApiType, () => Observable<BTreeMap<u64, u64>>, []>;\n hasAddedGrandpaRotation: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * The number of bids per slot for the last 10 slots (newest first)\n **/\n historicalBidsPerSlot: AugmentedQuery<\n ApiType,\n () => Observable<Vec<ArgonPrimitivesBlockSealMiningBidStats>>,\n []\n >;\n /**\n * Is the next slot still open for bids\n **/\n isNextSlotBiddingOpen: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * This is a lookup of each miner's nonce to use when picking a best authority to submit a\n * block. It's a blake2 256 hash of the miner account id and the block hash at time of\n * activation.\n **/\n minerNonceScoringByCohort: AugmentedQuery<\n ApiType,\n () => Observable<BTreeMap<u64, Vec<PalletMiningSlotMinerNonceScoring>>>,\n []\n >;\n /**\n * Miners that are active in the current block (post initialize) by their starting frame\n **/\n minersByCohort: AugmentedQuery<\n ApiType,\n (\n arg: u64 | AnyNumber | Uint8Array,\n ) => Observable<Vec<ArgonPrimitivesBlockSealMiningRegistration>>,\n [u64]\n >;\n /**\n * The mining slot configuration set in genesis\n **/\n miningConfig: AugmentedQuery<\n ApiType,\n () => Observable<ArgonPrimitivesBlockSealMiningSlotConfig>,\n []\n >;\n /**\n * Is a new frame started in this block\n **/\n newlyStartedFrameId: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []>;\n /**\n * The number of allow miners to bid for the next mining cohort\n **/\n nextCohortSize: AugmentedQuery<ApiType, () => Observable<u32>, []>;\n /**\n * The next frameId. A frame in argon is the 24 hours between the start of two different mining\n * cohorts.\n **/\n nextFrameId: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n /**\n * The miners released in the last block (only kept for a single block)\n **/\n releasedMinersByAccountId: AugmentedQuery<\n ApiType,\n () => Observable<BTreeMap<AccountId32, ArgonPrimitivesBlockSealMiningRegistration>>,\n []\n >;\n /**\n * The upcoming changes scheduled for cohort size by frame.\n * Capacity of 11 allows for 10 frames worth of scheduled changes plus one working slot\n * to schedule a new change during frame finalization.\n **/\n scheduledCohortSizeChangeByFrame: AugmentedQuery<\n ApiType,\n () => Observable<BTreeMap<u64, u32>>,\n []\n >;\n /**\n * Temporary store the frame info digest\n **/\n tempFrameInfoDigest: AugmentedQuery<\n ApiType,\n () => Observable<Option<ArgonPrimitivesDigestsFrameInfo>>,\n []\n >;\n };\n mint: {\n blockMintAction: AugmentedQuery<\n ApiType,\n () => Observable<ITuple<[u32, PalletMintMintAction]>>,\n []\n >;\n /**\n * The amount of argons minted per mining cohort (ie, grouped by starting frame id)\n **/\n miningMintPerCohort: AugmentedQuery<ApiType, () => Observable<BTreeMap<u64, u128>>, []>;\n /**\n * The total amount of Bitcoin microgons minted. Cannot exceed `MintedMiningMicrogons`.\n **/\n mintedBitcoinMicrogons: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n /**\n * The total amount of microgons minted for mining\n **/\n mintedMiningMicrogons: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n /**\n * Bitcoin UTXOs that have been submitted for minting. This list is FIFO for minting whenever\n * a) CPI >= 0 and\n * b) the aggregate minted Bitcoins <= the aggregate minted microgons from mining\n **/\n pendingMintUtxos: AugmentedQuery<\n ApiType,\n () => Observable<Vec<ITuple<[u64, AccountId32, u128]>>>,\n []\n >;\n };\n multisig: {\n /**\n * The set of open multisig operations.\n **/\n multisigs: AugmentedQuery<\n ApiType,\n (\n arg1: AccountId32 | string | Uint8Array,\n arg2: U8aFixed | string | Uint8Array,\n ) => Observable<Option<PalletMultisigMultisig>>,\n [AccountId32, U8aFixed]\n >;\n };\n notaries: {\n activeNotaries: AugmentedQuery<\n ApiType,\n () => Observable<Vec<ArgonPrimitivesNotaryNotaryRecord>>,\n []\n >;\n expiringProposals: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<AccountId32>>,\n [u32]\n >;\n nextNotaryId: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []>;\n notaryKeyHistory: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u64, U8aFixed]>>>,\n [u32]\n >;\n proposedNotaries: AugmentedQuery<\n ApiType,\n (\n arg: AccountId32 | string | Uint8Array,\n ) => Observable<Option<ITuple<[ArgonPrimitivesNotaryNotaryMeta, u32]>>>,\n [AccountId32]\n >;\n /**\n * Metadata changes to be activated at the given tick\n **/\n queuedNotaryMetaChanges: AugmentedQuery<\n ApiType,\n (\n arg: u64 | AnyNumber | Uint8Array,\n ) => Observable<BTreeMap<u32, ArgonPrimitivesNotaryNotaryMeta>>,\n [u64]\n >;\n };\n notebook: {\n /**\n * Storage map of account origin (notary_id, notebook, account_uid) to the last\n * notebook containing this account in the changed accounts merkle root\n * (NotebookChangedAccountsRootByNotary)\n **/\n accountOriginLastChangedNotebookByNotary: AugmentedQuery<\n ApiType,\n (\n arg1: u32 | AnyNumber | Uint8Array,\n arg2:\n | ArgonPrimitivesBalanceChangeAccountOrigin\n | { notebookNumber?: any; accountUid?: any }\n | string\n | Uint8Array,\n ) => Observable<Option<u32>>,\n [u32, ArgonPrimitivesBalanceChangeAccountOrigin]\n >;\n /**\n * The notebooks included in this block\n **/\n blockNotebooks: AugmentedQuery<\n ApiType,\n () => Observable<ArgonPrimitivesDigestsNotebookDigest>,\n []\n >;\n /**\n * Check if the inherent was included\n **/\n inherentIncluded: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * List of last few notebook details by notary. The bool is whether the notebook is eligible\n * for votes (received at correct tick and audit passed)\n **/\n lastNotebookDetailsByNotary: AugmentedQuery<\n ApiType,\n (\n arg: u32 | AnyNumber | Uint8Array,\n ) => Observable<Vec<ITuple<[ArgonPrimitivesNotaryNotaryNotebookKeyDetails, bool]>>>,\n [u32]\n >;\n /**\n * Notaries ready to start reprocessing at a given notebook number\n **/\n lockedNotaryReadyForReprocess: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>,\n [u32]\n >;\n /**\n * Notaries locked for failing audits\n **/\n notariesLockedForFailedAudit: AugmentedQuery<\n ApiType,\n (\n arg: u32 | AnyNumber | Uint8Array,\n ) => Observable<Option<ITuple<[u32, u64, ArgonNotaryAuditErrorVerifyError]>>>,\n [u32]\n >;\n /**\n * Double storage map of notary id + notebook # to the change root\n **/\n notebookChangedAccountsRootByNotary: AugmentedQuery<\n ApiType,\n (\n arg1: u32 | AnyNumber | Uint8Array,\n arg2: u32 | AnyNumber | Uint8Array,\n ) => Observable<Option<H256>>,\n [u32, u32]\n >;\n };\n operationalAccounts: {\n /**\n * Referral codes that have already been linked, keyed to their proof expiration frame.\n **/\n consumedReferralCodes: AugmentedQuery<\n ApiType,\n (arg: U8aFixed | string | Uint8Array) => Observable<Option<u64>>,\n [U8aFixed]\n >;\n /**\n * Referral codes to clear after their referral proof expiration frame.\n **/\n consumedReferralCodesByExpiration: AugmentedQuery<\n ApiType,\n (\n arg1: u64 | AnyNumber | Uint8Array,\n arg2: U8aFixed | string | Uint8Array,\n ) => Observable<Option<Null>>,\n [u64, U8aFixed]\n >;\n /**\n * Opaque encrypted sponsor server payload keyed by the sponsee operational account.\n **/\n encryptedServerBySponsee: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<Option<Bytes>>,\n [AccountId32]\n >;\n /**\n * Oldest referral expiration frame that still has cleanup work to resume.\n **/\n expiredReferralCodeCleanupFrame: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []>;\n /**\n * Reverse lookup of any linked account to its operational account id.\n **/\n operationalAccountBySubAccount: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<Option<AccountId32>>,\n [AccountId32]\n >;\n /**\n * Registered operational accounts keyed by the primary account id.\n **/\n operationalAccounts: AugmentedQuery<\n ApiType,\n (\n arg: AccountId32 | string | Uint8Array,\n ) => Observable<Option<PalletOperationalAccountsOperationalAccount>>,\n [AccountId32]\n >;\n /**\n * Configured reward amounts for operational accounts.\n **/\n rewards: AugmentedQuery<\n ApiType,\n () => Observable<PalletOperationalAccountsRewardsConfig>,\n []\n >;\n };\n ownership: {\n /**\n * The Balances pallet example of storing the balance of an account.\n *\n * # Example\n *\n * ```nocompile\n * impl pallet_balances::Config for Runtime {\n * type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>\n * }\n * ```\n *\n * You can also store the balance of an account in the `System` pallet.\n *\n * # Example\n *\n * ```nocompile\n * impl pallet_balances::Config for Runtime {\n * type AccountStore = System\n * }\n * ```\n *\n * But this comes with tradeoffs, storing account balances in the system pallet stores\n * `frame_system` data alongside the account data contrary to storing account balances in the\n * `Balances` pallet, which uses a `StorageMap` to store balances data only.\n * NOTE: This is only used in the case that this pallet is used to store balances.\n **/\n account: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<PalletBalancesAccountData>,\n [AccountId32]\n >;\n /**\n * Freeze locks on account balances.\n **/\n freezes: AugmentedQuery<\n ApiType,\n (\n arg: AccountId32 | string | Uint8Array,\n ) => Observable<Vec<FrameSupportTokensMiscIdAmountRuntimeFreezeReason>>,\n [AccountId32]\n >;\n /**\n * Holds on account balances.\n **/\n holds: AugmentedQuery<\n ApiType,\n (\n arg: AccountId32 | string | Uint8Array,\n ) => Observable<Vec<FrameSupportTokensMiscIdAmountRuntimeHoldReason>>,\n [AccountId32]\n >;\n /**\n * The total units of outstanding deactivated balance in the system.\n **/\n inactiveIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n /**\n * Any liquidity locks on some account balances.\n * NOTE: Should only be accessed when setting, changing and freeing a lock.\n *\n * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`\n **/\n locks: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesBalanceLock>>,\n [AccountId32]\n >;\n /**\n * Named reserves on some account balances.\n *\n * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`\n **/\n reserves: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesReserveData>>,\n [AccountId32]\n >;\n /**\n * The total units issued in the system.\n **/\n totalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n };\n priceIndex: {\n /**\n * Stores the active price index\n **/\n current: AugmentedQuery<ApiType, () => Observable<Option<PalletPriceIndexPriceIndex>>, []>;\n /**\n * Tracks the average cpi data every 60 ticks\n **/\n historicArgonCPI: AugmentedQuery<\n ApiType,\n () => Observable<Vec<PalletPriceIndexCpiMeasurementBucket>>,\n []\n >;\n /**\n * Stores the last valid price index\n **/\n lastValid: AugmentedQuery<ApiType, () => Observable<Option<PalletPriceIndexPriceIndex>>, []>;\n /**\n * The price index operator account\n **/\n operator: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []>;\n };\n proxy: {\n /**\n * The announcements made by the proxy (key).\n **/\n announcements: AugmentedQuery<\n ApiType,\n (\n arg: AccountId32 | string | Uint8Array,\n ) => Observable<ITuple<[Vec<PalletProxyAnnouncement>, u128]>>,\n [AccountId32]\n >;\n /**\n * The set of account proxies. Maps the account which has delegated to the accounts\n * which are being delegated to, together with the amount held on deposit.\n **/\n proxies: AugmentedQuery<\n ApiType,\n (\n arg: AccountId32 | string | Uint8Array,\n ) => Observable<ITuple<[Vec<PalletProxyProxyDefinition>, u128]>>,\n [AccountId32]\n >;\n };\n sudo: {\n /**\n * The `AccountId` of the sudo key.\n **/\n key: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []>;\n };\n system: {\n /**\n * The full account information for a particular account ID.\n **/\n account: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<FrameSystemAccountInfo>,\n [AccountId32]\n >;\n /**\n * Total length (in bytes) for all extrinsics put together, for the current block.\n **/\n allExtrinsicsLen: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []>;\n /**\n * `Some` if a code upgrade has been authorized.\n **/\n authorizedUpgrade: AugmentedQuery<\n ApiType,\n () => Observable<Option<FrameSystemCodeUpgradeAuthorization>>,\n []\n >;\n /**\n * Map of block numbers to block hashes.\n **/\n blockHash: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<H256>,\n [u32]\n >;\n /**\n * The current weight for the block.\n **/\n blockWeight: AugmentedQuery<\n ApiType,\n () => Observable<FrameSupportDispatchPerDispatchClassWeight>,\n []\n >;\n /**\n * Digest of the current block, also part of the block header.\n **/\n digest: AugmentedQuery<ApiType, () => Observable<SpRuntimeDigest>, []>;\n /**\n * The number of events in the `Events<T>` list.\n **/\n eventCount: AugmentedQuery<ApiType, () => Observable<u32>, []>;\n /**\n * Events deposited for the current block.\n *\n * NOTE: The item is unbound and should therefore never be read on chain.\n * It could otherwise inflate the PoV size of a block.\n *\n * Events have a large in-memory size. Box the events to not go out-of-memory\n * just in case someone still reads them from within the runtime.\n **/\n events: AugmentedQuery<ApiType, () => Observable<Vec<FrameSystemEventRecord>>, []>;\n /**\n * Mapping between a topic (represented by T::Hash) and a vector of indexes\n * of events in the `<Events<T>>` list.\n *\n * All topic vectors have deterministic storage locations depending on the topic. This\n * allows light-clients to leverage the changes trie storage tracking mechanism and\n * in case of changes fetch the list of events of interest.\n *\n * The value has the type `(BlockNumberFor<T>, EventIndex)` because if we used only just\n * the `EventIndex` then in case if the topic has the same contents on the next block\n * no notification will be triggered thus the event might be lost.\n **/\n eventTopics: AugmentedQuery<\n ApiType,\n (arg: H256 | string | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>,\n [H256]\n >;\n /**\n * The execution phase of the block.\n **/\n executionPhase: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemPhase>>, []>;\n /**\n * Total extrinsics count for the current block.\n **/\n extrinsicCount: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []>;\n /**\n * Extrinsics data for the current block (maps an extrinsic's index to its data).\n **/\n extrinsicData: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>,\n [u32]\n >;\n /**\n * The weight reclaimed for the extrinsic.\n *\n * This information is available until the end of the extrinsic execution.\n * More precisely this information is removed in `note_applied_extrinsic`.\n *\n * Logic doing some post dispatch weight reduction must update this storage to avoid duplicate\n * reduction.\n **/\n extrinsicWeightReclaimed: AugmentedQuery<\n ApiType,\n () => Observable<SpWeightsWeightV2Weight>,\n []\n >;\n /**\n * Whether all inherents have been applied.\n **/\n inherentsApplied: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened.\n **/\n lastRuntimeUpgrade: AugmentedQuery<\n ApiType,\n () => Observable<Option<FrameSystemLastRuntimeUpgradeInfo>>,\n []\n >;\n /**\n * The current block number being processed. Set by `execute_block`.\n **/\n number: AugmentedQuery<ApiType, () => Observable<u32>, []>;\n /**\n * Hash of the previous block.\n **/\n parentHash: AugmentedQuery<ApiType, () => Observable<H256>, []>;\n /**\n * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False\n * (default) if not.\n **/\n upgradedToTripleRefCount: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not.\n **/\n upgradedToU32RefCount: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n };\n ticks: {\n currentTick: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n genesisTick: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n genesisTicker: AugmentedQuery<ApiType, () => Observable<ArgonPrimitivesTickTicker>, []>;\n previousTick: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n /**\n * Blocks from the last 100 ticks. Trimmed in on_initialize.\n * NOTE: cannot include the current block hash until next block\n **/\n recentBlocksAtTicks: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Vec<H256>>,\n [u64]\n >;\n };\n timestamp: {\n /**\n * Whether the timestamp has been updated in this block.\n *\n * This value is updated to `true` upon successful submission of a timestamp by a node.\n * It is then checked at the end of each block execution in the `on_finalize` hook.\n **/\n didUpdate: AugmentedQuery<ApiType, () => Observable<bool>, []>;\n /**\n * The current time for the current block.\n **/\n now: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n };\n tokenGateway: {\n /**\n * Assets supported by this instance of token gateway\n * A map of the token gateway asset id to the local asset id\n **/\n localAssets: AugmentedQuery<\n ApiType,\n (arg: H256 | string | Uint8Array) => Observable<Option<u32>>,\n [H256]\n >;\n /**\n * Assets that originate from this chain\n **/\n nativeAssets: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<bool>,\n [u32]\n >;\n /**\n * The decimals used by the EVM counterpart of this asset\n **/\n precisions: AugmentedQuery<\n ApiType,\n (\n arg1: u32 | AnyNumber | Uint8Array,\n arg2:\n | IsmpHostStateMachine\n | { Evm: any }\n | { Polkadot: any }\n | { Kusama: any }\n | { Substrate: any }\n | { Tendermint: any }\n | { Relay: any }\n | string\n | Uint8Array,\n ) => Observable<Option<u8>>,\n [u32, IsmpHostStateMachine]\n >;\n /**\n * Assets supported by this instance of token gateway\n * A map of the local asset id to the token gateway asset id\n **/\n supportedAssets: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<H256>>,\n [u32]\n >;\n /**\n * The token gateway adresses on different chains\n **/\n tokenGatewayAddresses: AugmentedQuery<\n ApiType,\n (\n arg:\n | IsmpHostStateMachine\n | { Evm: any }\n | { Polkadot: any }\n | { Kusama: any }\n | { Substrate: any }\n | { Tendermint: any }\n | { Relay: any }\n | string\n | Uint8Array,\n ) => Observable<Option<Bytes>>,\n [IsmpHostStateMachine]\n >;\n };\n transactionPayment: {\n nextFeeMultiplier: AugmentedQuery<ApiType, () => Observable<u128>, []>;\n storageVersion: AugmentedQuery<\n ApiType,\n () => Observable<PalletTransactionPaymentReleases>,\n []\n >;\n /**\n * The `OnChargeTransaction` stores the withdrawn tx fee here.\n *\n * Use `withdraw_txfee` and `remaining_txfee` to access from outside the crate.\n **/\n txPaymentCredit: AugmentedQuery<\n ApiType,\n () => Observable<Option<FrameSupportTokensFungibleImbalance>>,\n []\n >;\n };\n treasury: {\n /**\n * The stored state for each bond lot.\n **/\n bondLotById: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<PalletTreasuryBondLot>>,\n [u64]\n >;\n /**\n * The bond lot ids that belong to an account.\n **/\n bondLotIdsByAccount: AugmentedQuery<\n ApiType,\n (\n arg1: AccountId32 | string | Uint8Array,\n arg2: u64 | AnyNumber | Uint8Array,\n ) => Observable<Option<Null>>,\n [AccountId32, u64]\n >;\n /**\n * The accepted bond lots for a vault.\n *\n * Lots are kept in descending bond order, then lower `bond_lot_id` first for ties.\n **/\n bondLotsByVault: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<PalletTreasuryBondLotSummary>>,\n [u32]\n >;\n /**\n * The vault capital locked for the current frame.\n *\n * Payout uses this to see which vaults and bond lots are participating in the frame.\n **/\n currentFrameVaultCapital: AugmentedQuery<\n ApiType,\n () => Observable<Option<PalletTreasuryFrameVaultCapital>>,\n []\n >;\n /**\n * The next bond lot id.\n **/\n nextBondLotId: AugmentedQuery<ApiType, () => Observable<u64>, []>;\n /**\n * The oldest frame that still has bond lots to retry releasing.\n **/\n pendingBondReleaseRetryCursor: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []>;\n /**\n * Bond lots to release at the given frame.\n **/\n pendingBondReleasesByFrame: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Vec<u64>>,\n [u64]\n >;\n };\n txPause: {\n /**\n * The set of calls that are explicitly paused.\n **/\n pausedCalls: AugmentedQuery<\n ApiType,\n (\n arg: ITuple<[Bytes, Bytes]> | [Bytes | string | Uint8Array, Bytes | string | Uint8Array],\n ) => Observable<Option<Null>>,\n [ITuple<[Bytes, Bytes]>]\n >;\n };\n vaults: {\n /**\n * The last collect frame of each vault\n **/\n lastCollectFrameByVaultId: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<u64>>,\n [u32]\n >;\n nextVaultId: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []>;\n /**\n * Orphaned Bitcoin Utxos pending cosign by vault id\n **/\n orphanedUtxoAccountsByVaultId: AugmentedQuery<\n ApiType,\n (\n arg1: u32 | AnyNumber | Uint8Array,\n arg2: AccountId32 | string | Uint8Array,\n ) => Observable<u32>,\n [u32, AccountId32]\n >;\n /**\n * Bitcoin Locks pending cosign by vault id\n **/\n pendingCosignByVaultId: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<BTreeSet<u64>>,\n [u32]\n >;\n /**\n * Pending terms that will be committed at the given block number (must be a minimum of 1 slot\n * change away)\n **/\n pendingTermsModificationsByTick: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<Vec<u32>>,\n [u64]\n >;\n /**\n * Recent reductions in `available_for_lock`, grouped by vault.\n **/\n recentCapacityDropsByVault: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<PalletVaultsRecentCapacityDrop>>,\n [u32]\n >;\n /**\n * Tracks revenue from Bitcoin Locks and Treasury Pools for the trailing frames for each vault\n * (a frame is a \"mining day\" in Argon). Newest frames are first. Frames are removed after the\n * collect expiration window (`RevenueCollectionExpirationFrames`).\n **/\n revenuePerFrameByVault: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<PalletVaultsVaultFrameRevenue>>,\n [u32]\n >;\n /**\n * The vaults that have funds releasing at a given bitcoin height\n **/\n vaultFundsReleasingByHeight: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<BTreeSet<u32>>,\n [u64]\n >;\n /**\n * Vaults by owner\n **/\n vaultIdByOperator: AugmentedQuery<\n ApiType,\n (arg: AccountId32 | string | Uint8Array) => Observable<Option<u32>>,\n [AccountId32]\n >;\n /**\n * Vaults by id\n **/\n vaultsById: AugmentedQuery<\n ApiType,\n (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<ArgonPrimitivesVault>>,\n [u32]\n >;\n /**\n * Vaults whose temporary operational minimum may be released at a given tick.\n **/\n vaultsReleasingOperationalMinimumByTick: AugmentedQuery<\n ApiType,\n (arg: u64 | AnyNumber | Uint8Array) => Observable<BTreeSet<u32>>,\n [u64]\n >;\n /**\n * Vault Bitcoin Xpub and current child counter by VaultId\n **/\n vaultXPubById: AugmentedQuery<\n ApiType,\n (\n arg: u32 | AnyNumber | Uint8Array,\n ) => Observable<Option<ITuple<[ArgonPrimitivesBitcoinBitcoinXPub, u32]>>>,\n [u32]\n >;\n };\n } // AugmentedQueries\n} // declare module\n","// Auto-generated via `yarn polkadot-types-from-chain`, do not edit\n/* eslint-disable */\n\n// import type lookup before we augment - in some environments\n// this is required to allow for ambient/previous definitions\nimport '@polkadot/api-base/types/submittable';\n\nimport type {\n ApiTypes,\n AugmentedSubmittable,\n SubmittableExtrinsic,\n SubmittableExtrinsicFunction,\n} from '@polkadot/api-base/types';\nimport type {\n BTreeMap,\n Bytes,\n Compact,\n Option,\n U8aFixed,\n Vec,\n bool,\n u128,\n u16,\n u32,\n u64,\n} from '@polkadot/types-codec';\nimport type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';\nimport type { AccountId32, Call, H256, MultiAddress } from '@polkadot/types/interfaces/runtime';\nimport type {\n ArgonPrimitivesBitcoinCompressedBitcoinPubkey,\n ArgonPrimitivesBitcoinH256Le,\n ArgonPrimitivesBitcoinOpaqueBitcoinXpub,\n ArgonPrimitivesBitcoinUtxoRef,\n ArgonPrimitivesDomainZoneRecord,\n ArgonPrimitivesInherentsBitcoinUtxoSync,\n ArgonPrimitivesInherentsBlockSealInherent,\n ArgonPrimitivesNotaryNotaryMeta,\n ArgonPrimitivesNotebookSignedNotebookHeader,\n ArgonPrimitivesVaultVaultTerms,\n ArgonRuntimeOriginCaller,\n ArgonRuntimeProxyType,\n ArgonRuntimeSessionKeys,\n IsmpGrandpaAddStateMachine,\n IsmpHostStateMachine,\n IsmpMessagingCreateConsensusState,\n IsmpMessagingMessage,\n PalletBalancesAdjustmentDirection,\n PalletBitcoinLocksLockOptions,\n PalletIsmpUtilsFundMessageParams,\n PalletIsmpUtilsUpdateConsensusState,\n PalletMultisigTimepoint,\n PalletOperationalAccountsOperationalProgressPatch,\n PalletOperationalAccountsRegistration,\n PalletPriceIndexPriceIndex,\n PalletTokenGatewayAssetRegistration,\n PalletTokenGatewayPrecisionUpdate,\n PalletTokenGatewayTeleportParams,\n PalletVaultsVaultConfig,\n SpConsensusGrandpaEquivocationProof,\n SpCoreVoid,\n SpWeightsWeightV2Weight,\n} from '@polkadot/types/lookup';\n\nexport type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;\nexport type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;\nexport type __SubmittableExtrinsicFunction<ApiType extends ApiTypes> =\n SubmittableExtrinsicFunction<ApiType>;\n\ndeclare module '@polkadot/api-base/types/submittable' {\n interface AugmentedSubmittables<ApiType extends ApiTypes> {\n balances: {\n /**\n * Burn the specified liquid free balance from the origin account.\n *\n * If the origin's account ends up below the existential deposit as a result\n * of the burn and `keep_alive` is false, the account will be reaped.\n *\n * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,\n * this `burn` operation will reduce total issuance by the amount _burned_.\n **/\n burn: AugmentedSubmittable<\n (\n value: Compact<u128> | AnyNumber | Uint8Array,\n keepAlive: bool | boolean | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Compact<u128>, bool]\n >;\n /**\n * Adjust the total issuance in a saturating way.\n *\n * Can only be called by root and always needs a positive `delta`.\n *\n * # Example\n **/\n forceAdjustTotalIssuance: AugmentedSubmittable<\n (\n direction:\n | PalletBalancesAdjustmentDirection\n | 'Increase'\n | 'Decrease'\n | number\n | Uint8Array,\n delta: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletBalancesAdjustmentDirection, Compact<u128>]\n >;\n /**\n * Set the regular balance of a given account.\n *\n * The dispatch origin for this call is `root`.\n **/\n forceSetBalance: AugmentedSubmittable<\n (\n who:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n newFree: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, Compact<u128>]\n >;\n /**\n * Exactly as `transfer_allow_death`, except the origin must be root and the source account\n * may be specified.\n **/\n forceTransfer: AugmentedSubmittable<\n (\n source:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n dest:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n value: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, MultiAddress, Compact<u128>]\n >;\n /**\n * Unreserve some balance from a user by force.\n *\n * Can only be called by ROOT.\n **/\n forceUnreserve: AugmentedSubmittable<\n (\n who:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n amount: u128 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, u128]\n >;\n /**\n * Transfer the entire transferable balance from the caller account.\n *\n * NOTE: This function only attempts to transfer _transferable_ balances. This means that\n * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be\n * transferred by this function. To ensure that this function results in a killed account,\n * you might need to prepare the account by removing any reference counters, storage\n * deposits, etc...\n *\n * The dispatch origin of this call must be Signed.\n *\n * - `dest`: The recipient of the transfer.\n * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all\n * of the funds the account has, causing the sender account to be killed (false), or\n * transfer everything except at least the existential deposit, which will guarantee to\n * keep the sender account alive (true).\n **/\n transferAll: AugmentedSubmittable<\n (\n dest:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n keepAlive: bool | boolean | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, bool]\n >;\n /**\n * Transfer some liquid free balance to another account.\n *\n * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver.\n * If the sender's account is below the existential deposit as a result\n * of the transfer, the account will be reaped.\n *\n * The dispatch origin for this call must be `Signed` by the transactor.\n **/\n transferAllowDeath: AugmentedSubmittable<\n (\n dest:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n value: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, Compact<u128>]\n >;\n /**\n * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not\n * kill the origin account.\n *\n * 99% of the time you want [`transfer_allow_death`] instead.\n *\n * [`transfer_allow_death`]: struct.Pallet.html#method.transfer\n **/\n transferKeepAlive: AugmentedSubmittable<\n (\n dest:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n value: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, Compact<u128>]\n >;\n /**\n * Upgrade a specified account.\n *\n * - `origin`: Must be `Signed`.\n * - `who`: The account to be upgraded.\n *\n * This will waive the transaction fee if at least all but 10% of the accounts needed to\n * be upgraded. (We let some not have to be upgraded just in order to allow for the\n * possibility of churn).\n **/\n upgradeAccounts: AugmentedSubmittable<\n (\n who: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<AccountId32>]\n >;\n };\n bitcoinLocks: {\n adminModifyMinimumLockedSats: AugmentedSubmittable<\n (satoshis: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [u64]\n >;\n /**\n * NOTE: The `signature` parameter is NOT verified on-chain. The orphan record does\n * not retain the cosign script args needed for verification (they are cleaned up\n * with the BitcoinLock). The signature is passed through to the\n * `OrphanedUtxoCosigned` event so the lock owner can construct the Bitcoin release\n * transaction off-chain. A garbage signature means the owner can't spend — no\n * on-chain damage. To add on-chain verification, the cosign script args would need\n * to be stored in `OrphanedUtxo` (storage migration required).\n **/\n cosignOrphanedUtxoRelease: AugmentedSubmittable<\n (\n orphanOwner: AccountId32 | string | Uint8Array,\n utxoRef:\n | ArgonPrimitivesBitcoinUtxoRef\n | { txid?: any; outputIndex?: any }\n | string\n | Uint8Array,\n signature: Bytes | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [AccountId32, ArgonPrimitivesBitcoinUtxoRef, Bytes]\n >;\n /**\n * Submitted by a Vault operator to cosign the release of a bitcoin utxo. The Bitcoin owner\n * release fee will be burned, and the lock will be allowed to expire without a penalty.\n *\n * This is submitted as a no-fee transaction off chain to allow keys to remain in cold\n * wallets.\n **/\n cosignRelease: AugmentedSubmittable<\n (\n utxoId: u64 | AnyNumber | Uint8Array,\n signature: Bytes | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u64, Bytes]\n >;\n increaseSecuritization: AugmentedSubmittable<\n (\n utxoId: u64 | AnyNumber | Uint8Array,\n newSatoshis: Compact<u64> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u64, Compact<u64>]\n >;\n /**\n * Initialize a bitcoin lock. This will create a LockedBitcoin for the submitting account\n * and log the Bitcoin Script hash to Events.\n *\n * The pubkey submitted here will be used to create a script pubkey that will be used in a\n * timelock multisig script to lock the bitcoin.\n *\n * NOTE: A \"lock-er\" must send btc to the cosigner UTXO address to \"complete\" the\n * LockedBitcoin and be added to the Bitcoin Mint line.\n **/\n initialize: AugmentedSubmittable<\n (\n vaultId: u32 | AnyNumber | Uint8Array,\n satoshis: Compact<u64> | AnyNumber | Uint8Array,\n bitcoinPubkey: ArgonPrimitivesBitcoinCompressedBitcoinPubkey | string | Uint8Array,\n options:\n | Option<PalletBitcoinLocksLockOptions>\n | null\n | Uint8Array\n | PalletBitcoinLocksLockOptions\n | { V1: any }\n | string,\n ) => SubmittableExtrinsic<ApiType>,\n [\n u32,\n Compact<u64>,\n ArgonPrimitivesBitcoinCompressedBitcoinPubkey,\n Option<PalletBitcoinLocksLockOptions>,\n ]\n >;\n initializeFor: AugmentedSubmittable<\n (\n accountId: AccountId32 | string | Uint8Array,\n vaultId: u32 | AnyNumber | Uint8Array,\n satoshis: Compact<u64> | AnyNumber | Uint8Array,\n bitcoinPubkey: ArgonPrimitivesBitcoinCompressedBitcoinPubkey | string | Uint8Array,\n options:\n | Option<PalletBitcoinLocksLockOptions>\n | null\n | Uint8Array\n | PalletBitcoinLocksLockOptions\n | { V1: any }\n | string,\n ) => SubmittableExtrinsic<ApiType>,\n [\n AccountId32,\n u32,\n Compact<u64>,\n ArgonPrimitivesBitcoinCompressedBitcoinPubkey,\n Option<PalletBitcoinLocksLockOptions>,\n ]\n >;\n /**\n * Ratcheting allows a user to change the lock price of their bitcoin lock. This is\n * functionally the same as releasing and re-initializing, but it allows a user to skip\n * sending transactions through bitcoin and any associated fees. It also allows you to stay\n * on your original lock expiration without having to pay the full year of fees again.\n *\n * Ratcheting \"down\" - when the price of bitcoin is lower than your lock price, you pay the\n * full release price and get added back to the mint queue at the current market rate. You\n * pocket the difference between the already minted \"lock price\" and the new market value\n * (which you just had burned). Your new lock price is set to the market low, so you can\n * take advantage of ratchets \"up\" in the future.\n *\n * Ratcheting \"up\" - when the price of bitcoin is higher than your lock price, you pay a\n * prorated fee for the remainder of your existing lock duration. You are added to the mint\n * queue for the difference in your new lock price vs the previous lock price.\n **/\n ratchet: AugmentedSubmittable<\n (\n utxoId: u64 | AnyNumber | Uint8Array,\n options:\n | Option<PalletBitcoinLocksLockOptions>\n | null\n | Uint8Array\n | PalletBitcoinLocksLockOptions\n | { V1: any }\n | string,\n ) => SubmittableExtrinsic<ApiType>,\n [u64, Option<PalletBitcoinLocksLockOptions>]\n >;\n requestOrphanedUtxoRelease: AugmentedSubmittable<\n (\n utxoRef:\n | ArgonPrimitivesBitcoinUtxoRef\n | { txid?: any; outputIndex?: any }\n | string\n | Uint8Array,\n toScriptPubkey: Bytes | string | Uint8Array,\n bitcoinNetworkFee: u64 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [ArgonPrimitivesBitcoinUtxoRef, Bytes, u64]\n >;\n /**\n * Submitted by a Bitcoin holder to trigger the release of their Utxo out of the cosign\n * script. A transaction spending the UTXO should be pre-created so that the sighash\n * can be submitted here. The vault operator will have 10 days to counter-sign the\n * transaction. It will be published with the public key as a BitcoinUtxoCosigned Event.\n *\n * Owner must submit a script pubkey and also a fee to pay to the bitcoin network.\n **/\n requestRelease: AugmentedSubmittable<\n (\n utxoId: u64 | AnyNumber | Uint8Array,\n toScriptPubkey: Bytes | string | Uint8Array,\n bitcoinNetworkFee: u64 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u64, Bytes, u64]\n >;\n };\n bitcoinUtxos: {\n /**\n * Bind a candidate UTXO ref as the funding UTXO for its lock.\n * The locks pallet authorizes the promotion; this pallet binds the ref and begins\n * tracking.\n **/\n fundWithUtxoCandidate: AugmentedSubmittable<\n (\n utxoId: u64 | AnyNumber | Uint8Array,\n utxoRef:\n | ArgonPrimitivesBitcoinUtxoRef\n | { txid?: any; outputIndex?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u64, ArgonPrimitivesBitcoinUtxoRef]\n >;\n /**\n * Reject a pending candidate UTXO and materialize it as an orphan through the locks\n * pallet.\n **/\n rejectUtxoCandidate: AugmentedSubmittable<\n (\n utxoId: u64 | AnyNumber | Uint8Array,\n utxoRef:\n | ArgonPrimitivesBitcoinUtxoRef\n | { txid?: any; outputIndex?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u64, ArgonPrimitivesBitcoinUtxoRef]\n >;\n /**\n * Sets the most recent confirmed bitcoin block height (only executable by the Oracle\n * Operator account)\n *\n * # Arguments\n * * `bitcoin_height` - the latest bitcoin block height to be confirmed\n **/\n setConfirmedBlock: AugmentedSubmittable<\n (\n bitcoinHeight: u64 | AnyNumber | Uint8Array,\n bitcoinBlockHash: ArgonPrimitivesBitcoinH256Le | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u64, ArgonPrimitivesBitcoinH256Le]\n >;\n /**\n * Sets the oracle operator account id (only executable by the Root account)\n *\n * # Arguments\n * * `account_id` - the account id of the operator\n **/\n setOperator: AugmentedSubmittable<\n (accountId: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [AccountId32]\n >;\n /**\n * Submitted when a bitcoin UTXO has been moved or confirmed.\n **/\n sync: AugmentedSubmittable<\n (\n utxoSync:\n | ArgonPrimitivesInherentsBitcoinUtxoSync\n | { spent?: any; funded?: any; syncToBlock?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [ArgonPrimitivesInherentsBitcoinUtxoSync]\n >;\n };\n blockRewards: {\n setBlockRewardsPaused: AugmentedSubmittable<\n (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [bool]\n >;\n };\n blockSeal: {\n apply: AugmentedSubmittable<\n (\n seal:\n | ArgonPrimitivesInherentsBlockSealInherent\n | { Vote: any }\n | { Compute: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [ArgonPrimitivesInherentsBlockSealInherent]\n >;\n };\n blockSealSpec: {\n configure: AugmentedSubmittable<\n (\n voteMinimum: Option<u128> | null | Uint8Array | u128 | AnyNumber,\n computeDifficulty: Option<u128> | null | Uint8Array | u128 | AnyNumber,\n ) => SubmittableExtrinsic<ApiType>,\n [Option<u128>, Option<u128>]\n >;\n };\n chainTransfer: {\n sendToLocalchain: AugmentedSubmittable<\n (\n amount: Compact<u128> | AnyNumber | Uint8Array,\n notaryId: u32 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Compact<u128>, u32]\n >;\n };\n domains: {\n setZoneRecord: AugmentedSubmittable<\n (\n domainHash: H256 | string | Uint8Array,\n zoneRecord:\n | ArgonPrimitivesDomainZoneRecord\n | { paymentAccount?: any; notaryId?: any; versions?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [H256, ArgonPrimitivesDomainZoneRecord]\n >;\n };\n grandpa: {\n /**\n * Note that the current authority set of the GRANDPA finality gadget has stalled.\n *\n * This will trigger a forced authority set change at the beginning of the next session, to\n * be enacted `delay` blocks after that. The `delay` should be high enough to safely assume\n * that the block signalling the forced change will not be re-orged e.g. 1000 blocks.\n * The block production rate (which may be slowed down because of finality lagging) should\n * be taken into account when choosing the `delay`. The GRANDPA voters based on the new\n * authority will start voting on top of `best_finalized_block_number` for new finalized\n * blocks. `best_finalized_block_number` should be the highest of the latest finalized\n * block of all validators of the new authority set.\n *\n * Only callable by root.\n **/\n noteStalled: AugmentedSubmittable<\n (\n delay: u32 | AnyNumber | Uint8Array,\n bestFinalizedBlockNumber: u32 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u32, u32]\n >;\n /**\n * Report voter equivocation/misbehavior. This method will verify the\n * equivocation proof and validate the given key ownership proof\n * against the extracted offender. If both are valid, the offence\n * will be reported.\n **/\n reportEquivocation: AugmentedSubmittable<\n (\n equivocationProof:\n | SpConsensusGrandpaEquivocationProof\n | { setId?: any; equivocation?: any }\n | string\n | Uint8Array,\n keyOwnerProof: SpCoreVoid | null,\n ) => SubmittableExtrinsic<ApiType>,\n [SpConsensusGrandpaEquivocationProof, SpCoreVoid]\n >;\n /**\n * Report voter equivocation/misbehavior. This method will verify the\n * equivocation proof and validate the given key ownership proof\n * against the extracted offender. If both are valid, the offence\n * will be reported.\n *\n * This extrinsic must be called unsigned and it is expected that only\n * block authors will call it (validated in `ValidateUnsigned`), as such\n * if the block author is defined it will be defined as the equivocation\n * reporter.\n **/\n reportEquivocationUnsigned: AugmentedSubmittable<\n (\n equivocationProof:\n | SpConsensusGrandpaEquivocationProof\n | { setId?: any; equivocation?: any }\n | string\n | Uint8Array,\n keyOwnerProof: SpCoreVoid | null,\n ) => SubmittableExtrinsic<ApiType>,\n [SpConsensusGrandpaEquivocationProof, SpCoreVoid]\n >;\n };\n ismp: {\n /**\n * Create a consensus client, using a subjectively chosen consensus state. This can also\n * be used to overwrite an existing consensus state. The dispatch origin for this\n * call must be `T::AdminOrigin`.\n *\n * - `message`: [`CreateConsensusState`] struct.\n *\n * Emits [`Event::ConsensusClientCreated`] if successful.\n **/\n createConsensusClient: AugmentedSubmittable<\n (\n message:\n | IsmpMessagingCreateConsensusState\n | {\n consensusState?: any;\n consensusClientId?: any;\n consensusStateId?: any;\n unbondingPeriod?: any;\n challengePeriods?: any;\n stateMachineCommitments?: any;\n }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [IsmpMessagingCreateConsensusState]\n >;\n /**\n * Add more funds to a message (request or response) to be used for delivery and execution.\n *\n * Should not be called on a message that has been completed (delivered or timed-out) as\n * those funds will be lost forever.\n **/\n fundMessage: AugmentedSubmittable<\n (\n message:\n | PalletIsmpUtilsFundMessageParams\n | { commitment?: any; amount?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletIsmpUtilsFundMessageParams]\n >;\n /**\n * Execute the provided batch of ISMP messages, this will short-circuit and revert if any\n * of the provided messages are invalid. This is an unsigned extrinsic that permits anyone\n * execute ISMP messages for free, provided they have valid proofs and the messages have\n * not been previously processed.\n *\n * The dispatch origin for this call must be an unsigned one.\n *\n * - `messages`: the messages to handle or process.\n *\n * Emits different message events based on the Message received if successful.\n **/\n handleUnsigned: AugmentedSubmittable<\n (\n messages:\n | Vec<IsmpMessagingMessage>\n | (\n | IsmpMessagingMessage\n | { Consensus: any }\n | { FraudProof: any }\n | { Request: any }\n | { Response: any }\n | { Timeout: any }\n | string\n | Uint8Array\n )[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<IsmpMessagingMessage>]\n >;\n /**\n * Modify the unbonding period and challenge period for a consensus state.\n * The dispatch origin for this call must be `T::AdminOrigin`.\n *\n * - `message`: `UpdateConsensusState` struct.\n **/\n updateConsensusState: AugmentedSubmittable<\n (\n message:\n | PalletIsmpUtilsUpdateConsensusState\n | { consensusStateId?: any; unbondingPeriod?: any; challengePeriods?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletIsmpUtilsUpdateConsensusState]\n >;\n };\n ismpGrandpa: {\n /**\n * Add some a state machine to the list of supported state machines\n **/\n addStateMachines: AugmentedSubmittable<\n (\n newStateMachines:\n | Vec<IsmpGrandpaAddStateMachine>\n | (\n | IsmpGrandpaAddStateMachine\n | { stateMachine?: any; slotDuration?: any }\n | string\n | Uint8Array\n )[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<IsmpGrandpaAddStateMachine>]\n >;\n /**\n * Remove a state machine from the list of supported state machines\n **/\n removeStateMachines: AugmentedSubmittable<\n (\n stateMachines:\n | Vec<IsmpHostStateMachine>\n | (\n | IsmpHostStateMachine\n | { Evm: any }\n | { Polkadot: any }\n | { Kusama: any }\n | { Substrate: any }\n | { Tendermint: any }\n | { Relay: any }\n | string\n | Uint8Array\n )[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<IsmpHostStateMachine>]\n >;\n };\n miningSlot: {\n /**\n * Submit a bid for a mining slot in the next cohort. Once all spots are filled in the next\n * cohort, a bidder can be supplanted by supplying a higher bid.\n *\n * Each slot has `MaxCohortSize` spots available.\n *\n * To be eligible for a slot, you must have the required ownership tokens (argonots) in\n * this account. The required amount is calculated as a percentage of the total ownership\n * tokens in the network. This percentage is adjusted before the beginning of each slot.\n *\n * If your bid is no longer winning, a `SlotBidderDropped` event will be emitted. By\n * monitoring for this event, you will be able to ensure your bid is accepted.\n *\n * NOTE: bidding for each slot will be closed at a random block within\n * `mining_config.ticks_before_bid_end_for_vrf_close` blocks of the slot end time.\n *\n * The slot duration can be calculated as `BlocksBetweenSlots * MaxMiners / MaxCohortSize`.\n *\n * Parameters:\n * - `bid`: The amount of argons to bid\n * - `keys`: The session \"hot\" keys for the slot (BlockSealAuthorityId and GrandpaId).\n * - `mining_account_id`: This account_id allows you to operate as this miner account id,\n * but use funding (argonots and bid) from the submitting account\n **/\n bid: AugmentedSubmittable<\n (\n bid: u128 | AnyNumber | Uint8Array,\n keys:\n | ArgonRuntimeSessionKeys\n | { grandpa?: any; blockSealAuthority?: any }\n | string\n | Uint8Array,\n miningAccountId: Option<AccountId32> | null | Uint8Array | AccountId32 | string,\n ) => SubmittableExtrinsic<ApiType>,\n [u128, ArgonRuntimeSessionKeys, Option<AccountId32>]\n >;\n /**\n * Admin function to update the mining slot delay.\n **/\n configureMiningSlotDelay: AugmentedSubmittable<\n (\n miningSlotDelay: Option<u64> | null | Uint8Array | u64 | AnyNumber,\n ticksBeforeBidEndForVrfClose: Option<u64> | null | Uint8Array | u64 | AnyNumber,\n ) => SubmittableExtrinsic<ApiType>,\n [Option<u64>, Option<u64>]\n >;\n };\n mint: {};\n multisig: {\n /**\n * Register approval for a dispatch to be made from a deterministic composite account if\n * approved by a total of `threshold - 1` of `other_signatories`.\n *\n * Payment: `DepositBase` will be reserved if this is the first approval, plus\n * `threshold` times `DepositFactor`. It is returned once this dispatch happens or\n * is cancelled.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * - `threshold`: The total number of approvals for this dispatch before it is executed.\n * - `other_signatories`: The accounts (other than the sender) who can approve this\n * dispatch. May not be empty.\n * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is\n * not the first approval, then it must be `Some`, with the timepoint (block number and\n * transaction index) of the first approval transaction.\n * - `call_hash`: The hash of the call to be executed.\n *\n * NOTE: If this is the final approval, you will want to use `as_multi` instead.\n *\n * ## Complexity\n * - `O(S)`.\n * - Up to one balance-reserve or unreserve operation.\n * - One passthrough operation, one insert, both `O(S)` where `S` is the number of\n * signatories. `S` is capped by `MaxSignatories`, with weight being proportional.\n * - One encode & hash, both of complexity `O(S)`.\n * - Up to one binary search and insert (`O(logS + S)`).\n * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.\n * - One event.\n * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit\n * taken for its lifetime of `DepositBase + threshold * DepositFactor`.\n **/\n approveAsMulti: AugmentedSubmittable<\n (\n threshold: u16 | AnyNumber | Uint8Array,\n otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[],\n maybeTimepoint:\n | Option<PalletMultisigTimepoint>\n | null\n | Uint8Array\n | PalletMultisigTimepoint\n | { height?: any; index?: any }\n | string,\n callHash: U8aFixed | string | Uint8Array,\n maxWeight:\n | SpWeightsWeightV2Weight\n | { refTime?: any; proofSize?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u16, Vec<AccountId32>, Option<PalletMultisigTimepoint>, U8aFixed, SpWeightsWeightV2Weight]\n >;\n /**\n * Register approval for a dispatch to be made from a deterministic composite account if\n * approved by a total of `threshold - 1` of `other_signatories`.\n *\n * If there are enough, then dispatch the call.\n *\n * Payment: `DepositBase` will be reserved if this is the first approval, plus\n * `threshold` times `DepositFactor`. It is returned once this dispatch happens or\n * is cancelled.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * - `threshold`: The total number of approvals for this dispatch before it is executed.\n * - `other_signatories`: The accounts (other than the sender) who can approve this\n * dispatch. May not be empty.\n * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is\n * not the first approval, then it must be `Some`, with the timepoint (block number and\n * transaction index) of the first approval transaction.\n * - `call`: The call to be executed.\n *\n * NOTE: Unless this is the final approval, you will generally want to use\n * `approve_as_multi` instead, since it only requires a hash of the call.\n *\n * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise\n * on success, result is `Ok` and the result from the interior call, if it was executed,\n * may be found in the deposited `MultisigExecuted` event.\n *\n * ## Complexity\n * - `O(S + Z + Call)`.\n * - Up to one balance-reserve or unreserve operation.\n * - One passthrough operation, one insert, both `O(S)` where `S` is the number of\n * signatories. `S` is capped by `MaxSignatories`, with weight being proportional.\n * - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.\n * - One encode & hash, both of complexity `O(S)`.\n * - Up to one binary search and insert (`O(logS + S)`).\n * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.\n * - One event.\n * - The weight of the `call`.\n * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit\n * taken for its lifetime of `DepositBase + threshold * DepositFactor`.\n **/\n asMulti: AugmentedSubmittable<\n (\n threshold: u16 | AnyNumber | Uint8Array,\n otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[],\n maybeTimepoint:\n | Option<PalletMultisigTimepoint>\n | null\n | Uint8Array\n | PalletMultisigTimepoint\n | { height?: any; index?: any }\n | string,\n call: Call | IMethod | string | Uint8Array,\n maxWeight:\n | SpWeightsWeightV2Weight\n | { refTime?: any; proofSize?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u16, Vec<AccountId32>, Option<PalletMultisigTimepoint>, Call, SpWeightsWeightV2Weight]\n >;\n /**\n * Immediately dispatch a multi-signature call using a single approval from the caller.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * - `other_signatories`: The accounts (other than the sender) who are part of the\n * multi-signature, but do not participate in the approval process.\n * - `call`: The call to be executed.\n *\n * Result is equivalent to the dispatched result.\n *\n * ## Complexity\n * O(Z + C) where Z is the length of the call and C its execution weight.\n **/\n asMultiThreshold1: AugmentedSubmittable<\n (\n otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[],\n call: Call | IMethod | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<AccountId32>, Call]\n >;\n /**\n * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously\n * for this operation will be unreserved on success.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * - `threshold`: The total number of approvals for this dispatch before it is executed.\n * - `other_signatories`: The accounts (other than the sender) who can approve this\n * dispatch. May not be empty.\n * - `timepoint`: The timepoint (block number and transaction index) of the first approval\n * transaction for this dispatch.\n * - `call_hash`: The hash of the call to be executed.\n *\n * ## Complexity\n * - `O(S)`.\n * - Up to one balance-reserve or unreserve operation.\n * - One passthrough operation, one insert, both `O(S)` where `S` is the number of\n * signatories. `S` is capped by `MaxSignatories`, with weight being proportional.\n * - One encode & hash, both of complexity `O(S)`.\n * - One event.\n * - I/O: 1 read `O(S)`, one remove.\n * - Storage: removes one item.\n **/\n cancelAsMulti: AugmentedSubmittable<\n (\n threshold: u16 | AnyNumber | Uint8Array,\n otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[],\n timepoint: PalletMultisigTimepoint | { height?: any; index?: any } | string | Uint8Array,\n callHash: U8aFixed | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u16, Vec<AccountId32>, PalletMultisigTimepoint, U8aFixed]\n >;\n /**\n * Poke the deposit reserved for an existing multisig operation.\n *\n * The dispatch origin for this call must be _Signed_ and must be the original depositor of\n * the multisig operation.\n *\n * The transaction fee is waived if the deposit amount has changed.\n *\n * - `threshold`: The total number of approvals needed for this multisig.\n * - `other_signatories`: The accounts (other than the sender) who are part of the\n * multisig.\n * - `call_hash`: The hash of the call this deposit is reserved for.\n *\n * Emits `DepositPoked` if successful.\n **/\n pokeDeposit: AugmentedSubmittable<\n (\n threshold: u16 | AnyNumber | Uint8Array,\n otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[],\n callHash: U8aFixed | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u16, Vec<AccountId32>, U8aFixed]\n >;\n };\n notaries: {\n activate: AugmentedSubmittable<\n (operatorAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [AccountId32]\n >;\n propose: AugmentedSubmittable<\n (\n meta:\n | ArgonPrimitivesNotaryNotaryMeta\n | { name?: any; public?: any; hosts?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [ArgonPrimitivesNotaryNotaryMeta]\n >;\n /**\n * Update the metadata of a notary, to be effective at the given tick height, which must be\n * >= MetaChangesTickDelay ticks in the future.\n **/\n update: AugmentedSubmittable<\n (\n notaryId: Compact<u32> | AnyNumber | Uint8Array,\n meta:\n | ArgonPrimitivesNotaryNotaryMeta\n | { name?: any; public?: any; hosts?: any }\n | string\n | Uint8Array,\n effectiveTick: Compact<u64> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Compact<u32>, ArgonPrimitivesNotaryNotaryMeta, Compact<u64>]\n >;\n };\n notebook: {\n submit: AugmentedSubmittable<\n (\n notebooks:\n | Vec<ArgonPrimitivesNotebookSignedNotebookHeader>\n | (\n | ArgonPrimitivesNotebookSignedNotebookHeader\n | { header?: any; signature?: any }\n | string\n | Uint8Array\n )[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<ArgonPrimitivesNotebookSignedNotebookHeader>]\n >;\n unlock: AugmentedSubmittable<\n (notaryId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [u32]\n >;\n };\n operationalAccounts: {\n /**\n * Activate an eligible operational account from any managed account.\n **/\n activate: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;\n /**\n * Claim pending operational rewards to any managed account.\n **/\n claimRewards: AugmentedSubmittable<\n (amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [u128]\n >;\n /**\n * Force-update operational progress markers for an account.\n **/\n forceSetProgress: AugmentedSubmittable<\n (\n owner: AccountId32 | string | Uint8Array,\n patch:\n | PalletOperationalAccountsOperationalProgressPatch\n | {\n hasUniswapTransfer?: any;\n vaultCreated?: any;\n hasTreasuryPoolParticipation?: any;\n observedBitcoinTotal?: any;\n observedMiningSeatTotal?: any;\n }\n | string\n | Uint8Array,\n updateOperationalProgress: bool | boolean | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [AccountId32, PalletOperationalAccountsOperationalProgressPatch, bool]\n >;\n /**\n * Register vault, mining funding, and bot accounts for an operational account.\n * Any account in the registration may submit the transaction.\n * If a referral proof is provided, the registration records the sponsor relationship.\n **/\n register: AugmentedSubmittable<\n (\n registration: PalletOperationalAccountsRegistration | { V1: any } | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletOperationalAccountsRegistration]\n >;\n /**\n * Store an opaque encrypted sponsor server payload for a sponsored operational account.\n **/\n setEncryptedServerForSponsee: AugmentedSubmittable<\n (\n sponsee: AccountId32 | string | Uint8Array,\n encryptedServer: Bytes | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [AccountId32, Bytes]\n >;\n /**\n * Update reward amounts for operational accounts.\n **/\n setRewardConfig: AugmentedSubmittable<\n (\n operationalReferralReward: u128 | AnyNumber | Uint8Array,\n referralBonusReward: u128 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u128, u128]\n >;\n };\n ownership: {\n /**\n * Burn the specified liquid free balance from the origin account.\n *\n * If the origin's account ends up below the existential deposit as a result\n * of the burn and `keep_alive` is false, the account will be reaped.\n *\n * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,\n * this `burn` operation will reduce total issuance by the amount _burned_.\n **/\n burn: AugmentedSubmittable<\n (\n value: Compact<u128> | AnyNumber | Uint8Array,\n keepAlive: bool | boolean | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Compact<u128>, bool]\n >;\n /**\n * Adjust the total issuance in a saturating way.\n *\n * Can only be called by root and always needs a positive `delta`.\n *\n * # Example\n **/\n forceAdjustTotalIssuance: AugmentedSubmittable<\n (\n direction:\n | PalletBalancesAdjustmentDirection\n | 'Increase'\n | 'Decrease'\n | number\n | Uint8Array,\n delta: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletBalancesAdjustmentDirection, Compact<u128>]\n >;\n /**\n * Set the regular balance of a given account.\n *\n * The dispatch origin for this call is `root`.\n **/\n forceSetBalance: AugmentedSubmittable<\n (\n who:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n newFree: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, Compact<u128>]\n >;\n /**\n * Exactly as `transfer_allow_death`, except the origin must be root and the source account\n * may be specified.\n **/\n forceTransfer: AugmentedSubmittable<\n (\n source:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n dest:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n value: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, MultiAddress, Compact<u128>]\n >;\n /**\n * Unreserve some balance from a user by force.\n *\n * Can only be called by ROOT.\n **/\n forceUnreserve: AugmentedSubmittable<\n (\n who:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n amount: u128 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, u128]\n >;\n /**\n * Transfer the entire transferable balance from the caller account.\n *\n * NOTE: This function only attempts to transfer _transferable_ balances. This means that\n * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be\n * transferred by this function. To ensure that this function results in a killed account,\n * you might need to prepare the account by removing any reference counters, storage\n * deposits, etc...\n *\n * The dispatch origin of this call must be Signed.\n *\n * - `dest`: The recipient of the transfer.\n * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all\n * of the funds the account has, causing the sender account to be killed (false), or\n * transfer everything except at least the existential deposit, which will guarantee to\n * keep the sender account alive (true).\n **/\n transferAll: AugmentedSubmittable<\n (\n dest:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n keepAlive: bool | boolean | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, bool]\n >;\n /**\n * Transfer some liquid free balance to another account.\n *\n * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver.\n * If the sender's account is below the existential deposit as a result\n * of the transfer, the account will be reaped.\n *\n * The dispatch origin for this call must be `Signed` by the transactor.\n **/\n transferAllowDeath: AugmentedSubmittable<\n (\n dest:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n value: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, Compact<u128>]\n >;\n /**\n * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not\n * kill the origin account.\n *\n * 99% of the time you want [`transfer_allow_death`] instead.\n *\n * [`transfer_allow_death`]: struct.Pallet.html#method.transfer\n **/\n transferKeepAlive: AugmentedSubmittable<\n (\n dest:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n value: Compact<u128> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, Compact<u128>]\n >;\n /**\n * Upgrade a specified account.\n *\n * - `origin`: Must be `Signed`.\n * - `who`: The account to be upgraded.\n *\n * This will waive the transaction fee if at least all but 10% of the accounts needed to\n * be upgraded. (We let some not have to be upgraded just in order to allow for the\n * possibility of churn).\n **/\n upgradeAccounts: AugmentedSubmittable<\n (\n who: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<AccountId32>]\n >;\n };\n priceIndex: {\n /**\n * Sets the operator account id (only executable by the Root account)\n *\n * # Arguments\n * * `account_id` - the account id of the operator\n **/\n setOperator: AugmentedSubmittable<\n (accountId: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [AccountId32]\n >;\n /**\n * Submit the latest price index. Only valid for the configured operator account\n **/\n submit: AugmentedSubmittable<\n (\n index:\n | PalletPriceIndexPriceIndex\n | {\n btcUsdPrice?: any;\n argonotUsdPrice?: any;\n argonUsdPrice?: any;\n argonUsdTargetPrice?: any;\n argonTimeWeightedAverageLiquidity?: any;\n tick?: any;\n }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletPriceIndexPriceIndex]\n >;\n };\n proxy: {\n /**\n * Register a proxy account for the sender that is able to make calls on its behalf.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * Parameters:\n * - `proxy`: The account that the `caller` would like to make a proxy.\n * - `proxy_type`: The permissions allowed for this proxy account.\n * - `delay`: The announcement period required of the initial proxy. Will generally be\n * zero.\n **/\n addProxy: AugmentedSubmittable<\n (\n delegate:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n proxyType:\n | ArgonRuntimeProxyType\n | 'Any'\n | 'NonTransfer'\n | 'PriceIndex'\n | 'MiningBid'\n | 'MiningBidRealPaysFee'\n | 'Bitcoin'\n | 'VaultAdmin'\n | 'BitcoinInitializeFor'\n | number\n | Uint8Array,\n delay: u32 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, ArgonRuntimeProxyType, u32]\n >;\n /**\n * Publish the hash of a proxy-call that will be made in the future.\n *\n * This must be called some number of blocks before the corresponding `proxy` is attempted\n * if the delay associated with the proxy relationship is greater than zero.\n *\n * No more than `MaxPending` announcements may be made at any one time.\n *\n * This will take a deposit of `AnnouncementDepositFactor` as well as\n * `AnnouncementDepositBase` if there are no other pending announcements.\n *\n * The dispatch origin for this call must be _Signed_ and a proxy of `real`.\n *\n * Parameters:\n * - `real`: The account that the proxy will make a call on behalf of.\n * - `call_hash`: The hash of the call to be made by the `real` account.\n **/\n announce: AugmentedSubmittable<\n (\n real:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n callHash: H256 | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, H256]\n >;\n /**\n * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and\n * initialize it with a proxy of `proxy_type` for `origin` sender.\n *\n * Requires a `Signed` origin.\n *\n * - `proxy_type`: The type of the proxy that the sender will be registered as over the\n * new account. This will almost always be the most permissive `ProxyType` possible to\n * allow for maximum flexibility.\n * - `index`: A disambiguation index, in case this is called multiple times in the same\n * transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just\n * want to use `0`.\n * - `delay`: The announcement period required of the initial proxy. Will generally be\n * zero.\n *\n * Fails with `Duplicate` if this has already been called in this transaction, from the\n * same sender, with the same parameters.\n *\n * Fails if there are insufficient funds to pay for deposit.\n **/\n createPure: AugmentedSubmittable<\n (\n proxyType:\n | ArgonRuntimeProxyType\n | 'Any'\n | 'NonTransfer'\n | 'PriceIndex'\n | 'MiningBid'\n | 'MiningBidRealPaysFee'\n | 'Bitcoin'\n | 'VaultAdmin'\n | 'BitcoinInitializeFor'\n | number\n | Uint8Array,\n delay: u32 | AnyNumber | Uint8Array,\n index: u16 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [ArgonRuntimeProxyType, u32, u16]\n >;\n /**\n * Removes a previously spawned pure proxy.\n *\n * WARNING: **All access to this account will be lost.** Any funds held in it will be\n * inaccessible.\n *\n * Requires a `Signed` origin, and the sender account must have been created by a call to\n * `create_pure` with corresponding parameters.\n *\n * - `spawner`: The account that originally called `create_pure` to create this account.\n * - `index`: The disambiguation index originally passed to `create_pure`. Probably `0`.\n * - `proxy_type`: The proxy type originally passed to `create_pure`.\n * - `height`: The height of the chain when the call to `create_pure` was processed.\n * - `ext_index`: The extrinsic index in which the call to `create_pure` was processed.\n *\n * Fails with `NoPermission` in case the caller is not a previously created pure\n * account whose `create_pure` call has corresponding parameters.\n **/\n killPure: AugmentedSubmittable<\n (\n spawner:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n proxyType:\n | ArgonRuntimeProxyType\n | 'Any'\n | 'NonTransfer'\n | 'PriceIndex'\n | 'MiningBid'\n | 'MiningBidRealPaysFee'\n | 'Bitcoin'\n | 'VaultAdmin'\n | 'BitcoinInitializeFor'\n | number\n | Uint8Array,\n index: u16 | AnyNumber | Uint8Array,\n height: Compact<u32> | AnyNumber | Uint8Array,\n extIndex: Compact<u32> | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, ArgonRuntimeProxyType, u16, Compact<u32>, Compact<u32>]\n >;\n /**\n * Poke / Adjust deposits made for proxies and announcements based on current values.\n * This can be used by accounts to possibly lower their locked amount.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * The transaction fee is waived if the deposit amount has changed.\n *\n * Emits `DepositPoked` if successful.\n **/\n pokeDeposit: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;\n /**\n * Dispatch the given `call` from an account that the sender is authorised for through\n * `add_proxy`.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * Parameters:\n * - `real`: The account that the proxy will make a call on behalf of.\n * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.\n * - `call`: The call to be made by the `real` account.\n **/\n proxy: AugmentedSubmittable<\n (\n real:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n forceProxyType:\n | Option<ArgonRuntimeProxyType>\n | null\n | Uint8Array\n | ArgonRuntimeProxyType\n | 'Any'\n | 'NonTransfer'\n | 'PriceIndex'\n | 'MiningBid'\n | 'MiningBidRealPaysFee'\n | 'Bitcoin'\n | 'VaultAdmin'\n | 'BitcoinInitializeFor'\n | number,\n call: Call | IMethod | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, Option<ArgonRuntimeProxyType>, Call]\n >;\n /**\n * Dispatch the given `call` from an account that the sender is authorized for through\n * `add_proxy`.\n *\n * Removes any corresponding announcement(s).\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * Parameters:\n * - `real`: The account that the proxy will make a call on behalf of.\n * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.\n * - `call`: The call to be made by the `real` account.\n **/\n proxyAnnounced: AugmentedSubmittable<\n (\n delegate:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n real:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n forceProxyType:\n | Option<ArgonRuntimeProxyType>\n | null\n | Uint8Array\n | ArgonRuntimeProxyType\n | 'Any'\n | 'NonTransfer'\n | 'PriceIndex'\n | 'MiningBid'\n | 'MiningBidRealPaysFee'\n | 'Bitcoin'\n | 'VaultAdmin'\n | 'BitcoinInitializeFor'\n | number,\n call: Call | IMethod | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, MultiAddress, Option<ArgonRuntimeProxyType>, Call]\n >;\n /**\n * Remove the given announcement of a delegate.\n *\n * May be called by a target (proxied) account to remove a call that one of their delegates\n * (`delegate`) has announced they want to execute. The deposit is returned.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * Parameters:\n * - `delegate`: The account that previously announced the call.\n * - `call_hash`: The hash of the call to be made.\n **/\n rejectAnnouncement: AugmentedSubmittable<\n (\n delegate:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n callHash: H256 | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, H256]\n >;\n /**\n * Remove a given announcement.\n *\n * May be called by a proxy account to remove a call they previously announced and return\n * the deposit.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * Parameters:\n * - `real`: The account that the proxy will make a call on behalf of.\n * - `call_hash`: The hash of the call to be made by the `real` account.\n **/\n removeAnnouncement: AugmentedSubmittable<\n (\n real:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n callHash: H256 | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, H256]\n >;\n /**\n * Unregister all proxy accounts for the sender.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * WARNING: This may be called on accounts created by `create_pure`, however if done, then\n * the unreserved fees will be inaccessible. **All access to this account will be lost.**\n **/\n removeProxies: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;\n /**\n * Unregister a proxy account for the sender.\n *\n * The dispatch origin for this call must be _Signed_.\n *\n * Parameters:\n * - `proxy`: The account that the `caller` would like to remove as a proxy.\n * - `proxy_type`: The permissions currently enabled for the removed proxy account.\n **/\n removeProxy: AugmentedSubmittable<\n (\n delegate:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n proxyType:\n | ArgonRuntimeProxyType\n | 'Any'\n | 'NonTransfer'\n | 'PriceIndex'\n | 'MiningBid'\n | 'MiningBidRealPaysFee'\n | 'Bitcoin'\n | 'VaultAdmin'\n | 'BitcoinInitializeFor'\n | number\n | Uint8Array,\n delay: u32 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, ArgonRuntimeProxyType, u32]\n >;\n };\n sudo: {\n /**\n * Permanently removes the sudo key.\n *\n * **This cannot be un-done.**\n **/\n removeKey: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;\n /**\n * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo\n * key.\n **/\n setKey: AugmentedSubmittable<\n (\n updated:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress]\n >;\n /**\n * Authenticates the sudo key and dispatches a function call with `Root` origin.\n **/\n sudo: AugmentedSubmittable<\n (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [Call]\n >;\n /**\n * Authenticates the sudo key and dispatches a function call with `Signed` origin from\n * a given account.\n *\n * The dispatch origin for this call must be _Signed_.\n **/\n sudoAs: AugmentedSubmittable<\n (\n who:\n | MultiAddress\n | { Id: any }\n | { Index: any }\n | { Raw: any }\n | { Address32: any }\n | { Address20: any }\n | string\n | Uint8Array,\n call: Call | IMethod | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [MultiAddress, Call]\n >;\n /**\n * Authenticates the sudo key and dispatches a function call with `Root` origin.\n * This function does not check the weight of the call, and instead allows the\n * Sudo user to specify the weight of the call.\n *\n * The dispatch origin for this call must be _Signed_.\n **/\n sudoUncheckedWeight: AugmentedSubmittable<\n (\n call: Call | IMethod | string | Uint8Array,\n weight:\n | SpWeightsWeightV2Weight\n | { refTime?: any; proofSize?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Call, SpWeightsWeightV2Weight]\n >;\n };\n system: {\n /**\n * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.\n *\n * If the authorization required a version check, this call will ensure the spec name\n * remains unchanged and that the spec version has increased.\n *\n * Depending on the runtime's `OnSetCode` configuration, this function may directly apply\n * the new `code` in the same block or attempt to schedule the upgrade.\n *\n * All origins are allowed.\n **/\n applyAuthorizedUpgrade: AugmentedSubmittable<\n (code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [Bytes]\n >;\n /**\n * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied\n * later.\n *\n * This call requires Root origin.\n **/\n authorizeUpgrade: AugmentedSubmittable<\n (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [H256]\n >;\n /**\n * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied\n * later.\n *\n * WARNING: This authorizes an upgrade that will take place without any safety checks, for\n * example that the spec name remains the same and that the version number increases. Not\n * recommended for normal use. Use `authorize_upgrade` instead.\n *\n * This call requires Root origin.\n **/\n authorizeUpgradeWithoutChecks: AugmentedSubmittable<\n (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [H256]\n >;\n /**\n * Kill all storage items with a key that starts with the given prefix.\n *\n * **NOTE:** We rely on the Root origin to provide us the number of subkeys under\n * the prefix we are removing to accurately calculate the weight of this function.\n **/\n killPrefix: AugmentedSubmittable<\n (\n prefix: Bytes | string | Uint8Array,\n subkeys: u32 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Bytes, u32]\n >;\n /**\n * Kill some items from storage.\n **/\n killStorage: AugmentedSubmittable<\n (keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>,\n [Vec<Bytes>]\n >;\n /**\n * Make some on-chain remark.\n *\n * Can be executed by every `origin`.\n **/\n remark: AugmentedSubmittable<\n (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [Bytes]\n >;\n /**\n * Make some on-chain remark and emit event.\n **/\n remarkWithEvent: AugmentedSubmittable<\n (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [Bytes]\n >;\n /**\n * Set the new runtime code.\n **/\n setCode: AugmentedSubmittable<\n (code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [Bytes]\n >;\n /**\n * Set the new runtime code without doing any checks of the given `code`.\n *\n * Note that runtime upgrades will not run if this is called with a not-increasing spec\n * version!\n **/\n setCodeWithoutChecks: AugmentedSubmittable<\n (code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [Bytes]\n >;\n /**\n * Set the number of pages in the WebAssembly environment's heap.\n **/\n setHeapPages: AugmentedSubmittable<\n (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [u64]\n >;\n /**\n * Set some items of storage.\n **/\n setStorage: AugmentedSubmittable<\n (\n items:\n | Vec<ITuple<[Bytes, Bytes]>>\n | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<ITuple<[Bytes, Bytes]>>]\n >;\n };\n ticks: {};\n timestamp: {\n /**\n * Set the current time.\n *\n * This call should be invoked exactly once per block. It will panic at the finalization\n * phase, if this call hasn't been invoked by that time.\n *\n * The timestamp should be greater than the previous one by the amount specified by\n * [`Config::MinimumPeriod`].\n *\n * The dispatch origin for this call must be _None_.\n *\n * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware\n * that changing the complexity of this call could result exhausting the resources in a\n * block to execute any other calls.\n *\n * ## Complexity\n * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)\n * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in\n * `on_finalize`)\n * - 1 event handler `on_timestamp_set`. Must be `O(1)`.\n **/\n set: AugmentedSubmittable<\n (now: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [Compact<u64>]\n >;\n };\n tokenGateway: {\n /**\n * Registers a multi-chain ERC6160 asset without sending any dispatch request.\n * You should use register_asset_locally when you want to enable token gateway transfers\n * for an asset that already exists on an external chain.\n **/\n createErc6160Asset: AugmentedSubmittable<\n (\n asset:\n | PalletTokenGatewayAssetRegistration\n | { localId?: any; reg?: any; native?: any; precision?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletTokenGatewayAssetRegistration]\n >;\n /**\n * Set the token gateway address for specified chains\n **/\n setTokenGatewayAddresses: AugmentedSubmittable<\n (addresses: BTreeMap<IsmpHostStateMachine, Bytes>) => SubmittableExtrinsic<ApiType>,\n [BTreeMap<IsmpHostStateMachine, Bytes>]\n >;\n /**\n * Teleports a registered asset\n * locks the asset and dispatches a request to token gateway on the destination\n **/\n teleport: AugmentedSubmittable<\n (\n params:\n | PalletTokenGatewayTeleportParams\n | {\n assetId?: any;\n destination?: any;\n recepient?: any;\n amount?: any;\n timeout?: any;\n tokenGateway?: any;\n relayerFee?: any;\n callData?: any;\n redeem?: any;\n }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletTokenGatewayTeleportParams]\n >;\n /**\n * Update the precision for an existing asset\n **/\n updateAssetPrecision: AugmentedSubmittable<\n (\n update:\n | PalletTokenGatewayPrecisionUpdate\n | { assetId?: any; precisions?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletTokenGatewayPrecisionUpdate]\n >;\n };\n treasury: {\n /**\n * Buy whole `1 ARGON` bonds for a vault.\n *\n * The purchase either enters the accepted list or fails.\n **/\n buyBonds: AugmentedSubmittable<\n (\n vaultId: u32 | AnyNumber | Uint8Array,\n bonds: u32 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u32, u32]\n >;\n /**\n * Liquidate one full bond lot.\n *\n * The lot stops participating right away and is released after the delay.\n **/\n liquidateBondLot: AugmentedSubmittable<\n (bondLotId: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [u64]\n >;\n };\n txPause: {\n /**\n * Pause a call.\n *\n * Can only be called by [`Config::PauseOrigin`].\n * Emits an [`Event::CallPaused`] event on success.\n **/\n pause: AugmentedSubmittable<\n (\n fullName:\n | ITuple<[Bytes, Bytes]>\n | [Bytes | string | Uint8Array, Bytes | string | Uint8Array],\n ) => SubmittableExtrinsic<ApiType>,\n [ITuple<[Bytes, Bytes]>]\n >;\n /**\n * Un-pause a call.\n *\n * Can only be called by [`Config::UnpauseOrigin`].\n * Emits an [`Event::CallUnpaused`] event on success.\n **/\n unpause: AugmentedSubmittable<\n (\n ident:\n | ITuple<[Bytes, Bytes]>\n | [Bytes | string | Uint8Array, Bytes | string | Uint8Array],\n ) => SubmittableExtrinsic<ApiType>,\n [ITuple<[Bytes, Bytes]>]\n >;\n };\n utility: {\n /**\n * Send a call through an indexed pseudonym of the sender.\n *\n * Filter from origin are passed along. The call will be dispatched with an origin which\n * use the same filter as the origin of this call.\n *\n * NOTE: If you need to ensure that any account-based filtering is not honored (i.e.\n * because you expect `proxy` to have been used prior in the call stack and you do not want\n * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`\n * in the Multisig pallet instead.\n *\n * NOTE: Prior to version *12, this was called `as_limited_sub`.\n *\n * The dispatch origin for this call must be _Signed_.\n **/\n asDerivative: AugmentedSubmittable<\n (\n index: u16 | AnyNumber | Uint8Array,\n call: Call | IMethod | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u16, Call]\n >;\n /**\n * Send a batch of dispatch calls.\n *\n * May be called from any origin except `None`.\n *\n * - `calls`: The calls to be dispatched from the same origin. The number of call must not\n * exceed the constant: `batched_calls_limit` (available in constant metadata).\n *\n * If origin is root then the calls are dispatched without checking origin filter. (This\n * includes bypassing `frame_system::Config::BaseCallFilter`).\n *\n * ## Complexity\n * - O(C) where C is the number of calls to be batched.\n *\n * This will return `Ok` in all circumstances. To determine the success of the batch, an\n * event is deposited. If a call failed and the batch was interrupted, then the\n * `BatchInterrupted` event is deposited, along with the number of successful calls made\n * and the error of the failed call. If all were successful, then the `BatchCompleted`\n * event is deposited.\n **/\n batch: AugmentedSubmittable<\n (\n calls: Vec<Call> | (Call | IMethod | string | Uint8Array)[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<Call>]\n >;\n /**\n * Send a batch of dispatch calls and atomically execute them.\n * The whole transaction will rollback and fail if any of the calls failed.\n *\n * May be called from any origin except `None`.\n *\n * - `calls`: The calls to be dispatched from the same origin. The number of call must not\n * exceed the constant: `batched_calls_limit` (available in constant metadata).\n *\n * If origin is root then the calls are dispatched without checking origin filter. (This\n * includes bypassing `frame_system::Config::BaseCallFilter`).\n *\n * ## Complexity\n * - O(C) where C is the number of calls to be batched.\n **/\n batchAll: AugmentedSubmittable<\n (\n calls: Vec<Call> | (Call | IMethod | string | Uint8Array)[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<Call>]\n >;\n /**\n * Dispatches a function call with a provided origin.\n *\n * The dispatch origin for this call must be _Root_.\n *\n * ## Complexity\n * - O(1).\n **/\n dispatchAs: AugmentedSubmittable<\n (\n asOrigin: ArgonRuntimeOriginCaller | { system: any } | string | Uint8Array,\n call: Call | IMethod | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [ArgonRuntimeOriginCaller, Call]\n >;\n /**\n * Dispatches a function call with a provided origin.\n *\n * Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call.\n *\n * The dispatch origin for this call must be _Root_.\n **/\n dispatchAsFallible: AugmentedSubmittable<\n (\n asOrigin: ArgonRuntimeOriginCaller | { system: any } | string | Uint8Array,\n call: Call | IMethod | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [ArgonRuntimeOriginCaller, Call]\n >;\n /**\n * Send a batch of dispatch calls.\n * Unlike `batch`, it allows errors and won't interrupt.\n *\n * May be called from any origin except `None`.\n *\n * - `calls`: The calls to be dispatched from the same origin. The number of call must not\n * exceed the constant: `batched_calls_limit` (available in constant metadata).\n *\n * If origin is root then the calls are dispatch without checking origin filter. (This\n * includes bypassing `frame_system::Config::BaseCallFilter`).\n *\n * ## Complexity\n * - O(C) where C is the number of calls to be batched.\n **/\n forceBatch: AugmentedSubmittable<\n (\n calls: Vec<Call> | (Call | IMethod | string | Uint8Array)[],\n ) => SubmittableExtrinsic<ApiType>,\n [Vec<Call>]\n >;\n /**\n * Dispatch a fallback call in the event the main call fails to execute.\n * May be called from any origin except `None`.\n *\n * This function first attempts to dispatch the `main` call.\n * If the `main` call fails, the `fallback` is attemted.\n * if the fallback is successfully dispatched, the weights of both calls\n * are accumulated and an event containing the main call error is deposited.\n *\n * In the event of a fallback failure the whole call fails\n * with the weights returned.\n *\n * - `main`: The main call to be dispatched. This is the primary action to execute.\n * - `fallback`: The fallback call to be dispatched in case the `main` call fails.\n *\n * ## Dispatch Logic\n * - If the origin is `root`, both the main and fallback calls are executed without\n * applying any origin filters.\n * - If the origin is not `root`, the origin filter is applied to both the `main` and\n * `fallback` calls.\n *\n * ## Use Case\n * - Some use cases might involve submitting a `batch` type call in either main, fallback\n * or both.\n **/\n ifElse: AugmentedSubmittable<\n (\n main: Call | IMethod | string | Uint8Array,\n fallback: Call | IMethod | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Call, Call]\n >;\n /**\n * Dispatch a function call with a specified weight.\n *\n * This function does not check the weight of the call, and instead allows the\n * Root origin to specify the weight of the call.\n *\n * The dispatch origin for this call must be _Root_.\n **/\n withWeight: AugmentedSubmittable<\n (\n call: Call | IMethod | string | Uint8Array,\n weight:\n | SpWeightsWeightV2Weight\n | { refTime?: any; proofSize?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [Call, SpWeightsWeightV2Weight]\n >;\n };\n vaults: {\n /**\n * Stop offering additional bitcoin locks from this vault. Will not affect existing\n * locks. As funds are returned, they will be released to the vault owner.\n **/\n close: AugmentedSubmittable<\n (vaultId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [u32]\n >;\n collect: AugmentedSubmittable<\n (vaultId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>,\n [u32]\n >;\n create: AugmentedSubmittable<\n (\n vaultConfig:\n | PalletVaultsVaultConfig\n | {\n terms?: any;\n name?: any;\n securitization?: any;\n bitcoinXpubkey?: any;\n securitizationRatio?: any;\n }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [PalletVaultsVaultConfig]\n >;\n /**\n * Modify funds allocated by the vault. This will not affect issued bitcoin locks, but will\n * affect the amount of funds available for new ones.\n *\n * The securitization percent must be maintained or increased.\n *\n * The amount allocated may not go below the existing reserved amounts, but you can release\n * funds in this vault as bitcoin locks are released. To stop issuing any more bitcoin\n * locks, use the `close` api.\n **/\n modifyFunding: AugmentedSubmittable<\n (\n vaultId: u32 | AnyNumber | Uint8Array,\n securitization: u128 | AnyNumber | Uint8Array,\n securitizationRatio: u128 | AnyNumber | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u32, u128, u128]\n >;\n /**\n * Change the terms of this vault. The change will be applied at the next mining slot\n * change that is at least `MinTermsModificationBlockDelay` blocks away.\n **/\n modifyTerms: AugmentedSubmittable<\n (\n vaultId: u32 | AnyNumber | Uint8Array,\n terms:\n | ArgonPrimitivesVaultVaultTerms\n | { bitcoinAnnualPercentRate?: any; bitcoinBaseFee?: any; treasuryProfitSharing?: any }\n | string\n | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u32, ArgonPrimitivesVaultVaultTerms]\n >;\n /**\n * Replace the bitcoin xpubkey for this vault. This will not affect existing bitcoin locks,\n * but will be used for any locks after this point. Will be rejected if already\n * used.\n **/\n replaceBitcoinXpub: AugmentedSubmittable<\n (\n vaultId: u32 | AnyNumber | Uint8Array,\n bitcoinXpub: ArgonPrimitivesBitcoinOpaqueBitcoinXpub | string | Uint8Array,\n ) => SubmittableExtrinsic<ApiType>,\n [u32, ArgonPrimitivesBitcoinOpaqueBitcoinXpub]\n >;\n setBitcoinLockDelegate: AugmentedSubmittable<\n (\n delegateAccountId: Option<AccountId32> | null | Uint8Array | AccountId32 | string,\n ) => SubmittableExtrinsic<ApiType>,\n [Option<AccountId32>]\n >;\n setName: AugmentedSubmittable<\n (name: Option<Bytes> | null | Uint8Array | Bytes | string) => SubmittableExtrinsic<ApiType>,\n [Option<Bytes>]\n >;\n };\n } // AugmentedSubmittables\n} // declare module\n","// Auto-generated via `yarn polkadot-types-from-chain`, do not edit\n/* eslint-disable */\n\n// import type lookup before we augment - in some environments\n// this is required to allow for ambient/previous definitions\nimport '@polkadot/rpc-core/types/jsonrpc';\n\nimport type { AugmentedRpc } from '@polkadot/rpc-core/types';\nimport type { Metadata, StorageKey } from '@polkadot/types';\nimport type {\n Bytes,\n HashMap,\n Json,\n Null,\n Option,\n Text,\n U256,\n U64,\n Vec,\n bool,\n f64,\n u32,\n u64,\n} from '@polkadot/types-codec';\nimport type { AnyNumber, Codec } from '@polkadot/types-codec/types';\nimport type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';\nimport type { EpochAuthorship } from '@polkadot/types/interfaces/babe';\nimport type { BeefyVersionedFinalityProof } from '@polkadot/types/interfaces/beefy';\nimport type { BlockHash } from '@polkadot/types/interfaces/chain';\nimport type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';\nimport type { AuthorityId } from '@polkadot/types/interfaces/consensus';\nimport type {\n CodeUploadRequest,\n CodeUploadResult,\n ContractCallRequest,\n ContractExecResult,\n ContractInstantiateResult,\n InstantiateRequestV1,\n} from '@polkadot/types/interfaces/contracts';\nimport type { BlockStats } from '@polkadot/types/interfaces/dev';\nimport type { CreatedBlock } from '@polkadot/types/interfaces/engine';\nimport type {\n EthAccount,\n EthCallRequest,\n EthFeeHistory,\n EthFilter,\n EthFilterChanges,\n EthLog,\n EthReceipt,\n EthRichBlock,\n EthSubKind,\n EthSubParams,\n EthSyncStatus,\n EthTransaction,\n EthTransactionRequest,\n EthWork,\n} from '@polkadot/types/interfaces/eth';\nimport type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';\nimport type {\n EncodedFinalityProofs,\n JustificationNotification,\n ReportedRoundStates,\n} from '@polkadot/types/interfaces/grandpa';\nimport type { MmrHash, MmrLeafBatchProof } from '@polkadot/types/interfaces/mmr';\nimport type { StorageKind } from '@polkadot/types/interfaces/offchain';\nimport type { FeeDetails, RuntimeDispatchInfoV1 } from '@polkadot/types/interfaces/payment';\nimport type { RpcMethods } from '@polkadot/types/interfaces/rpc';\nimport type {\n AccountId,\n BlockNumber,\n H160,\n H256,\n H64,\n Hash,\n Header,\n Index,\n Justification,\n KeyValue,\n SignedBlock,\n StorageData,\n} from '@polkadot/types/interfaces/runtime';\nimport type {\n MigrationStatusResult,\n ReadProof,\n RuntimeVersion,\n TraceBlockResponse,\n} from '@polkadot/types/interfaces/state';\nimport type {\n ApplyExtrinsicResult,\n ChainProperties,\n ChainType,\n Health,\n NetworkState,\n NodeRole,\n PeerInfo,\n SyncState,\n} from '@polkadot/types/interfaces/system';\nimport type { IExtrinsic, Observable } from '@polkadot/types/types';\n\nexport type __AugmentedRpc = AugmentedRpc<() => unknown>;\n\ndeclare module '@polkadot/rpc-core/types/jsonrpc' {\n interface RpcInterface {\n author: {\n /**\n * Returns true if the keystore has private keys for the given public key and key type.\n **/\n hasKey: AugmentedRpc<\n (publicKey: Bytes | string | Uint8Array, keyType: Text | string) => Observable<bool>\n >;\n /**\n * Returns true if the keystore has private keys for the given session public keys.\n **/\n hasSessionKeys: AugmentedRpc<(sessionKeys: Bytes | string | Uint8Array) => Observable<bool>>;\n /**\n * Insert a key into the keystore.\n **/\n insertKey: AugmentedRpc<\n (\n keyType: Text | string,\n suri: Text | string,\n publicKey: Bytes | string | Uint8Array,\n ) => Observable<Bytes>\n >;\n /**\n * Returns all pending extrinsics, potentially grouped by sender\n **/\n pendingExtrinsics: AugmentedRpc<() => Observable<Vec<Extrinsic>>>;\n /**\n * Remove given extrinsic from the pool and temporarily ban it to prevent reimporting\n **/\n removeExtrinsic: AugmentedRpc<\n (\n bytesOrHash:\n | Vec<ExtrinsicOrHash>\n | (ExtrinsicOrHash | { Hash: any } | { Extrinsic: any } | string | Uint8Array)[],\n ) => Observable<Vec<Hash>>\n >;\n /**\n * Generate new session keys and returns the corresponding public keys\n **/\n rotateKeys: AugmentedRpc<() => Observable<Bytes>>;\n /**\n * Submit and subscribe to watch an extrinsic until unsubscribed\n **/\n submitAndWatchExtrinsic: AugmentedRpc<\n (extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable<ExtrinsicStatus>\n >;\n /**\n * Submit a fully formatted extrinsic for block inclusion\n **/\n submitExtrinsic: AugmentedRpc<\n (extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable<Hash>\n >;\n };\n babe: {\n /**\n * Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore\n **/\n epochAuthorship: AugmentedRpc<() => Observable<HashMap<AuthorityId, EpochAuthorship>>>;\n };\n beefy: {\n /**\n * Returns hash of the latest BEEFY finalized block as seen by this client.\n **/\n getFinalizedHead: AugmentedRpc<() => Observable<H256>>;\n /**\n * Returns the block most recently finalized by BEEFY, alongside its justification.\n **/\n subscribeJustifications: AugmentedRpc<() => Observable<BeefyVersionedFinalityProof>>;\n };\n chain: {\n /**\n * Get header and body of a relay chain block\n **/\n getBlock: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable<SignedBlock>>;\n /**\n * Get the block hash for a specific block\n **/\n getBlockHash: AugmentedRpc<\n (blockNumber?: BlockNumber | AnyNumber | Uint8Array) => Observable<BlockHash>\n >;\n /**\n * Get hash of the last finalized block in the canon chain\n **/\n getFinalizedHead: AugmentedRpc<() => Observable<BlockHash>>;\n /**\n * Retrieves the header for a specific block\n **/\n getHeader: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable<Header>>;\n /**\n * Retrieves the newest header via subscription\n **/\n subscribeAllHeads: AugmentedRpc<() => Observable<Header>>;\n /**\n * Retrieves the best finalized header via subscription\n **/\n subscribeFinalizedHeads: AugmentedRpc<() => Observable<Header>>;\n /**\n * Retrieves the best header via subscription\n **/\n subscribeNewHeads: AugmentedRpc<() => Observable<Header>>;\n };\n childstate: {\n /**\n * Returns the keys with prefix from a child storage, leave empty to get all the keys\n **/\n getKeys: AugmentedRpc<\n (\n childKey: PrefixedStorageKey | string | Uint8Array,\n prefix: StorageKey | string | Uint8Array | any,\n at?: Hash | string | Uint8Array,\n ) => Observable<Vec<StorageKey>>\n >;\n /**\n * Returns the keys with prefix from a child storage with pagination support\n **/\n getKeysPaged: AugmentedRpc<\n (\n childKey: PrefixedStorageKey | string | Uint8Array,\n prefix: StorageKey | string | Uint8Array | any,\n count: u32 | AnyNumber | Uint8Array,\n startKey?: StorageKey | string | Uint8Array | any,\n at?: Hash | string | Uint8Array,\n ) => Observable<Vec<StorageKey>>\n >;\n /**\n * Returns a child storage entry at a specific block state\n **/\n getStorage: AugmentedRpc<\n (\n childKey: PrefixedStorageKey | string | Uint8Array,\n key: StorageKey | string | Uint8Array | any,\n at?: Hash | string | Uint8Array,\n ) => Observable<Option<StorageData>>\n >;\n /**\n * Returns child storage entries for multiple keys at a specific block state\n **/\n getStorageEntries: AugmentedRpc<\n (\n childKey: PrefixedStorageKey | string | Uint8Array,\n keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[],\n at?: Hash | string | Uint8Array,\n ) => Observable<Vec<Option<StorageData>>>\n >;\n /**\n * Returns the hash of a child storage entry at a block state\n **/\n getStorageHash: AugmentedRpc<\n (\n childKey: PrefixedStorageKey | string | Uint8Array,\n key: StorageKey | string | Uint8Array | any,\n at?: Hash | string | Uint8Array,\n ) => Observable<Option<Hash>>\n >;\n /**\n * Returns the size of a child storage entry at a block state\n **/\n getStorageSize: AugmentedRpc<\n (\n childKey: PrefixedStorageKey | string | Uint8Array,\n key: StorageKey | string | Uint8Array | any,\n at?: Hash | string | Uint8Array,\n ) => Observable<Option<u64>>\n >;\n };\n contracts: {\n /**\n * @deprecated Use the runtime interface `api.call.contractsApi.call` instead\n * Executes a call to a contract\n **/\n call: AugmentedRpc<\n (\n callRequest:\n | ContractCallRequest\n | {\n origin?: any;\n dest?: any;\n value?: any;\n gasLimit?: any;\n storageDepositLimit?: any;\n inputData?: any;\n }\n | string\n | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<ContractExecResult>\n >;\n /**\n * @deprecated Use the runtime interface `api.call.contractsApi.getStorage` instead\n * Returns the value under a specified storage key in a contract\n **/\n getStorage: AugmentedRpc<\n (\n address: AccountId | string | Uint8Array,\n key: H256 | string | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Option<Bytes>>\n >;\n /**\n * @deprecated Use the runtime interface `api.call.contractsApi.instantiate` instead\n * Instantiate a new contract\n **/\n instantiate: AugmentedRpc<\n (\n request:\n | InstantiateRequestV1\n | { origin?: any; value?: any; gasLimit?: any; code?: any; data?: any; salt?: any }\n | string\n | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<ContractInstantiateResult>\n >;\n /**\n * @deprecated Not available in newer versions of the contracts interfaces\n * Returns the projected time a given contract will be able to sustain paying its rent\n **/\n rentProjection: AugmentedRpc<\n (\n address: AccountId | string | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Option<BlockNumber>>\n >;\n /**\n * @deprecated Use the runtime interface `api.call.contractsApi.uploadCode` instead\n * Upload new code without instantiating a contract from it\n **/\n uploadCode: AugmentedRpc<\n (\n uploadRequest:\n | CodeUploadRequest\n | { origin?: any; code?: any; storageDepositLimit?: any }\n | string\n | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<CodeUploadResult>\n >;\n };\n dev: {\n /**\n * Reexecute the specified `block_hash` and gather statistics while doing so\n **/\n getBlockStats: AugmentedRpc<\n (at: Hash | string | Uint8Array) => Observable<Option<BlockStats>>\n >;\n };\n engine: {\n /**\n * Instructs the manual-seal authorship task to create a new block\n **/\n createBlock: AugmentedRpc<\n (\n createEmpty: bool | boolean | Uint8Array,\n finalize: bool | boolean | Uint8Array,\n parentHash?: BlockHash | string | Uint8Array,\n ) => Observable<CreatedBlock>\n >;\n /**\n * Instructs the manual-seal authorship task to finalize a block\n **/\n finalizeBlock: AugmentedRpc<\n (hash: BlockHash | string | Uint8Array, justification?: Justification) => Observable<bool>\n >;\n };\n eth: {\n /**\n * Returns accounts list.\n **/\n accounts: AugmentedRpc<() => Observable<Vec<H160>>>;\n /**\n * Returns the blockNumber\n **/\n blockNumber: AugmentedRpc<() => Observable<U256>>;\n /**\n * Call contract, returning the output data.\n **/\n call: AugmentedRpc<\n (\n request:\n | EthCallRequest\n | {\n from?: any;\n to?: any;\n gasPrice?: any;\n gas?: any;\n value?: any;\n data?: any;\n nonce?: any;\n }\n | string\n | Uint8Array,\n number?: BlockNumber | AnyNumber | Uint8Array,\n ) => Observable<Bytes>\n >;\n /**\n * Returns the chain ID used for transaction signing at the current best block. None is returned if not available.\n **/\n chainId: AugmentedRpc<() => Observable<U64>>;\n /**\n * Returns block author.\n **/\n coinbase: AugmentedRpc<() => Observable<H160>>;\n /**\n * Estimate gas needed for execution of given contract.\n **/\n estimateGas: AugmentedRpc<\n (\n request:\n | EthCallRequest\n | {\n from?: any;\n to?: any;\n gasPrice?: any;\n gas?: any;\n value?: any;\n data?: any;\n nonce?: any;\n }\n | string\n | Uint8Array,\n number?: BlockNumber | AnyNumber | Uint8Array,\n ) => Observable<U256>\n >;\n /**\n * Returns fee history for given block count & reward percentiles\n **/\n feeHistory: AugmentedRpc<\n (\n blockCount: U256 | AnyNumber | Uint8Array,\n newestBlock: BlockNumber | AnyNumber | Uint8Array,\n rewardPercentiles: Option<Vec<f64>> | null | Uint8Array | Vec<f64> | f64[],\n ) => Observable<EthFeeHistory>\n >;\n /**\n * Returns current gas price.\n **/\n gasPrice: AugmentedRpc<() => Observable<U256>>;\n /**\n * Returns balance of the given account.\n **/\n getBalance: AugmentedRpc<\n (\n address: H160 | string | Uint8Array,\n number?: BlockNumber | AnyNumber | Uint8Array,\n ) => Observable<U256>\n >;\n /**\n * Returns block with given hash.\n **/\n getBlockByHash: AugmentedRpc<\n (\n hash: H256 | string | Uint8Array,\n full: bool | boolean | Uint8Array,\n ) => Observable<Option<EthRichBlock>>\n >;\n /**\n * Returns block with given number.\n **/\n getBlockByNumber: AugmentedRpc<\n (\n block: BlockNumber | AnyNumber | Uint8Array,\n full: bool | boolean | Uint8Array,\n ) => Observable<Option<EthRichBlock>>\n >;\n /**\n * Returns the number of transactions in a block with given hash.\n **/\n getBlockTransactionCountByHash: AugmentedRpc<\n (hash: H256 | string | Uint8Array) => Observable<U256>\n >;\n /**\n * Returns the number of transactions in a block with given block number.\n **/\n getBlockTransactionCountByNumber: AugmentedRpc<\n (block: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>\n >;\n /**\n * Returns the code at given address at given time (block number).\n **/\n getCode: AugmentedRpc<\n (\n address: H160 | string | Uint8Array,\n number?: BlockNumber | AnyNumber | Uint8Array,\n ) => Observable<Bytes>\n >;\n /**\n * Returns filter changes since last poll.\n **/\n getFilterChanges: AugmentedRpc<\n (index: U256 | AnyNumber | Uint8Array) => Observable<EthFilterChanges>\n >;\n /**\n * Returns all logs matching given filter (in a range 'from' - 'to').\n **/\n getFilterLogs: AugmentedRpc<\n (index: U256 | AnyNumber | Uint8Array) => Observable<Vec<EthLog>>\n >;\n /**\n * Returns logs matching given filter object.\n **/\n getLogs: AugmentedRpc<\n (\n filter:\n | EthFilter\n | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any }\n | string\n | Uint8Array,\n ) => Observable<Vec<EthLog>>\n >;\n /**\n * Returns proof for account and storage.\n **/\n getProof: AugmentedRpc<\n (\n address: H160 | string | Uint8Array,\n storageKeys: Vec<H256> | (H256 | string | Uint8Array)[],\n number: BlockNumber | AnyNumber | Uint8Array,\n ) => Observable<EthAccount>\n >;\n /**\n * Returns content of the storage at given address.\n **/\n getStorageAt: AugmentedRpc<\n (\n address: H160 | string | Uint8Array,\n index: U256 | AnyNumber | Uint8Array,\n number?: BlockNumber | AnyNumber | Uint8Array,\n ) => Observable<H256>\n >;\n /**\n * Returns transaction at given block hash and index.\n **/\n getTransactionByBlockHashAndIndex: AugmentedRpc<\n (\n hash: H256 | string | Uint8Array,\n index: U256 | AnyNumber | Uint8Array,\n ) => Observable<EthTransaction>\n >;\n /**\n * Returns transaction by given block number and index.\n **/\n getTransactionByBlockNumberAndIndex: AugmentedRpc<\n (\n number: BlockNumber | AnyNumber | Uint8Array,\n index: U256 | AnyNumber | Uint8Array,\n ) => Observable<EthTransaction>\n >;\n /**\n * Get transaction by its hash.\n **/\n getTransactionByHash: AugmentedRpc<\n (hash: H256 | string | Uint8Array) => Observable<EthTransaction>\n >;\n /**\n * Returns the number of transactions sent from given address at given time (block number).\n **/\n getTransactionCount: AugmentedRpc<\n (\n address: H160 | string | Uint8Array,\n number?: BlockNumber | AnyNumber | Uint8Array,\n ) => Observable<U256>\n >;\n /**\n * Returns transaction receipt by transaction hash.\n **/\n getTransactionReceipt: AugmentedRpc<\n (hash: H256 | string | Uint8Array) => Observable<EthReceipt>\n >;\n /**\n * Returns an uncles at given block and index.\n **/\n getUncleByBlockHashAndIndex: AugmentedRpc<\n (\n hash: H256 | string | Uint8Array,\n index: U256 | AnyNumber | Uint8Array,\n ) => Observable<EthRichBlock>\n >;\n /**\n * Returns an uncles at given block and index.\n **/\n getUncleByBlockNumberAndIndex: AugmentedRpc<\n (\n number: BlockNumber | AnyNumber | Uint8Array,\n index: U256 | AnyNumber | Uint8Array,\n ) => Observable<EthRichBlock>\n >;\n /**\n * Returns the number of uncles in a block with given hash.\n **/\n getUncleCountByBlockHash: AugmentedRpc<\n (hash: H256 | string | Uint8Array) => Observable<U256>\n >;\n /**\n * Returns the number of uncles in a block with given block number.\n **/\n getUncleCountByBlockNumber: AugmentedRpc<\n (number: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>\n >;\n /**\n * Returns the hash of the current block, the seedHash, and the boundary condition to be met.\n **/\n getWork: AugmentedRpc<() => Observable<EthWork>>;\n /**\n * Returns the number of hashes per second that the node is mining with.\n **/\n hashrate: AugmentedRpc<() => Observable<U256>>;\n /**\n * Returns max priority fee per gas\n **/\n maxPriorityFeePerGas: AugmentedRpc<() => Observable<U256>>;\n /**\n * Returns true if client is actively mining new blocks.\n **/\n mining: AugmentedRpc<() => Observable<bool>>;\n /**\n * Returns id of new block filter.\n **/\n newBlockFilter: AugmentedRpc<() => Observable<U256>>;\n /**\n * Returns id of new filter.\n **/\n newFilter: AugmentedRpc<\n (\n filter:\n | EthFilter\n | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any }\n | string\n | Uint8Array,\n ) => Observable<U256>\n >;\n /**\n * Returns id of new block filter.\n **/\n newPendingTransactionFilter: AugmentedRpc<() => Observable<U256>>;\n /**\n * Returns protocol version encoded as a string (quotes are necessary).\n **/\n protocolVersion: AugmentedRpc<() => Observable<u64>>;\n /**\n * Sends signed transaction, returning its hash.\n **/\n sendRawTransaction: AugmentedRpc<(bytes: Bytes | string | Uint8Array) => Observable<H256>>;\n /**\n * Sends transaction; will block waiting for signer to return the transaction hash\n **/\n sendTransaction: AugmentedRpc<\n (\n tx:\n | EthTransactionRequest\n | {\n from?: any;\n to?: any;\n gasPrice?: any;\n gas?: any;\n value?: any;\n data?: any;\n nonce?: any;\n }\n | string\n | Uint8Array,\n ) => Observable<H256>\n >;\n /**\n * Used for submitting mining hashrate.\n **/\n submitHashrate: AugmentedRpc<\n (index: U256 | AnyNumber | Uint8Array, hash: H256 | string | Uint8Array) => Observable<bool>\n >;\n /**\n * Used for submitting a proof-of-work solution.\n **/\n submitWork: AugmentedRpc<\n (\n nonce: H64 | string | Uint8Array,\n headerHash: H256 | string | Uint8Array,\n mixDigest: H256 | string | Uint8Array,\n ) => Observable<bool>\n >;\n /**\n * Subscribe to Eth subscription.\n **/\n subscribe: AugmentedRpc<\n (\n kind:\n | EthSubKind\n | 'newHeads'\n | 'logs'\n | 'newPendingTransactions'\n | 'syncing'\n | number\n | Uint8Array,\n params?: EthSubParams | { None: any } | { Logs: any } | string | Uint8Array,\n ) => Observable<Null>\n >;\n /**\n * Returns an object with data about the sync status or false.\n **/\n syncing: AugmentedRpc<() => Observable<EthSyncStatus>>;\n /**\n * Uninstalls filter.\n **/\n uninstallFilter: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<bool>>;\n };\n grandpa: {\n /**\n * Prove finality for the given block number, returning the Justification for the last block in the set.\n **/\n proveFinality: AugmentedRpc<\n (\n blockNumber: BlockNumber | AnyNumber | Uint8Array,\n ) => Observable<Option<EncodedFinalityProofs>>\n >;\n /**\n * Returns the state of the current best round state as well as the ongoing background rounds\n **/\n roundState: AugmentedRpc<() => Observable<ReportedRoundStates>>;\n /**\n * Subscribes to grandpa justifications\n **/\n subscribeJustifications: AugmentedRpc<() => Observable<JustificationNotification>>;\n };\n mmr: {\n /**\n * Generate MMR proof for the given block numbers.\n **/\n generateProof: AugmentedRpc<\n (\n blockNumbers: Vec<u64> | (u64 | AnyNumber | Uint8Array)[],\n bestKnownBlockNumber?: u64 | AnyNumber | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<MmrLeafBatchProof>\n >;\n /**\n * Get the MMR root hash for the current best block.\n **/\n root: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<MmrHash>>;\n /**\n * Verify an MMR proof\n **/\n verifyProof: AugmentedRpc<\n (\n proof:\n | MmrLeafBatchProof\n | { blockHash?: any; leaves?: any; proof?: any }\n | string\n | Uint8Array,\n ) => Observable<bool>\n >;\n /**\n * Verify an MMR proof statelessly given an mmr_root\n **/\n verifyProofStateless: AugmentedRpc<\n (\n root: MmrHash | string | Uint8Array,\n proof:\n | MmrLeafBatchProof\n | { blockHash?: any; leaves?: any; proof?: any }\n | string\n | Uint8Array,\n ) => Observable<bool>\n >;\n };\n net: {\n /**\n * Returns true if client is actively listening for network connections. Otherwise false.\n **/\n listening: AugmentedRpc<() => Observable<bool>>;\n /**\n * Returns number of peers connected to node.\n **/\n peerCount: AugmentedRpc<() => Observable<Text>>;\n /**\n * Returns protocol version.\n **/\n version: AugmentedRpc<() => Observable<Text>>;\n };\n offchain: {\n /**\n * Clear offchain local storage under given key and prefix\n **/\n localStorageClear: AugmentedRpc<\n (\n kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array,\n key: Bytes | string | Uint8Array,\n ) => Observable<Null>\n >;\n /**\n * Get offchain local storage under given key and prefix\n **/\n localStorageGet: AugmentedRpc<\n (\n kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array,\n key: Bytes | string | Uint8Array,\n ) => Observable<Option<Bytes>>\n >;\n /**\n * Set offchain local storage under given key and prefix\n **/\n localStorageSet: AugmentedRpc<\n (\n kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array,\n key: Bytes | string | Uint8Array,\n value: Bytes | string | Uint8Array,\n ) => Observable<Null>\n >;\n };\n payment: {\n /**\n * @deprecated Use `api.call.transactionPaymentApi.queryFeeDetails` instead\n * Query the detailed fee of a given encoded extrinsic\n **/\n queryFeeDetails: AugmentedRpc<\n (\n extrinsic: Bytes | string | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<FeeDetails>\n >;\n /**\n * @deprecated Use `api.call.transactionPaymentApi.queryInfo` instead\n * Retrieves the fee information for an encoded extrinsic\n **/\n queryInfo: AugmentedRpc<\n (\n extrinsic: Bytes | string | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<RuntimeDispatchInfoV1>\n >;\n };\n rpc: {\n /**\n * Retrieves the list of RPC methods that are exposed by the node\n **/\n methods: AugmentedRpc<() => Observable<RpcMethods>>;\n };\n state: {\n /**\n * Perform a call to a builtin on the chain\n **/\n call: AugmentedRpc<\n (\n method: Text | string,\n data: Bytes | string | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Bytes>\n >;\n /**\n * Retrieves the keys with prefix of a specific child storage\n **/\n getChildKeys: AugmentedRpc<\n (\n childStorageKey: StorageKey | string | Uint8Array | any,\n childDefinition: StorageKey | string | Uint8Array | any,\n childType: u32 | AnyNumber | Uint8Array,\n key: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Vec<StorageKey>>\n >;\n /**\n * Returns proof of storage for child key entries at a specific block state.\n **/\n getChildReadProof: AugmentedRpc<\n (\n childStorageKey: PrefixedStorageKey | string | Uint8Array,\n keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[],\n at?: BlockHash | string | Uint8Array,\n ) => Observable<ReadProof>\n >;\n /**\n * Retrieves the child storage for a key\n **/\n getChildStorage: AugmentedRpc<\n (\n childStorageKey: StorageKey | string | Uint8Array | any,\n childDefinition: StorageKey | string | Uint8Array | any,\n childType: u32 | AnyNumber | Uint8Array,\n key: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<StorageData>\n >;\n /**\n * Retrieves the child storage hash\n **/\n getChildStorageHash: AugmentedRpc<\n (\n childStorageKey: StorageKey | string | Uint8Array | any,\n childDefinition: StorageKey | string | Uint8Array | any,\n childType: u32 | AnyNumber | Uint8Array,\n key: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Hash>\n >;\n /**\n * Retrieves the child storage size\n **/\n getChildStorageSize: AugmentedRpc<\n (\n childStorageKey: StorageKey | string | Uint8Array | any,\n childDefinition: StorageKey | string | Uint8Array | any,\n childType: u32 | AnyNumber | Uint8Array,\n key: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<u64>\n >;\n /**\n * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys\n * Retrieves the keys with a certain prefix\n **/\n getKeys: AugmentedRpc<\n (\n key: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Vec<StorageKey>>\n >;\n /**\n * Returns the keys with prefix with pagination support.\n **/\n getKeysPaged: AugmentedRpc<\n (\n key: StorageKey | string | Uint8Array | any,\n count: u32 | AnyNumber | Uint8Array,\n startKey?: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Vec<StorageKey>>\n >;\n /**\n * Returns the runtime metadata\n **/\n getMetadata: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<Metadata>>;\n /**\n * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys\n * Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)\n **/\n getPairs: AugmentedRpc<\n (\n prefix: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Vec<KeyValue>>\n >;\n /**\n * Returns proof of storage entries at a specific block state\n **/\n getReadProof: AugmentedRpc<\n (\n keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[],\n at?: BlockHash | string | Uint8Array,\n ) => Observable<ReadProof>\n >;\n /**\n * Get the runtime version\n **/\n getRuntimeVersion: AugmentedRpc<\n (at?: BlockHash | string | Uint8Array) => Observable<RuntimeVersion>\n >;\n /**\n * Retrieves the storage for a key\n **/\n getStorage: AugmentedRpc<\n <T = Codec>(\n key: StorageKey | string | Uint8Array | any,\n block?: Hash | Uint8Array | string,\n ) => Observable<T>\n >;\n /**\n * Retrieves the storage hash\n **/\n getStorageHash: AugmentedRpc<\n (\n key: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<Hash>\n >;\n /**\n * Retrieves the storage size\n **/\n getStorageSize: AugmentedRpc<\n (\n key: StorageKey | string | Uint8Array | any,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<u64>\n >;\n /**\n * Query historical storage entries (by key) starting from a start block\n **/\n queryStorage: AugmentedRpc<\n <T = Codec[]>(\n keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[],\n fromBlock?: Hash | Uint8Array | string,\n toBlock?: Hash | Uint8Array | string,\n ) => Observable<[Hash, T][]>\n >;\n /**\n * Query storage entries (by key) starting at block hash given as the second parameter\n **/\n queryStorageAt: AugmentedRpc<\n <T = Codec[]>(\n keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[],\n at?: Hash | Uint8Array | string,\n ) => Observable<T>\n >;\n /**\n * Retrieves the runtime version via subscription\n **/\n subscribeRuntimeVersion: AugmentedRpc<() => Observable<RuntimeVersion>>;\n /**\n * Subscribes to storage changes for the provided keys\n **/\n subscribeStorage: AugmentedRpc<\n <T = Codec[]>(\n keys?: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[],\n ) => Observable<T>\n >;\n /**\n * Provides a way to trace the re-execution of a single block\n **/\n traceBlock: AugmentedRpc<\n (\n block: Hash | string | Uint8Array,\n targets: Option<Text> | null | Uint8Array | Text | string,\n storageKeys: Option<Text> | null | Uint8Array | Text | string,\n methods: Option<Text> | null | Uint8Array | Text | string,\n ) => Observable<TraceBlockResponse>\n >;\n /**\n * Check current migration state\n **/\n trieMigrationStatus: AugmentedRpc<\n (at?: BlockHash | string | Uint8Array) => Observable<MigrationStatusResult>\n >;\n };\n syncstate: {\n /**\n * Returns the json-serialized chainspec running the node, with a sync state.\n **/\n genSyncSpec: AugmentedRpc<(raw: bool | boolean | Uint8Array) => Observable<Json>>;\n };\n system: {\n /**\n * Retrieves the next accountIndex as available on the node\n **/\n accountNextIndex: AugmentedRpc<\n (accountId: AccountId | string | Uint8Array) => Observable<Index>\n >;\n /**\n * Adds the supplied directives to the current log filter\n **/\n addLogFilter: AugmentedRpc<(directives: Text | string) => Observable<Null>>;\n /**\n * Adds a reserved peer\n **/\n addReservedPeer: AugmentedRpc<(peer: Text | string) => Observable<Text>>;\n /**\n * Retrieves the chain\n **/\n chain: AugmentedRpc<() => Observable<Text>>;\n /**\n * Retrieves the chain type\n **/\n chainType: AugmentedRpc<() => Observable<ChainType>>;\n /**\n * Dry run an extrinsic at a given block\n **/\n dryRun: AugmentedRpc<\n (\n extrinsic: Bytes | string | Uint8Array,\n at?: BlockHash | string | Uint8Array,\n ) => Observable<ApplyExtrinsicResult>\n >;\n /**\n * Return health status of the node\n **/\n health: AugmentedRpc<() => Observable<Health>>;\n /**\n * The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example\n **/\n localListenAddresses: AugmentedRpc<() => Observable<Vec<Text>>>;\n /**\n * Returns the base58-encoded PeerId of the node\n **/\n localPeerId: AugmentedRpc<() => Observable<Text>>;\n /**\n * Retrieves the node name\n **/\n name: AugmentedRpc<() => Observable<Text>>;\n /**\n * Returns current state of the network\n **/\n networkState: AugmentedRpc<() => Observable<NetworkState>>;\n /**\n * Returns the roles the node is running as\n **/\n nodeRoles: AugmentedRpc<() => Observable<Vec<NodeRole>>>;\n /**\n * Returns the currently connected peers\n **/\n peers: AugmentedRpc<() => Observable<Vec<PeerInfo>>>;\n /**\n * Get a custom set of properties as a JSON object, defined in the chain spec\n **/\n properties: AugmentedRpc<() => Observable<ChainProperties>>;\n /**\n * Remove a reserved peer\n **/\n removeReservedPeer: AugmentedRpc<(peerId: Text | string) => Observable<Text>>;\n /**\n * Returns the list of reserved peers\n **/\n reservedPeers: AugmentedRpc<() => Observable<Vec<Text>>>;\n /**\n * Resets the log filter to Substrate defaults\n **/\n resetLogFilter: AugmentedRpc<() => Observable<Null>>;\n /**\n * Returns the state of the syncing of the node\n **/\n syncState: AugmentedRpc<() => Observable<SyncState>>;\n /**\n * Retrieves the version of the node\n **/\n version: AugmentedRpc<() => Observable<Text>>;\n };\n web3: {\n /**\n * Returns current client version.\n **/\n clientVersion: AugmentedRpc<() => Observable<Text>>;\n /**\n * Returns sha3 of the given data\n **/\n sha3: AugmentedRpc<(data: Bytes | string | Uint8Array) => Observable<H256>>;\n };\n } // RpcInterface\n} // declare module\n","// Auto-generated via `yarn polkadot-types-from-chain`, do not edit\n/* eslint-disable */\n\n// import type lookup before we augment - in some environments\n// this is required to allow for ambient/previous definitions\nimport '@polkadot/api-base/types/calls';\n\nimport type { ApiTypes, AugmentedCall, DecoratedCallBase } from '@polkadot/api-base/types';\nimport type { Bytes, Null, Option, Result, Vec, u32 } from '@polkadot/types-codec';\nimport type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';\nimport type { OpaqueKeyOwnershipProof } from '@polkadot/types/interfaces/babe';\nimport type { CheckInherentsResult, InherentData } from '@polkadot/types/interfaces/blockbuilder';\nimport type { BlockHash } from '@polkadot/types/interfaces/chain';\nimport type { AuthorityId } from '@polkadot/types/interfaces/consensus';\nimport type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';\nimport type { GenesisBuildErr } from '@polkadot/types/interfaces/genesisBuilder';\nimport type {\n AuthorityList,\n GrandpaEquivocationProof,\n SetId,\n} from '@polkadot/types/interfaces/grandpa';\nimport type { OpaqueMetadata } from '@polkadot/types/interfaces/metadata';\nimport type { FeeDetails, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';\nimport type {\n AccountId,\n Balance,\n Block,\n Call,\n ExtrinsicInclusionMode,\n Header,\n Index,\n KeyTypeId,\n Weight,\n} from '@polkadot/types/interfaces/runtime';\nimport type { RuntimeVersion } from '@polkadot/types/interfaces/state';\nimport type { ApplyExtrinsicResult } from '@polkadot/types/interfaces/system';\nimport type { TransactionSource, TransactionValidity } from '@polkadot/types/interfaces/txqueue';\nimport type { IExtrinsic, Observable } from '@polkadot/types/types';\n\nexport type __AugmentedCall<ApiType extends ApiTypes> = AugmentedCall<ApiType>;\nexport type __DecoratedCallBase<ApiType extends ApiTypes> = DecoratedCallBase<ApiType>;\n\ndeclare module '@polkadot/api-base/types/calls' {\n interface AugmentedCalls<ApiType extends ApiTypes> {\n /** 0xbc9d89904f5b923f/1 */\n accountNonceApi: {\n /**\n * The API to query account nonce (aka transaction index)\n **/\n accountNonce: AugmentedCall<\n ApiType,\n (accountId: AccountId | string | Uint8Array) => Observable<Index>\n >;\n };\n /** 0x40fe3ad401f8959a/6 */\n blockBuilder: {\n /**\n * Apply the given extrinsic.\n **/\n applyExtrinsic: AugmentedCall<\n ApiType,\n (\n extrinsic: Extrinsic | IExtrinsic | string | Uint8Array,\n ) => Observable<ApplyExtrinsicResult>\n >;\n /**\n * Check that the inherents are valid.\n **/\n checkInherents: AugmentedCall<\n ApiType,\n (\n block: Block | { header?: any; extrinsics?: any } | string | Uint8Array,\n data: InherentData | { data?: any } | string | Uint8Array,\n ) => Observable<CheckInherentsResult>\n >;\n /**\n * Finish the current block.\n **/\n finalizeBlock: AugmentedCall<ApiType, () => Observable<Header>>;\n /**\n * Generate inherent extrinsics.\n **/\n inherentExtrinsics: AugmentedCall<\n ApiType,\n (\n inherent: InherentData | { data?: any } | string | Uint8Array,\n ) => Observable<Vec<Extrinsic>>\n >;\n };\n /** 0xdf6acb689907609b/5 */\n core: {\n /**\n * Execute the given block.\n **/\n executeBlock: AugmentedCall<\n ApiType,\n (\n block: Block | { header?: any; extrinsics?: any } | string | Uint8Array,\n ) => Observable<Null>\n >;\n /**\n * Initialize a block with the given header.\n **/\n initializeBlock: AugmentedCall<\n ApiType,\n (\n header:\n | Header\n | {\n parentHash?: any;\n number?: any;\n stateRoot?: any;\n extrinsicsRoot?: any;\n digest?: any;\n }\n | string\n | Uint8Array,\n ) => Observable<ExtrinsicInclusionMode>\n >;\n /**\n * Returns the version of the runtime.\n **/\n version: AugmentedCall<ApiType, () => Observable<RuntimeVersion>>;\n };\n /** 0xfbc577b9d747efd6/1 */\n genesisBuilder: {\n /**\n * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage.\n **/\n buildConfig: AugmentedCall<\n ApiType,\n (json: Bytes | string | Uint8Array) => Observable<Result<ITuple<[]>, GenesisBuildErr>>\n >;\n /**\n * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob.\n **/\n createDefaultConfig: AugmentedCall<ApiType, () => Observable<Bytes>>;\n };\n /** 0xed99c5acb25eedf5/3 */\n grandpaApi: {\n /**\n * Get current GRANDPA authority set id.\n **/\n currentSetId: AugmentedCall<ApiType, () => Observable<SetId>>;\n /**\n * Generates a proof of key ownership for the given authority in the given set.\n **/\n generateKeyOwnershipProof: AugmentedCall<\n ApiType,\n (\n setId: SetId | AnyNumber | Uint8Array,\n authorityId: AuthorityId | string | Uint8Array,\n ) => Observable<Option<OpaqueKeyOwnershipProof>>\n >;\n /**\n * Get the current GRANDPA authorities and weights. This should not change except for when changes are scheduled and the corresponding delay has passed.\n **/\n grandpaAuthorities: AugmentedCall<ApiType, () => Observable<AuthorityList>>;\n /**\n * Submits an unsigned extrinsic to report an equivocation.\n **/\n submitReportEquivocationUnsignedExtrinsic: AugmentedCall<\n ApiType,\n (\n equivocationProof:\n | GrandpaEquivocationProof\n | { setId?: any; equivocation?: any }\n | string\n | Uint8Array,\n keyOwnerProof: OpaqueKeyOwnershipProof | string | Uint8Array,\n ) => Observable<Option<Null>>\n >;\n };\n /** 0x37e397fc7c91f5e4/2 */\n metadata: {\n /**\n * Returns the metadata of a runtime\n **/\n metadata: AugmentedCall<ApiType, () => Observable<OpaqueMetadata>>;\n /**\n * Returns the metadata at a given version.\n **/\n metadataAtVersion: AugmentedCall<\n ApiType,\n (version: u32 | AnyNumber | Uint8Array) => Observable<Option<OpaqueMetadata>>\n >;\n /**\n * Returns the supported metadata versions.\n **/\n metadataVersions: AugmentedCall<ApiType, () => Observable<Vec<u32>>>;\n };\n /** 0xf78b278be53f454c/2 */\n offchainWorkerApi: {\n /**\n * Starts the off-chain task for given block header.\n **/\n offchainWorker: AugmentedCall<\n ApiType,\n (\n header:\n | Header\n | {\n parentHash?: any;\n number?: any;\n stateRoot?: any;\n extrinsicsRoot?: any;\n digest?: any;\n }\n | string\n | Uint8Array,\n ) => Observable<Null>\n >;\n };\n /** 0xab3c0572291feb8b/1 */\n sessionKeys: {\n /**\n * Decode the given public session keys.\n **/\n decodeSessionKeys: AugmentedCall<\n ApiType,\n (\n encoded: Bytes | string | Uint8Array,\n ) => Observable<Option<Vec<ITuple<[Bytes, KeyTypeId]>>>>\n >;\n /**\n * Generate a set of session keys with optionally using the given seed.\n **/\n generateSessionKeys: AugmentedCall<\n ApiType,\n (seed: Option<Bytes> | null | Uint8Array | Bytes | string) => Observable<Bytes>\n >;\n };\n /** 0xd2bc9897eed08f15/3 */\n taggedTransactionQueue: {\n /**\n * Validate the transaction.\n **/\n validateTransaction: AugmentedCall<\n ApiType,\n (\n source: TransactionSource | 'InBlock' | 'Local' | 'External' | number | Uint8Array,\n tx: Extrinsic | IExtrinsic | string | Uint8Array,\n blockHash: BlockHash | string | Uint8Array,\n ) => Observable<TransactionValidity>\n >;\n };\n /** 0x37c8bb1350a9a2a8/4 */\n transactionPaymentApi: {\n /**\n * The transaction fee details\n **/\n queryFeeDetails: AugmentedCall<\n ApiType,\n (\n uxt: Extrinsic | IExtrinsic | string | Uint8Array,\n len: u32 | AnyNumber | Uint8Array,\n ) => Observable<FeeDetails>\n >;\n /**\n * The transaction info\n **/\n queryInfo: AugmentedCall<\n ApiType,\n (\n uxt: Extrinsic | IExtrinsic | string | Uint8Array,\n len: u32 | AnyNumber | Uint8Array,\n ) => Observable<RuntimeDispatchInfo>\n >;\n /**\n * Query the output of the current LengthToFee given some input\n **/\n queryLengthToFee: AugmentedCall<\n ApiType,\n (length: u32 | AnyNumber | Uint8Array) => Observable<Balance>\n >;\n /**\n * Query the output of the current WeightToFee given some input\n **/\n queryWeightToFee: AugmentedCall<\n ApiType,\n (\n weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array,\n ) => Observable<Balance>\n >;\n };\n /** 0xf3ff14d5ab527059/3 */\n transactionPaymentCallApi: {\n /**\n * The call fee details\n **/\n queryCallFeeDetails: AugmentedCall<\n ApiType,\n (\n call: Call | IMethod | string | Uint8Array,\n len: u32 | AnyNumber | Uint8Array,\n ) => Observable<FeeDetails>\n >;\n /**\n * The call info\n **/\n queryCallInfo: AugmentedCall<\n ApiType,\n (\n call: Call | IMethod | string | Uint8Array,\n len: u32 | AnyNumber | Uint8Array,\n ) => Observable<RuntimeDispatchInfo>\n >;\n /**\n * Query the output of the current LengthToFee given some input\n **/\n queryLengthToFee: AugmentedCall<\n ApiType,\n (length: u32 | AnyNumber | Uint8Array) => Observable<Balance>\n >;\n /**\n * Query the output of the current WeightToFee given some input\n **/\n queryWeightToFee: AugmentedCall<\n ApiType,\n (\n weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array,\n ) => Observable<Balance>\n >;\n };\n } // AugmentedCalls\n} // declare module\n","// Auto-generated via `yarn polkadot-types-from-defs`, do not edit\n/* eslint-disable */\n\n// import type lookup before we augment - in some environments\n// this is required to allow for ambient/previous definitions\nimport '@polkadot/types/types/registry';\n\nimport type { Data, StorageKey } from '@polkadot/types';\nimport type {\n BitVec,\n Bool,\n Bytes,\n F32,\n F64,\n I128,\n I16,\n I256,\n I32,\n I64,\n I8,\n ISize,\n Json,\n Null,\n OptionBool,\n Raw,\n Text,\n Type,\n U128,\n U16,\n U256,\n U32,\n U64,\n U8,\n USize,\n bool,\n f32,\n f64,\n i128,\n i16,\n i256,\n i32,\n i64,\n i8,\n isize,\n u128,\n u16,\n u256,\n u32,\n u64,\n u8,\n usize,\n} from '@polkadot/types-codec';\nimport type { TAssetConversion } from '@polkadot/types/interfaces/assetConversion';\nimport type {\n AssetApproval,\n AssetApprovalKey,\n AssetBalance,\n AssetDestroyWitness,\n AssetDetails,\n AssetMetadata,\n TAssetBalance,\n TAssetDepositBalance,\n} from '@polkadot/types/interfaces/assets';\nimport type {\n BlockAttestations,\n IncludedBlocks,\n MoreAttestations,\n} from '@polkadot/types/interfaces/attestations';\nimport type { RawAuraPreDigest } from '@polkadot/types/interfaces/aura';\nimport type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';\nimport type { UncleEntryItem } from '@polkadot/types/interfaces/authorship';\nimport type {\n AllowedSlots,\n BabeAuthorityWeight,\n BabeBlockWeight,\n BabeEpochConfiguration,\n BabeEquivocationProof,\n BabeGenesisConfiguration,\n BabeGenesisConfigurationV1,\n BabeWeight,\n Epoch,\n EpochAuthorship,\n MaybeRandomness,\n MaybeVrf,\n NextConfigDescriptor,\n NextConfigDescriptorV1,\n OpaqueKeyOwnershipProof,\n Randomness,\n RawBabePreDigest,\n RawBabePreDigestCompat,\n RawBabePreDigestPrimary,\n RawBabePreDigestPrimaryTo159,\n RawBabePreDigestSecondaryPlain,\n RawBabePreDigestSecondaryTo159,\n RawBabePreDigestSecondaryVRF,\n RawBabePreDigestTo159,\n SlotNumber,\n VrfData,\n VrfOutput,\n VrfProof,\n} from '@polkadot/types/interfaces/babe';\nimport type {\n AccountData,\n BalanceLock,\n BalanceLockTo212,\n BalanceStatus,\n Reasons,\n ReserveData,\n ReserveIdentifier,\n VestingSchedule,\n WithdrawReasons,\n} from '@polkadot/types/interfaces/balances';\nimport type {\n BeefyAuthoritySet,\n BeefyCommitment,\n BeefyCompactSignedCommitment,\n BeefyEquivocationProof,\n BeefyId,\n BeefyNextAuthoritySet,\n BeefyPayload,\n BeefyPayloadId,\n BeefySignedCommitment,\n BeefyVersionedFinalityProof,\n BeefyVoteMessage,\n MmrRootHash,\n ValidatorSet,\n ValidatorSetId,\n} from '@polkadot/types/interfaces/beefy';\nimport type {\n BenchmarkBatch,\n BenchmarkConfig,\n BenchmarkList,\n BenchmarkMetadata,\n BenchmarkParameter,\n BenchmarkResult,\n} from '@polkadot/types/interfaces/benchmark';\nimport type {\n CheckInherentsResult,\n InherentData,\n InherentIdentifier,\n} from '@polkadot/types/interfaces/blockbuilder';\nimport type {\n BridgeMessageId,\n BridgedBlockHash,\n BridgedBlockNumber,\n BridgedHeader,\n CallOrigin,\n ChainId,\n DeliveredMessages,\n DispatchFeePayment,\n InboundLaneData,\n InboundRelayer,\n InitializationData,\n LaneId,\n MessageData,\n MessageKey,\n MessageNonce,\n MessagesDeliveryProofOf,\n MessagesProofOf,\n OperatingMode,\n OutboundLaneData,\n OutboundMessageFee,\n OutboundPayload,\n Parameter,\n RelayerId,\n UnrewardedRelayer,\n UnrewardedRelayersState,\n} from '@polkadot/types/interfaces/bridges';\nimport type { BlockHash } from '@polkadot/types/interfaces/chain';\nimport type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';\nimport type { StatementKind } from '@polkadot/types/interfaces/claims';\nimport type {\n CollectiveOrigin,\n MemberCount,\n ProposalIndex,\n Votes,\n VotesTo230,\n} from '@polkadot/types/interfaces/collective';\nimport type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus';\nimport type {\n AliveContractInfo,\n CodeHash,\n CodeSource,\n CodeUploadRequest,\n CodeUploadResult,\n CodeUploadResultValue,\n ContractCallFlags,\n ContractCallRequest,\n ContractExecResult,\n ContractExecResultOk,\n ContractExecResultResult,\n ContractExecResultSuccessTo255,\n ContractExecResultSuccessTo260,\n ContractExecResultTo255,\n ContractExecResultTo260,\n ContractExecResultTo267,\n ContractExecResultU64,\n ContractInfo,\n ContractInstantiateResult,\n ContractInstantiateResultTo267,\n ContractInstantiateResultTo299,\n ContractInstantiateResultU64,\n ContractReturnFlags,\n ContractStorageKey,\n DeletedContract,\n ExecReturnValue,\n Gas,\n HostFnWeights,\n HostFnWeightsTo264,\n InstantiateRequest,\n InstantiateRequestV1,\n InstantiateRequestV2,\n InstantiateReturnValue,\n InstantiateReturnValueOk,\n InstantiateReturnValueTo267,\n InstructionWeights,\n Limits,\n LimitsTo264,\n PrefabWasmModule,\n RentProjection,\n Schedule,\n ScheduleTo212,\n ScheduleTo258,\n ScheduleTo264,\n SeedOf,\n StorageDeposit,\n TombstoneContractInfo,\n TrieId,\n} from '@polkadot/types/interfaces/contracts';\nimport type {\n ContractConstructorSpecLatest,\n ContractConstructorSpecV0,\n ContractConstructorSpecV1,\n ContractConstructorSpecV2,\n ContractConstructorSpecV3,\n ContractConstructorSpecV4,\n ContractContractSpecV0,\n ContractContractSpecV1,\n ContractContractSpecV2,\n ContractContractSpecV3,\n ContractContractSpecV4,\n ContractContractSpecV5,\n ContractContractSpecV6,\n ContractCryptoHasher,\n ContractDiscriminant,\n ContractDisplayName,\n ContractEnvironmentV4,\n ContractEventParamSpecLatest,\n ContractEventParamSpecV0,\n ContractEventParamSpecV2,\n ContractEventSpecLatest,\n ContractEventSpecV0,\n ContractEventSpecV1,\n ContractEventSpecV2,\n ContractEventSpecV3,\n ContractLayoutArray,\n ContractLayoutCell,\n ContractLayoutEnum,\n ContractLayoutHash,\n ContractLayoutHashingStrategy,\n ContractLayoutKey,\n ContractLayoutStruct,\n ContractLayoutStructField,\n ContractMessageParamSpecLatest,\n ContractMessageParamSpecV0,\n ContractMessageParamSpecV2,\n ContractMessageSpecLatest,\n ContractMessageSpecV0,\n ContractMessageSpecV1,\n ContractMessageSpecV2,\n ContractMessageSpecV3,\n ContractMetadata,\n ContractMetadataLatest,\n ContractMetadataV0,\n ContractMetadataV1,\n ContractMetadataV2,\n ContractMetadataV3,\n ContractMetadataV4,\n ContractMetadataV5,\n ContractMetadataV6,\n ContractProject,\n ContractProjectContract,\n ContractProjectInfo,\n ContractProjectSource,\n ContractProjectV0,\n ContractReviveProjectInfo,\n ContractReviveProjectSource,\n ContractSelector,\n ContractStorageLayout,\n ContractTypeSpec,\n} from '@polkadot/types/interfaces/contractsAbi';\nimport type {\n FundIndex,\n FundInfo,\n LastContribution,\n TrieIndex,\n} from '@polkadot/types/interfaces/crowdloan';\nimport type {\n CollationInfo,\n CollationInfoV1,\n ConfigData,\n MessageId,\n OverweightIndex,\n PageCounter,\n PageIndexData,\n} from '@polkadot/types/interfaces/cumulus';\nimport type {\n AccountVote,\n AccountVoteSplit,\n AccountVoteStandard,\n Conviction,\n Delegations,\n PreimageStatus,\n PreimageStatusAvailable,\n PriorLock,\n PropIndex,\n Proposal,\n ProxyState,\n ReferendumIndex,\n ReferendumInfo,\n ReferendumInfoFinished,\n ReferendumInfoTo239,\n ReferendumStatus,\n Tally,\n Voting,\n VotingDelegating,\n VotingDirect,\n VotingDirectVote,\n} from '@polkadot/types/interfaces/democracy';\nimport type { BlockStats } from '@polkadot/types/interfaces/dev';\nimport type {\n CallDryRunEffects,\n DispatchResultWithPostInfo,\n PostDispatchInfo,\n XcmDryRunApiError,\n XcmDryRunEffects,\n} from '@polkadot/types/interfaces/dryRunApi';\nimport type {\n ApprovalFlag,\n DefunctVoter,\n Renouncing,\n SetIndex,\n Vote,\n VoteIndex,\n VoteThreshold,\n VoterInfo,\n} from '@polkadot/types/interfaces/elections';\nimport type { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine';\nimport type {\n BlockV0,\n BlockV1,\n BlockV2,\n BlockV3,\n EIP1559Transaction,\n EIP2930Transaction,\n EIP7702Transaction,\n EthAccessList,\n EthAccessListItem,\n EthAccount,\n EthAddress,\n EthAuthorizationList,\n EthAuthorizationListItem,\n EthAuthorizationSignature,\n EthBlock,\n EthBloom,\n EthCallRequest,\n EthFeeHistory,\n EthFilter,\n EthFilterAddress,\n EthFilterChanges,\n EthFilterTopic,\n EthFilterTopicEntry,\n EthFilterTopicInner,\n EthHeader,\n EthLegacyTransactionSignature,\n EthLog,\n EthReceipt,\n EthReceiptV0,\n EthReceiptV3,\n EthReceiptV4,\n EthRichBlock,\n EthRichHeader,\n EthStorageProof,\n EthSubKind,\n EthSubParams,\n EthSubResult,\n EthSyncInfo,\n EthSyncStatus,\n EthTransaction,\n EthTransactionAction,\n EthTransactionCondition,\n EthTransactionRequest,\n EthTransactionSignature,\n EthTransactionStatus,\n EthWork,\n EthereumAccountId,\n EthereumAddress,\n EthereumLookupSource,\n EthereumSignature,\n LegacyTransaction,\n TransactionV0,\n TransactionV1,\n TransactionV2,\n TransactionV3,\n} from '@polkadot/types/interfaces/eth';\nimport type {\n EvmAccount,\n EvmCallInfo,\n EvmCallInfoV2,\n EvmCreateInfo,\n EvmCreateInfoV2,\n EvmLog,\n EvmVicinity,\n EvmWeightInfo,\n ExitError,\n ExitFatal,\n ExitReason,\n ExitRevert,\n ExitSucceed,\n} from '@polkadot/types/interfaces/evm';\nimport type {\n AnySignature,\n EcdsaSignature,\n Ed25519Signature,\n Era,\n Extrinsic,\n ExtrinsicEra,\n ExtrinsicPayload,\n ExtrinsicPayloadUnknown,\n ExtrinsicPayloadV4,\n ExtrinsicPayloadV5,\n ExtrinsicSignature,\n ExtrinsicSignatureV4,\n ExtrinsicSignatureV5,\n ExtrinsicUnknown,\n ExtrinsicV4,\n ExtrinsicV5,\n ImmortalEra,\n MortalEra,\n MultiSignature,\n Signature,\n SignerPayload,\n Sr25519Signature,\n} from '@polkadot/types/interfaces/extrinsics';\nimport type { FungiblesAccessError } from '@polkadot/types/interfaces/fungibles';\nimport type {\n AssetOptions,\n Owner,\n PermissionLatest,\n PermissionVersions,\n PermissionsV1,\n} from '@polkadot/types/interfaces/genericAsset';\nimport type { GenesisBuildErr } from '@polkadot/types/interfaces/genesisBuilder';\nimport type {\n ActiveGilt,\n ActiveGiltsTotal,\n ActiveIndex,\n GiltBid,\n} from '@polkadot/types/interfaces/gilt';\nimport type {\n AuthorityIndex,\n AuthorityList,\n AuthoritySet,\n AuthoritySetChange,\n AuthoritySetChanges,\n AuthorityWeight,\n DelayKind,\n DelayKindBest,\n EncodedFinalityProofs,\n ForkTreePendingChange,\n ForkTreePendingChangeNode,\n GrandpaCommit,\n GrandpaEquivocation,\n GrandpaEquivocationProof,\n GrandpaEquivocationValue,\n GrandpaJustification,\n GrandpaPrecommit,\n GrandpaPrevote,\n GrandpaSignedPrecommit,\n JustificationNotification,\n KeyOwnerProof,\n NextAuthority,\n PendingChange,\n PendingPause,\n PendingResume,\n Precommits,\n Prevotes,\n ReportedRoundStates,\n RoundState,\n SetId,\n StoredPendingChange,\n StoredState,\n} from '@polkadot/types/interfaces/grandpa';\nimport type {\n IdentityFields,\n IdentityInfo,\n IdentityInfoAdditional,\n IdentityInfoTo198,\n IdentityJudgement,\n RegistrarIndex,\n RegistrarInfo,\n Registration,\n RegistrationJudgement,\n RegistrationTo198,\n} from '@polkadot/types/interfaces/identity';\nimport type {\n AuthIndex,\n AuthoritySignature,\n Heartbeat,\n HeartbeatTo244,\n OpaqueMultiaddr,\n OpaqueNetworkState,\n OpaquePeerId,\n} from '@polkadot/types/interfaces/imOnline';\nimport type { CallIndex, LotteryConfig } from '@polkadot/types/interfaces/lottery';\nimport type {\n CustomMetadata15,\n CustomValueMetadata15,\n EnumDeprecationInfoV16,\n ErrorMetadataLatest,\n ErrorMetadataV10,\n ErrorMetadataV11,\n ErrorMetadataV12,\n ErrorMetadataV13,\n ErrorMetadataV14,\n ErrorMetadataV9,\n EventMetadataLatest,\n EventMetadataV10,\n EventMetadataV11,\n EventMetadataV12,\n EventMetadataV13,\n EventMetadataV14,\n EventMetadataV9,\n ExtrinsicMetadataLatest,\n ExtrinsicMetadataV11,\n ExtrinsicMetadataV12,\n ExtrinsicMetadataV13,\n ExtrinsicMetadataV14,\n ExtrinsicMetadataV15,\n ExtrinsicMetadataV16,\n FunctionArgumentMetadataLatest,\n FunctionArgumentMetadataV10,\n FunctionArgumentMetadataV11,\n FunctionArgumentMetadataV12,\n FunctionArgumentMetadataV13,\n FunctionArgumentMetadataV14,\n FunctionArgumentMetadataV9,\n FunctionMetadataLatest,\n FunctionMetadataV10,\n FunctionMetadataV11,\n FunctionMetadataV12,\n FunctionMetadataV13,\n FunctionMetadataV14,\n FunctionMetadataV9,\n ItemDeprecationInfoV16,\n MetadataAll,\n MetadataLatest,\n MetadataV10,\n MetadataV11,\n MetadataV12,\n MetadataV13,\n MetadataV14,\n MetadataV15,\n MetadataV16,\n MetadataV9,\n ModuleConstantMetadataV10,\n ModuleConstantMetadataV11,\n ModuleConstantMetadataV12,\n ModuleConstantMetadataV13,\n ModuleConstantMetadataV9,\n ModuleMetadataV10,\n ModuleMetadataV11,\n ModuleMetadataV12,\n ModuleMetadataV13,\n ModuleMetadataV9,\n OpaqueMetadata,\n OuterEnums15,\n PalletAssociatedTypeMetadataV16,\n PalletCallMetadataLatest,\n PalletCallMetadataV14,\n PalletCallMetadataV16,\n PalletConstantMetadataLatest,\n PalletConstantMetadataV14,\n PalletConstantMetadataV16,\n PalletErrorMetadataLatest,\n PalletErrorMetadataV14,\n PalletErrorMetadataV16,\n PalletEventMetadataLatest,\n PalletEventMetadataV14,\n PalletEventMetadataV16,\n PalletMetadataLatest,\n PalletMetadataV14,\n PalletMetadataV15,\n PalletMetadataV16,\n PalletStorageMetadataLatest,\n PalletStorageMetadataV14,\n PalletStorageMetadataV16,\n PalletViewFunctionMetadataV16,\n PortableType,\n PortableTypeV14,\n RuntimeApiMetadataLatest,\n RuntimeApiMetadataV15,\n RuntimeApiMetadataV16,\n RuntimeApiMethodMetadataV15,\n RuntimeApiMethodMetadataV16,\n RuntimeApiMethodParamMetadataV15,\n SignedExtensionMetadataLatest,\n SignedExtensionMetadataV14,\n StorageEntryMetadataLatest,\n StorageEntryMetadataV10,\n StorageEntryMetadataV11,\n StorageEntryMetadataV12,\n StorageEntryMetadataV13,\n StorageEntryMetadataV14,\n StorageEntryMetadataV16,\n StorageEntryMetadataV9,\n StorageEntryModifierLatest,\n StorageEntryModifierV10,\n StorageEntryModifierV11,\n StorageEntryModifierV12,\n StorageEntryModifierV13,\n StorageEntryModifierV14,\n StorageEntryModifierV9,\n StorageEntryTypeLatest,\n StorageEntryTypeV10,\n StorageEntryTypeV11,\n StorageEntryTypeV12,\n StorageEntryTypeV13,\n StorageEntryTypeV14,\n StorageEntryTypeV9,\n StorageHasher,\n StorageHasherV10,\n StorageHasherV11,\n StorageHasherV12,\n StorageHasherV13,\n StorageHasherV14,\n StorageHasherV9,\n StorageMetadataV10,\n StorageMetadataV11,\n StorageMetadataV12,\n StorageMetadataV13,\n StorageMetadataV9,\n TransactionExtensionMetadataLatest,\n TransactionExtensionMetadataV16,\n VariantDeprecationInfoV16,\n} from '@polkadot/types/interfaces/metadata';\nimport type {\n Mixnode,\n MixnodesErr,\n SessionPhase,\n SessionStatus,\n} from '@polkadot/types/interfaces/mixnet';\nimport type {\n MmrBatchProof,\n MmrEncodableOpaqueLeaf,\n MmrError,\n MmrHash,\n MmrLeafBatchProof,\n MmrLeafIndex,\n MmrLeafProof,\n MmrNodeIndex,\n MmrProof,\n} from '@polkadot/types/interfaces/mmr';\nimport type { NftCollectionId, NftItemId } from '@polkadot/types/interfaces/nfts';\nimport type { NpApiError, NpPoolId } from '@polkadot/types/interfaces/nompools';\nimport type { StorageKind } from '@polkadot/types/interfaces/offchain';\nimport type {\n DeferredOffenceOf,\n Kind,\n OffenceDetails,\n Offender,\n OpaqueTimeSlot,\n ReportIdOf,\n Reporter,\n} from '@polkadot/types/interfaces/offences';\nimport type {\n AbridgedCandidateReceipt,\n AbridgedHostConfiguration,\n AbridgedHrmpChannel,\n ApprovalVotingParams,\n AssignmentId,\n AssignmentKind,\n AsyncBackingParams,\n AttestedCandidate,\n AuctionIndex,\n AuthorityDiscoveryId,\n AvailabilityBitfield,\n AvailabilityBitfieldRecord,\n BackedCandidate,\n BackingState,\n Bidder,\n BufferedSessionChange,\n CandidateCommitments,\n CandidateDescriptor,\n CandidateEvent,\n CandidateHash,\n CandidateInfo,\n CandidatePendingAvailability,\n CandidateReceipt,\n CollatorId,\n CollatorSignature,\n CommittedCandidateReceipt,\n Constraints,\n CoreAssignment,\n CoreIndex,\n CoreOccupied,\n CoreState,\n DisputeLocation,\n DisputeProof,\n DisputeResult,\n DisputeState,\n DisputeStatement,\n DisputeStatementSet,\n DisputesTimeSlot,\n DoubleVoteReport,\n DownwardMessage,\n ExecutorParam,\n ExecutorParams,\n ExecutorParamsHash,\n ExplicitDisputeStatement,\n GlobalValidationData,\n GlobalValidationSchedule,\n GroupIndex,\n GroupRotationInfo,\n HeadData,\n HostConfiguration,\n HrmpChannel,\n HrmpChannelId,\n HrmpOpenChannelRequest,\n InboundDownwardMessage,\n InboundHrmpLimitations,\n InboundHrmpMessage,\n InboundHrmpMessages,\n IncomingParachain,\n IncomingParachainDeploy,\n IncomingParachainFixed,\n InvalidDisputeStatementKind,\n LeasePeriod,\n LeasePeriodOf,\n LocalValidationData,\n MessageIngestionType,\n MessageQueueChain,\n MessagingStateSnapshot,\n MessagingStateSnapshotEgressEntry,\n MultiDisputeStatementSet,\n NewBidder,\n NodeFeatures,\n OccupiedCore,\n OccupiedCoreAssumption,\n OldV1SessionInfo,\n OutboundHrmpChannelLimitations,\n OutboundHrmpMessage,\n ParaGenesisArgs,\n ParaId,\n ParaInfo,\n ParaLifecycle,\n ParaPastCodeMeta,\n ParaScheduling,\n ParaValidatorIndex,\n ParachainDispatchOrigin,\n ParachainInherentData,\n ParachainProposal,\n ParachainsInherentData,\n ParathreadClaim,\n ParathreadClaimQueue,\n ParathreadEntry,\n PendingSlashes,\n PersistedValidationData,\n PvfCheckStatement,\n PvfExecTimeoutKind,\n PvfPrepTimeoutKind,\n QueuedParathread,\n RegisteredParachainInfo,\n RelayBlockNumber,\n RelayChainBlockNumber,\n RelayChainHash,\n RelayHash,\n Remark,\n ReplacementTimes,\n Retriable,\n ScheduledCore,\n Scheduling,\n ScrapedOnChainVotes,\n ServiceQuality,\n SessionInfo,\n SessionInfoValidatorGroup,\n SignedAvailabilityBitfield,\n SignedAvailabilityBitfields,\n SigningContext,\n SlashingOffenceKind,\n SlotRange,\n SlotRange10,\n Statement,\n SubId,\n SystemInherentData,\n TransientValidationData,\n UpgradeGoAhead,\n UpgradeRestriction,\n UpwardMessage,\n ValidDisputeStatementKind,\n ValidationCode,\n ValidationCodeHash,\n ValidationData,\n ValidationDataType,\n ValidationFunctionParams,\n ValidatorSignature,\n ValidityAttestation,\n VecInboundHrmpMessage,\n WinnersData,\n WinnersData10,\n WinnersDataTuple,\n WinnersDataTuple10,\n WinningData,\n WinningData10,\n WinningDataEntry,\n} from '@polkadot/types/interfaces/parachains';\nimport type {\n FeeDetails,\n InclusionFee,\n RuntimeDispatchInfo,\n RuntimeDispatchInfoV1,\n RuntimeDispatchInfoV2,\n} from '@polkadot/types/interfaces/payment';\nimport type { Approvals } from '@polkadot/types/interfaces/poll';\nimport type {\n ProxyAnnouncement,\n ProxyDefinition,\n ProxyType,\n} from '@polkadot/types/interfaces/proxy';\nimport type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase';\nimport type { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery';\nimport type { RpcMethods } from '@polkadot/types/interfaces/rpc';\nimport type {\n AccountId,\n AccountId20,\n AccountId32,\n AccountId33,\n AccountIdOf,\n AccountIndex,\n Address,\n AssetId,\n Balance,\n BalanceOf,\n Block,\n BlockNumber,\n BlockNumberFor,\n BlockNumberOf,\n Call,\n CallHash,\n CallHashOf,\n ChangesTrieConfiguration,\n ChangesTrieSignal,\n CodecHash,\n Consensus,\n ConsensusEngineId,\n CrateVersion,\n Digest,\n DigestItem,\n EncodedJustification,\n ExtrinsicInclusionMode,\n ExtrinsicsWeight,\n Fixed128,\n Fixed64,\n FixedI128,\n FixedI64,\n FixedU128,\n FixedU64,\n H1024,\n H128,\n H160,\n H2048,\n H256,\n H32,\n H512,\n H64,\n Hash,\n Header,\n HeaderPartial,\n I32F32,\n Index,\n IndicesLookupSource,\n Justification,\n Justifications,\n KeyTypeId,\n KeyValue,\n LockIdentifier,\n LookupSource,\n LookupTarget,\n ModuleId,\n Moment,\n MultiAddress,\n MultiSigner,\n OpaqueCall,\n Origin,\n OriginCaller,\n PalletId,\n PalletVersion,\n PalletsOrigin,\n Pays,\n PerU16,\n Perbill,\n Percent,\n Permill,\n Perquintill,\n Phantom,\n PhantomData,\n PreRuntime,\n Releases,\n RuntimeCall,\n RuntimeDbWeight,\n RuntimeEvent,\n Seal,\n SealV0,\n SignedBlock,\n SignedBlockWithJustification,\n SignedBlockWithJustifications,\n Slot,\n SlotDuration,\n StorageData,\n StorageInfo,\n StorageProof,\n TransactionInfo,\n TransactionLongevity,\n TransactionPriority,\n TransactionStorageProof,\n TransactionTag,\n U32F32,\n ValidatorId,\n ValidatorIdOf,\n Weight,\n WeightMultiplier,\n WeightV0,\n WeightV1,\n WeightV2,\n} from '@polkadot/types/interfaces/runtime';\nimport type {\n Si0Field,\n Si0LookupTypeId,\n Si0Path,\n Si0Type,\n Si0TypeDef,\n Si0TypeDefArray,\n Si0TypeDefBitSequence,\n Si0TypeDefCompact,\n Si0TypeDefComposite,\n Si0TypeDefPhantom,\n Si0TypeDefPrimitive,\n Si0TypeDefSequence,\n Si0TypeDefTuple,\n Si0TypeDefVariant,\n Si0TypeParameter,\n Si0Variant,\n Si1Field,\n Si1LookupTypeId,\n Si1Path,\n Si1Type,\n Si1TypeDef,\n Si1TypeDefArray,\n Si1TypeDefBitSequence,\n Si1TypeDefCompact,\n Si1TypeDefComposite,\n Si1TypeDefPrimitive,\n Si1TypeDefSequence,\n Si1TypeDefTuple,\n Si1TypeDefVariant,\n Si1TypeParameter,\n Si1Variant,\n SiField,\n SiLookupTypeId,\n SiPath,\n SiType,\n SiTypeDef,\n SiTypeDefArray,\n SiTypeDefBitSequence,\n SiTypeDefCompact,\n SiTypeDefComposite,\n SiTypeDefPrimitive,\n SiTypeDefSequence,\n SiTypeDefTuple,\n SiTypeDefVariant,\n SiTypeParameter,\n SiVariant,\n} from '@polkadot/types/interfaces/scaleInfo';\nimport type {\n Period,\n Priority,\n SchedulePeriod,\n SchedulePriority,\n Scheduled,\n ScheduledTo254,\n TaskAddress,\n} from '@polkadot/types/interfaces/scheduler';\nimport type {\n BeefyKey,\n FullIdentification,\n IdentificationTuple,\n Keys,\n MembershipProof,\n SessionIndex,\n SessionKeys1,\n SessionKeys10,\n SessionKeys10B,\n SessionKeys2,\n SessionKeys3,\n SessionKeys4,\n SessionKeys5,\n SessionKeys6,\n SessionKeys6B,\n SessionKeys7,\n SessionKeys7B,\n SessionKeys8,\n SessionKeys8B,\n SessionKeys9,\n SessionKeys9B,\n ValidatorCount,\n} from '@polkadot/types/interfaces/session';\nimport type {\n Bid,\n BidKind,\n SocietyJudgement,\n SocietyVote,\n StrikeCount,\n VouchingStatus,\n} from '@polkadot/types/interfaces/society';\nimport type {\n ActiveEraInfo,\n CompactAssignments,\n CompactAssignmentsTo257,\n CompactAssignmentsTo265,\n CompactAssignmentsWith16,\n CompactAssignmentsWith24,\n CompactScore,\n CompactScoreCompact,\n ElectionCompute,\n ElectionPhase,\n ElectionResult,\n ElectionResultToSpec10,\n ElectionScore,\n ElectionSize,\n ElectionStatus,\n EraIndex,\n EraPoints,\n EraRewardPoints,\n EraRewards,\n Exposure,\n ExtendedBalance,\n Forcing,\n IndividualExposure,\n KeyType,\n MomentOf,\n Nominations,\n NominatorIndex,\n NominatorIndexCompact,\n OffchainAccuracy,\n OffchainAccuracyCompact,\n PhragmenScore,\n Points,\n RawSolution,\n RawSolutionTo265,\n RawSolutionWith16,\n RawSolutionWith24,\n ReadySolution,\n RewardDestination,\n RewardPoint,\n RoundSnapshot,\n SeatHolder,\n SignedSubmission,\n SignedSubmissionOf,\n SignedSubmissionTo276,\n SlashJournalEntry,\n SlashingSpans,\n SlashingSpansTo204,\n SolutionOrSnapshotSize,\n SolutionSupport,\n SolutionSupports,\n SpanIndex,\n SpanRecord,\n StakingLedger,\n StakingLedgerTo223,\n StakingLedgerTo240,\n SubmissionIndicesOf,\n Supports,\n UnappliedSlash,\n UnappliedSlashOther,\n UnlockChunk,\n ValidatorIndex,\n ValidatorIndexCompact,\n ValidatorPrefs,\n ValidatorPrefsTo145,\n ValidatorPrefsTo196,\n ValidatorPrefsWithBlocked,\n ValidatorPrefsWithCommission,\n VoteWeight,\n Voter,\n} from '@polkadot/types/interfaces/staking';\nimport type {\n ApiId,\n BlockTrace,\n BlockTraceEvent,\n BlockTraceEventData,\n BlockTraceSpan,\n KeyValueOption,\n MigrationStatusResult,\n ReadProof,\n RuntimeVersion,\n RuntimeVersionApi,\n RuntimeVersionPartial,\n RuntimeVersionPre3,\n RuntimeVersionPre4,\n SpecVersion,\n StorageChangeSet,\n TraceBlockResponse,\n TraceError,\n} from '@polkadot/types/interfaces/state';\nimport type {\n StatementStoreInvalidStatement,\n StatementStoreStatementSource,\n StatementStoreValidStatement,\n} from '@polkadot/types/interfaces/statement';\nimport type { WeightToFeeCoefficient } from '@polkadot/types/interfaces/support';\nimport type {\n AccountInfo,\n AccountInfoWithDualRefCount,\n AccountInfoWithProviders,\n AccountInfoWithRefCount,\n AccountInfoWithRefCountU8,\n AccountInfoWithTripleRefCount,\n ApplyExtrinsicResult,\n ApplyExtrinsicResultPre6,\n ArithmeticError,\n BlockLength,\n BlockWeights,\n ChainProperties,\n ChainType,\n ConsumedWeight,\n DigestOf,\n DispatchClass,\n DispatchError,\n DispatchErrorModule,\n DispatchErrorModulePre6,\n DispatchErrorModuleU8,\n DispatchErrorModuleU8a,\n DispatchErrorPre6,\n DispatchErrorPre6First,\n DispatchErrorTo198,\n DispatchInfo,\n DispatchInfoTo190,\n DispatchInfoTo244,\n DispatchOutcome,\n DispatchOutcomePre6,\n DispatchResult,\n DispatchResultOf,\n DispatchResultTo198,\n Event,\n EventId,\n EventIndex,\n EventRecord,\n Health,\n InvalidTransaction,\n Key,\n LastRuntimeUpgradeInfo,\n NetworkState,\n NetworkStatePeerset,\n NetworkStatePeersetInfo,\n NodeRole,\n NotConnectedPeer,\n Peer,\n PeerEndpoint,\n PeerEndpointAddr,\n PeerInfo,\n PeerPing,\n PerDispatchClassU32,\n PerDispatchClassWeight,\n PerDispatchClassWeightsPerClass,\n Phase,\n RawOrigin,\n RefCount,\n RefCountTo259,\n SyncState,\n SystemOrigin,\n TokenError,\n TransactionValidityError,\n TransactionalError,\n UnknownTransaction,\n WeightPerClass,\n} from '@polkadot/types/interfaces/system';\nimport type {\n Bounty,\n BountyIndex,\n BountyStatus,\n BountyStatusActive,\n BountyStatusCuratorProposed,\n BountyStatusPendingPayout,\n OpenTip,\n OpenTipFinderTo225,\n OpenTipTip,\n OpenTipTo225,\n TreasuryProposal,\n} from '@polkadot/types/interfaces/treasury';\nimport type { Multiplier } from '@polkadot/types/interfaces/txpayment';\nimport type {\n TransactionSource,\n TransactionValidity,\n ValidTransaction,\n} from '@polkadot/types/interfaces/txqueue';\nimport type {\n ClassDetails,\n ClassId,\n ClassMetadata,\n DepositBalance,\n DepositBalanceOf,\n DestroyWitness,\n InstanceDetails,\n InstanceId,\n InstanceMetadata,\n} from '@polkadot/types/interfaces/uniques';\nimport type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility';\nimport type { VestingInfo } from '@polkadot/types/interfaces/vesting';\nimport type {\n AssetIdV2,\n AssetIdV3,\n AssetIdV4,\n AssetIdV5,\n AssetInstance,\n AssetInstanceV0,\n AssetInstanceV1,\n AssetInstanceV2,\n AssetInstanceV3,\n AssetInstanceV4,\n AssetInstanceV5,\n BodyId,\n BodyIdV2,\n BodyIdV3,\n BodyPart,\n BodyPartV2,\n BodyPartV3,\n DoubleEncodedCall,\n Fungibility,\n FungibilityV0,\n FungibilityV1,\n FungibilityV2,\n FungibilityV3,\n FungibilityV4,\n FungibilityV5,\n HintV5,\n InboundStatus,\n InstructionV2,\n InstructionV3,\n InstructionV4,\n InstructionV5,\n InteriorMultiLocation,\n InteriorMultiLocationV2,\n InteriorMultiLocationV3,\n InteriorMultiLocationV5,\n Junction,\n JunctionV0,\n JunctionV1,\n JunctionV2,\n JunctionV3,\n JunctionV4,\n JunctionV5,\n Junctions,\n JunctionsV1,\n JunctionsV2,\n JunctionsV3,\n JunctionsV4,\n JunctionsV5,\n MaxPalletNameLen,\n MaxPalletsInfo,\n MaybeErrorCodeV3,\n MultiAsset,\n MultiAssetFilter,\n MultiAssetFilterV1,\n MultiAssetFilterV2,\n MultiAssetFilterV3,\n MultiAssetFilterV4,\n MultiAssetFilterV5,\n MultiAssetTransferFilterV5,\n MultiAssetV0,\n MultiAssetV1,\n MultiAssetV2,\n MultiAssetV3,\n MultiAssetV4,\n MultiAssetV5,\n MultiAssets,\n MultiAssetsV1,\n MultiAssetsV2,\n MultiAssetsV3,\n MultiAssetsV4,\n MultiAssetsV5,\n MultiLocation,\n MultiLocationV0,\n MultiLocationV1,\n MultiLocationV2,\n MultiLocationV3,\n MultiLocationV4,\n MultiLocationV5,\n NetworkId,\n NetworkIdV2,\n NetworkIdV3,\n NetworkIdV4,\n NetworkIdV5,\n OriginKindV0,\n OriginKindV1,\n OriginKindV2,\n OriginKindV3,\n OriginKindV4,\n OutboundStatus,\n Outcome,\n OutcomeV4,\n PalletInfoV3,\n PalletInfoV4,\n PalletInfoV5,\n QueryId,\n QueryResponseInfoV3,\n QueryResponseInfoV4,\n QueryResponseInfoV5,\n QueryStatus,\n QueueConfigData,\n Response,\n ResponseV0,\n ResponseV1,\n ResponseV2,\n ResponseV2Error,\n ResponseV3,\n ResponseV3Error,\n ResponseV3Result,\n ResponseV4,\n ResponseV5,\n UncheckedFungibilityV4,\n UncheckedFungibilityV5,\n VersionMigrationStage,\n VersionV3,\n VersionV4,\n VersionedMultiAsset,\n VersionedMultiAssets,\n VersionedMultiLocation,\n VersionedResponse,\n VersionedXcm,\n WeightLimitV2,\n WeightLimitV3,\n WildFungibility,\n WildFungibilityV0,\n WildFungibilityV1,\n WildFungibilityV2,\n WildFungibilityV3,\n WildFungibilityV4,\n WildFungibilityV5,\n WildMultiAsset,\n WildMultiAssetV1,\n WildMultiAssetV2,\n WildMultiAssetV3,\n WildMultiAssetV4,\n WildMultiAssetV5,\n Xcm,\n XcmAssetId,\n XcmError,\n XcmErrorV0,\n XcmErrorV1,\n XcmErrorV2,\n XcmErrorV3,\n XcmErrorV4,\n XcmErrorV5,\n XcmOrderV0,\n XcmOrderV1,\n XcmOrigin,\n XcmOriginKind,\n XcmV0,\n XcmV1,\n XcmV2,\n XcmV3,\n XcmV4,\n XcmV5,\n XcmVersion,\n XcmpMessageFormat,\n} from '@polkadot/types/interfaces/xcm';\nimport type { XcmPaymentApiError } from '@polkadot/types/interfaces/xcmPaymentApi';\nimport type { Error } from '@polkadot/types/interfaces/xcmRuntimeApi';\n\ndeclare module '@polkadot/types/types/registry' {\n interface InterfaceTypes {\n AbridgedCandidateReceipt: AbridgedCandidateReceipt;\n AbridgedHostConfiguration: AbridgedHostConfiguration;\n AbridgedHrmpChannel: AbridgedHrmpChannel;\n AccountData: AccountData;\n AccountId: AccountId;\n AccountId20: AccountId20;\n AccountId32: AccountId32;\n AccountId33: AccountId33;\n AccountIdOf: AccountIdOf;\n AccountIndex: AccountIndex;\n AccountInfo: AccountInfo;\n AccountInfoWithDualRefCount: AccountInfoWithDualRefCount;\n AccountInfoWithProviders: AccountInfoWithProviders;\n AccountInfoWithRefCount: AccountInfoWithRefCount;\n AccountInfoWithRefCountU8: AccountInfoWithRefCountU8;\n AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount;\n AccountStatus: AccountStatus;\n AccountValidity: AccountValidity;\n AccountVote: AccountVote;\n AccountVoteSplit: AccountVoteSplit;\n AccountVoteStandard: AccountVoteStandard;\n ActiveEraInfo: ActiveEraInfo;\n ActiveGilt: ActiveGilt;\n ActiveGiltsTotal: ActiveGiltsTotal;\n ActiveIndex: ActiveIndex;\n ActiveRecovery: ActiveRecovery;\n Address: Address;\n AliveContractInfo: AliveContractInfo;\n AllowedSlots: AllowedSlots;\n AnySignature: AnySignature;\n ApiId: ApiId;\n ApplyExtrinsicResult: ApplyExtrinsicResult;\n ApplyExtrinsicResultPre6: ApplyExtrinsicResultPre6;\n ApprovalFlag: ApprovalFlag;\n Approvals: Approvals;\n ApprovalVotingParams: ApprovalVotingParams;\n ArithmeticError: ArithmeticError;\n AssetApproval: AssetApproval;\n AssetApprovalKey: AssetApprovalKey;\n AssetBalance: AssetBalance;\n AssetDestroyWitness: AssetDestroyWitness;\n AssetDetails: AssetDetails;\n AssetId: AssetId;\n AssetIdV2: AssetIdV2;\n AssetIdV3: AssetIdV3;\n AssetIdV4: AssetIdV4;\n AssetIdV5: AssetIdV5;\n AssetInstance: AssetInstance;\n AssetInstanceV0: AssetInstanceV0;\n AssetInstanceV1: AssetInstanceV1;\n AssetInstanceV2: AssetInstanceV2;\n AssetInstanceV3: AssetInstanceV3;\n AssetInstanceV4: AssetInstanceV4;\n AssetInstanceV5: AssetInstanceV5;\n AssetMetadata: AssetMetadata;\n AssetOptions: AssetOptions;\n AssignmentId: AssignmentId;\n AssignmentKind: AssignmentKind;\n AsyncBackingParams: AsyncBackingParams;\n AttestedCandidate: AttestedCandidate;\n AuctionIndex: AuctionIndex;\n AuthIndex: AuthIndex;\n AuthorityDiscoveryId: AuthorityDiscoveryId;\n AuthorityId: AuthorityId;\n AuthorityIndex: AuthorityIndex;\n AuthorityList: AuthorityList;\n AuthoritySet: AuthoritySet;\n AuthoritySetChange: AuthoritySetChange;\n AuthoritySetChanges: AuthoritySetChanges;\n AuthoritySignature: AuthoritySignature;\n AuthorityWeight: AuthorityWeight;\n AvailabilityBitfield: AvailabilityBitfield;\n AvailabilityBitfieldRecord: AvailabilityBitfieldRecord;\n BabeAuthorityWeight: BabeAuthorityWeight;\n BabeBlockWeight: BabeBlockWeight;\n BabeEpochConfiguration: BabeEpochConfiguration;\n BabeEquivocationProof: BabeEquivocationProof;\n BabeGenesisConfiguration: BabeGenesisConfiguration;\n BabeGenesisConfigurationV1: BabeGenesisConfigurationV1;\n BabeWeight: BabeWeight;\n BackedCandidate: BackedCandidate;\n BackingState: BackingState;\n Balance: Balance;\n BalanceLock: BalanceLock;\n BalanceLockTo212: BalanceLockTo212;\n BalanceOf: BalanceOf;\n BalanceStatus: BalanceStatus;\n BeefyAuthoritySet: BeefyAuthoritySet;\n BeefyCommitment: BeefyCommitment;\n BeefyCompactSignedCommitment: BeefyCompactSignedCommitment;\n BeefyEquivocationProof: BeefyEquivocationProof;\n BeefyId: BeefyId;\n BeefyKey: BeefyKey;\n BeefyNextAuthoritySet: BeefyNextAuthoritySet;\n BeefyPayload: BeefyPayload;\n BeefyPayloadId: BeefyPayloadId;\n BeefySignedCommitment: BeefySignedCommitment;\n BeefyVersionedFinalityProof: BeefyVersionedFinalityProof;\n BeefyVoteMessage: BeefyVoteMessage;\n BenchmarkBatch: BenchmarkBatch;\n BenchmarkConfig: BenchmarkConfig;\n BenchmarkList: BenchmarkList;\n BenchmarkMetadata: BenchmarkMetadata;\n BenchmarkParameter: BenchmarkParameter;\n BenchmarkResult: BenchmarkResult;\n Bid: Bid;\n Bidder: Bidder;\n BidKind: BidKind;\n BitVec: BitVec;\n Block: Block;\n BlockAttestations: BlockAttestations;\n BlockHash: BlockHash;\n BlockLength: BlockLength;\n BlockNumber: BlockNumber;\n BlockNumberFor: BlockNumberFor;\n BlockNumberOf: BlockNumberOf;\n BlockStats: BlockStats;\n BlockTrace: BlockTrace;\n BlockTraceEvent: BlockTraceEvent;\n BlockTraceEventData: BlockTraceEventData;\n BlockTraceSpan: BlockTraceSpan;\n BlockV0: BlockV0;\n BlockV1: BlockV1;\n BlockV2: BlockV2;\n BlockV3: BlockV3;\n BlockWeights: BlockWeights;\n BodyId: BodyId;\n BodyIdV2: BodyIdV2;\n BodyIdV3: BodyIdV3;\n BodyPart: BodyPart;\n BodyPartV2: BodyPartV2;\n BodyPartV3: BodyPartV3;\n bool: bool;\n Bool: Bool;\n Bounty: Bounty;\n BountyIndex: BountyIndex;\n BountyStatus: BountyStatus;\n BountyStatusActive: BountyStatusActive;\n BountyStatusCuratorProposed: BountyStatusCuratorProposed;\n BountyStatusPendingPayout: BountyStatusPendingPayout;\n BridgedBlockHash: BridgedBlockHash;\n BridgedBlockNumber: BridgedBlockNumber;\n BridgedHeader: BridgedHeader;\n BridgeMessageId: BridgeMessageId;\n BufferedSessionChange: BufferedSessionChange;\n Bytes: Bytes;\n Call: Call;\n CallDryRunEffects: CallDryRunEffects;\n CallHash: CallHash;\n CallHashOf: CallHashOf;\n CallIndex: CallIndex;\n CallOrigin: CallOrigin;\n CandidateCommitments: CandidateCommitments;\n CandidateDescriptor: CandidateDescriptor;\n CandidateEvent: CandidateEvent;\n CandidateHash: CandidateHash;\n CandidateInfo: CandidateInfo;\n CandidatePendingAvailability: CandidatePendingAvailability;\n CandidateReceipt: CandidateReceipt;\n ChainId: ChainId;\n ChainProperties: ChainProperties;\n ChainType: ChainType;\n ChangesTrieConfiguration: ChangesTrieConfiguration;\n ChangesTrieSignal: ChangesTrieSignal;\n CheckInherentsResult: CheckInherentsResult;\n ClassDetails: ClassDetails;\n ClassId: ClassId;\n ClassMetadata: ClassMetadata;\n CodecHash: CodecHash;\n CodeHash: CodeHash;\n CodeSource: CodeSource;\n CodeUploadRequest: CodeUploadRequest;\n CodeUploadResult: CodeUploadResult;\n CodeUploadResultValue: CodeUploadResultValue;\n CollationInfo: CollationInfo;\n CollationInfoV1: CollationInfoV1;\n CollatorId: CollatorId;\n CollatorSignature: CollatorSignature;\n CollectiveOrigin: CollectiveOrigin;\n CommittedCandidateReceipt: CommittedCandidateReceipt;\n CompactAssignments: CompactAssignments;\n CompactAssignmentsTo257: CompactAssignmentsTo257;\n CompactAssignmentsTo265: CompactAssignmentsTo265;\n CompactAssignmentsWith16: CompactAssignmentsWith16;\n CompactAssignmentsWith24: CompactAssignmentsWith24;\n CompactScore: CompactScore;\n CompactScoreCompact: CompactScoreCompact;\n ConfigData: ConfigData;\n Consensus: Consensus;\n ConsensusEngineId: ConsensusEngineId;\n Constraints: Constraints;\n ConsumedWeight: ConsumedWeight;\n ContractCallFlags: ContractCallFlags;\n ContractCallRequest: ContractCallRequest;\n ContractConstructorSpecLatest: ContractConstructorSpecLatest;\n ContractConstructorSpecV0: ContractConstructorSpecV0;\n ContractConstructorSpecV1: ContractConstructorSpecV1;\n ContractConstructorSpecV2: ContractConstructorSpecV2;\n ContractConstructorSpecV3: ContractConstructorSpecV3;\n ContractConstructorSpecV4: ContractConstructorSpecV4;\n ContractContractSpecV0: ContractContractSpecV0;\n ContractContractSpecV1: ContractContractSpecV1;\n ContractContractSpecV2: ContractContractSpecV2;\n ContractContractSpecV3: ContractContractSpecV3;\n ContractContractSpecV4: ContractContractSpecV4;\n ContractContractSpecV5: ContractContractSpecV5;\n ContractContractSpecV6: ContractContractSpecV6;\n ContractCryptoHasher: ContractCryptoHasher;\n ContractDiscriminant: ContractDiscriminant;\n ContractDisplayName: ContractDisplayName;\n ContractEnvironmentV4: ContractEnvironmentV4;\n ContractEventParamSpecLatest: ContractEventParamSpecLatest;\n ContractEventParamSpecV0: ContractEventParamSpecV0;\n ContractEventParamSpecV2: ContractEventParamSpecV2;\n ContractEventSpecLatest: ContractEventSpecLatest;\n ContractEventSpecV0: ContractEventSpecV0;\n ContractEventSpecV1: ContractEventSpecV1;\n ContractEventSpecV2: ContractEventSpecV2;\n ContractEventSpecV3: ContractEventSpecV3;\n ContractExecResult: ContractExecResult;\n ContractExecResultOk: ContractExecResultOk;\n ContractExecResultResult: ContractExecResultResult;\n ContractExecResultSuccessTo255: ContractExecResultSuccessTo255;\n ContractExecResultSuccessTo260: ContractExecResultSuccessTo260;\n ContractExecResultTo255: ContractExecResultTo255;\n ContractExecResultTo260: ContractExecResultTo260;\n ContractExecResultTo267: ContractExecResultTo267;\n ContractExecResultU64: ContractExecResultU64;\n ContractInfo: ContractInfo;\n ContractInstantiateResult: ContractInstantiateResult;\n ContractInstantiateResultTo267: ContractInstantiateResultTo267;\n ContractInstantiateResultTo299: ContractInstantiateResultTo299;\n ContractInstantiateResultU64: ContractInstantiateResultU64;\n ContractLayoutArray: ContractLayoutArray;\n ContractLayoutCell: ContractLayoutCell;\n ContractLayoutEnum: ContractLayoutEnum;\n ContractLayoutHash: ContractLayoutHash;\n ContractLayoutHashingStrategy: ContractLayoutHashingStrategy;\n ContractLayoutKey: ContractLayoutKey;\n ContractLayoutStruct: ContractLayoutStruct;\n ContractLayoutStructField: ContractLayoutStructField;\n ContractMessageParamSpecLatest: ContractMessageParamSpecLatest;\n ContractMessageParamSpecV0: ContractMessageParamSpecV0;\n ContractMessageParamSpecV2: ContractMessageParamSpecV2;\n ContractMessageSpecLatest: ContractMessageSpecLatest;\n ContractMessageSpecV0: ContractMessageSpecV0;\n ContractMessageSpecV1: ContractMessageSpecV1;\n ContractMessageSpecV2: ContractMessageSpecV2;\n ContractMessageSpecV3: ContractMessageSpecV3;\n ContractMetadata: ContractMetadata;\n ContractMetadataLatest: ContractMetadataLatest;\n ContractMetadataV0: ContractMetadataV0;\n ContractMetadataV1: ContractMetadataV1;\n ContractMetadataV2: ContractMetadataV2;\n ContractMetadataV3: ContractMetadataV3;\n ContractMetadataV4: ContractMetadataV4;\n ContractMetadataV5: ContractMetadataV5;\n ContractMetadataV6: ContractMetadataV6;\n ContractProject: ContractProject;\n ContractProjectContract: ContractProjectContract;\n ContractProjectInfo: ContractProjectInfo;\n ContractProjectSource: ContractProjectSource;\n ContractProjectV0: ContractProjectV0;\n ContractReturnFlags: ContractReturnFlags;\n ContractReviveProjectInfo: ContractReviveProjectInfo;\n ContractReviveProjectSource: ContractReviveProjectSource;\n ContractSelector: ContractSelector;\n ContractStorageKey: ContractStorageKey;\n ContractStorageLayout: ContractStorageLayout;\n ContractTypeSpec: ContractTypeSpec;\n Conviction: Conviction;\n CoreAssignment: CoreAssignment;\n CoreIndex: CoreIndex;\n CoreOccupied: CoreOccupied;\n CoreState: CoreState;\n CrateVersion: CrateVersion;\n CreatedBlock: CreatedBlock;\n CustomMetadata15: CustomMetadata15;\n CustomValueMetadata15: CustomValueMetadata15;\n Data: Data;\n DeferredOffenceOf: DeferredOffenceOf;\n DefunctVoter: DefunctVoter;\n DelayKind: DelayKind;\n DelayKindBest: DelayKindBest;\n Delegations: Delegations;\n DeletedContract: DeletedContract;\n DeliveredMessages: DeliveredMessages;\n DepositBalance: DepositBalance;\n DepositBalanceOf: DepositBalanceOf;\n DestroyWitness: DestroyWitness;\n Digest: Digest;\n DigestItem: DigestItem;\n DigestOf: DigestOf;\n DispatchClass: DispatchClass;\n DispatchError: DispatchError;\n DispatchErrorModule: DispatchErrorModule;\n DispatchErrorModulePre6: DispatchErrorModulePre6;\n DispatchErrorModuleU8: DispatchErrorModuleU8;\n DispatchErrorModuleU8a: DispatchErrorModuleU8a;\n DispatchErrorPre6: DispatchErrorPre6;\n DispatchErrorPre6First: DispatchErrorPre6First;\n DispatchErrorTo198: DispatchErrorTo198;\n DispatchFeePayment: DispatchFeePayment;\n DispatchInfo: DispatchInfo;\n DispatchInfoTo190: DispatchInfoTo190;\n DispatchInfoTo244: DispatchInfoTo244;\n DispatchOutcome: DispatchOutcome;\n DispatchOutcomePre6: DispatchOutcomePre6;\n DispatchResult: DispatchResult;\n DispatchResultOf: DispatchResultOf;\n DispatchResultTo198: DispatchResultTo198;\n DispatchResultWithPostInfo: DispatchResultWithPostInfo;\n DisputeLocation: DisputeLocation;\n DisputeProof: DisputeProof;\n DisputeResult: DisputeResult;\n DisputeState: DisputeState;\n DisputeStatement: DisputeStatement;\n DisputeStatementSet: DisputeStatementSet;\n DisputesTimeSlot: DisputesTimeSlot;\n DoubleEncodedCall: DoubleEncodedCall;\n DoubleVoteReport: DoubleVoteReport;\n DownwardMessage: DownwardMessage;\n EcdsaSignature: EcdsaSignature;\n Ed25519Signature: Ed25519Signature;\n EIP1559Transaction: EIP1559Transaction;\n EIP2930Transaction: EIP2930Transaction;\n EIP7702Transaction: EIP7702Transaction;\n ElectionCompute: ElectionCompute;\n ElectionPhase: ElectionPhase;\n ElectionResult: ElectionResult;\n ElectionResultToSpec10: ElectionResultToSpec10;\n ElectionScore: ElectionScore;\n ElectionSize: ElectionSize;\n ElectionStatus: ElectionStatus;\n EncodedFinalityProofs: EncodedFinalityProofs;\n EncodedJustification: EncodedJustification;\n EnumDeprecationInfoV16: EnumDeprecationInfoV16;\n Epoch: Epoch;\n EpochAuthorship: EpochAuthorship;\n Era: Era;\n EraIndex: EraIndex;\n EraPoints: EraPoints;\n EraRewardPoints: EraRewardPoints;\n EraRewards: EraRewards;\n Error: Error;\n ErrorMetadataLatest: ErrorMetadataLatest;\n ErrorMetadataV10: ErrorMetadataV10;\n ErrorMetadataV11: ErrorMetadataV11;\n ErrorMetadataV12: ErrorMetadataV12;\n ErrorMetadataV13: ErrorMetadataV13;\n ErrorMetadataV14: ErrorMetadataV14;\n ErrorMetadataV9: ErrorMetadataV9;\n EthAccessList: EthAccessList;\n EthAccessListItem: EthAccessListItem;\n EthAccount: EthAccount;\n EthAddress: EthAddress;\n EthAuthorizationList: EthAuthorizationList;\n EthAuthorizationListItem: EthAuthorizationListItem;\n EthAuthorizationSignature: EthAuthorizationSignature;\n EthBlock: EthBlock;\n EthBloom: EthBloom;\n EthCallRequest: EthCallRequest;\n EthereumAccountId: EthereumAccountId;\n EthereumAddress: EthereumAddress;\n EthereumLookupSource: EthereumLookupSource;\n EthereumSignature: EthereumSignature;\n EthFeeHistory: EthFeeHistory;\n EthFilter: EthFilter;\n EthFilterAddress: EthFilterAddress;\n EthFilterChanges: EthFilterChanges;\n EthFilterTopic: EthFilterTopic;\n EthFilterTopicEntry: EthFilterTopicEntry;\n EthFilterTopicInner: EthFilterTopicInner;\n EthHeader: EthHeader;\n EthLegacyTransactionSignature: EthLegacyTransactionSignature;\n EthLog: EthLog;\n EthReceipt: EthReceipt;\n EthReceiptV0: EthReceiptV0;\n EthReceiptV3: EthReceiptV3;\n EthReceiptV4: EthReceiptV4;\n EthRichBlock: EthRichBlock;\n EthRichHeader: EthRichHeader;\n EthStorageProof: EthStorageProof;\n EthSubKind: EthSubKind;\n EthSubParams: EthSubParams;\n EthSubResult: EthSubResult;\n EthSyncInfo: EthSyncInfo;\n EthSyncStatus: EthSyncStatus;\n EthTransaction: EthTransaction;\n EthTransactionAction: EthTransactionAction;\n EthTransactionCondition: EthTransactionCondition;\n EthTransactionRequest: EthTransactionRequest;\n EthTransactionSignature: EthTransactionSignature;\n EthTransactionStatus: EthTransactionStatus;\n EthWork: EthWork;\n Event: Event;\n EventId: EventId;\n EventIndex: EventIndex;\n EventMetadataLatest: EventMetadataLatest;\n EventMetadataV10: EventMetadataV10;\n EventMetadataV11: EventMetadataV11;\n EventMetadataV12: EventMetadataV12;\n EventMetadataV13: EventMetadataV13;\n EventMetadataV14: EventMetadataV14;\n EventMetadataV9: EventMetadataV9;\n EventRecord: EventRecord;\n EvmAccount: EvmAccount;\n EvmCallInfo: EvmCallInfo;\n EvmCallInfoV2: EvmCallInfoV2;\n EvmCreateInfo: EvmCreateInfo;\n EvmCreateInfoV2: EvmCreateInfoV2;\n EvmLog: EvmLog;\n EvmVicinity: EvmVicinity;\n EvmWeightInfo: EvmWeightInfo;\n ExecReturnValue: ExecReturnValue;\n ExecutorParam: ExecutorParam;\n ExecutorParams: ExecutorParams;\n ExecutorParamsHash: ExecutorParamsHash;\n ExitError: ExitError;\n ExitFatal: ExitFatal;\n ExitReason: ExitReason;\n ExitRevert: ExitRevert;\n ExitSucceed: ExitSucceed;\n ExplicitDisputeStatement: ExplicitDisputeStatement;\n Exposure: Exposure;\n ExtendedBalance: ExtendedBalance;\n Extrinsic: Extrinsic;\n ExtrinsicEra: ExtrinsicEra;\n ExtrinsicInclusionMode: ExtrinsicInclusionMode;\n ExtrinsicMetadataLatest: ExtrinsicMetadataLatest;\n ExtrinsicMetadataV11: ExtrinsicMetadataV11;\n ExtrinsicMetadataV12: ExtrinsicMetadataV12;\n ExtrinsicMetadataV13: ExtrinsicMetadataV13;\n ExtrinsicMetadataV14: ExtrinsicMetadataV14;\n ExtrinsicMetadataV15: ExtrinsicMetadataV15;\n ExtrinsicMetadataV16: ExtrinsicMetadataV16;\n ExtrinsicOrHash: ExtrinsicOrHash;\n ExtrinsicPayload: ExtrinsicPayload;\n ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown;\n ExtrinsicPayloadV4: ExtrinsicPayloadV4;\n ExtrinsicPayloadV5: ExtrinsicPayloadV5;\n ExtrinsicSignature: ExtrinsicSignature;\n ExtrinsicSignatureV4: ExtrinsicSignatureV4;\n ExtrinsicSignatureV5: ExtrinsicSignatureV5;\n ExtrinsicStatus: ExtrinsicStatus;\n ExtrinsicsWeight: ExtrinsicsWeight;\n ExtrinsicUnknown: ExtrinsicUnknown;\n ExtrinsicV4: ExtrinsicV4;\n ExtrinsicV5: ExtrinsicV5;\n f32: f32;\n F32: F32;\n f64: f64;\n F64: F64;\n FeeDetails: FeeDetails;\n Fixed128: Fixed128;\n Fixed64: Fixed64;\n FixedI128: FixedI128;\n FixedI64: FixedI64;\n FixedU128: FixedU128;\n FixedU64: FixedU64;\n Forcing: Forcing;\n ForkTreePendingChange: ForkTreePendingChange;\n ForkTreePendingChangeNode: ForkTreePendingChangeNode;\n FullIdentification: FullIdentification;\n FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest;\n FunctionArgumentMetadataV10: FunctionArgumentMetadataV10;\n FunctionArgumentMetadataV11: FunctionArgumentMetadataV11;\n FunctionArgumentMetadataV12: FunctionArgumentMetadataV12;\n FunctionArgumentMetadataV13: FunctionArgumentMetadataV13;\n FunctionArgumentMetadataV14: FunctionArgumentMetadataV14;\n FunctionArgumentMetadataV9: FunctionArgumentMetadataV9;\n FunctionMetadataLatest: FunctionMetadataLatest;\n FunctionMetadataV10: FunctionMetadataV10;\n FunctionMetadataV11: FunctionMetadataV11;\n FunctionMetadataV12: FunctionMetadataV12;\n FunctionMetadataV13: FunctionMetadataV13;\n FunctionMetadataV14: FunctionMetadataV14;\n FunctionMetadataV9: FunctionMetadataV9;\n FundIndex: FundIndex;\n FundInfo: FundInfo;\n Fungibility: Fungibility;\n FungibilityV0: FungibilityV0;\n FungibilityV1: FungibilityV1;\n FungibilityV2: FungibilityV2;\n FungibilityV3: FungibilityV3;\n FungibilityV4: FungibilityV4;\n FungibilityV5: FungibilityV5;\n FungiblesAccessError: FungiblesAccessError;\n Gas: Gas;\n GenesisBuildErr: GenesisBuildErr;\n GiltBid: GiltBid;\n GlobalValidationData: GlobalValidationData;\n GlobalValidationSchedule: GlobalValidationSchedule;\n GrandpaCommit: GrandpaCommit;\n GrandpaEquivocation: GrandpaEquivocation;\n GrandpaEquivocationProof: GrandpaEquivocationProof;\n GrandpaEquivocationValue: GrandpaEquivocationValue;\n GrandpaJustification: GrandpaJustification;\n GrandpaPrecommit: GrandpaPrecommit;\n GrandpaPrevote: GrandpaPrevote;\n GrandpaSignedPrecommit: GrandpaSignedPrecommit;\n GroupIndex: GroupIndex;\n GroupRotationInfo: GroupRotationInfo;\n H1024: H1024;\n H128: H128;\n H160: H160;\n H2048: H2048;\n H256: H256;\n H32: H32;\n H512: H512;\n H64: H64;\n Hash: Hash;\n HeadData: HeadData;\n Header: Header;\n HeaderPartial: HeaderPartial;\n Health: Health;\n Heartbeat: Heartbeat;\n HeartbeatTo244: HeartbeatTo244;\n HintV5: HintV5;\n HostConfiguration: HostConfiguration;\n HostFnWeights: HostFnWeights;\n HostFnWeightsTo264: HostFnWeightsTo264;\n HrmpChannel: HrmpChannel;\n HrmpChannelId: HrmpChannelId;\n HrmpOpenChannelRequest: HrmpOpenChannelRequest;\n i128: i128;\n I128: I128;\n i16: i16;\n I16: I16;\n i256: i256;\n I256: I256;\n i32: i32;\n I32: I32;\n I32F32: I32F32;\n i64: i64;\n I64: I64;\n i8: i8;\n I8: I8;\n IdentificationTuple: IdentificationTuple;\n IdentityFields: IdentityFields;\n IdentityInfo: IdentityInfo;\n IdentityInfoAdditional: IdentityInfoAdditional;\n IdentityInfoTo198: IdentityInfoTo198;\n IdentityJudgement: IdentityJudgement;\n ImmortalEra: ImmortalEra;\n ImportedAux: ImportedAux;\n InboundDownwardMessage: InboundDownwardMessage;\n InboundHrmpLimitations: InboundHrmpLimitations;\n InboundHrmpMessage: InboundHrmpMessage;\n InboundHrmpMessages: InboundHrmpMessages;\n InboundLaneData: InboundLaneData;\n InboundRelayer: InboundRelayer;\n InboundStatus: InboundStatus;\n IncludedBlocks: IncludedBlocks;\n InclusionFee: InclusionFee;\n IncomingParachain: IncomingParachain;\n IncomingParachainDeploy: IncomingParachainDeploy;\n IncomingParachainFixed: IncomingParachainFixed;\n Index: Index;\n IndicesLookupSource: IndicesLookupSource;\n IndividualExposure: IndividualExposure;\n InherentData: InherentData;\n InherentIdentifier: InherentIdentifier;\n InitializationData: InitializationData;\n InstanceDetails: InstanceDetails;\n InstanceId: InstanceId;\n InstanceMetadata: InstanceMetadata;\n InstantiateRequest: InstantiateRequest;\n InstantiateRequestV1: InstantiateRequestV1;\n InstantiateRequestV2: InstantiateRequestV2;\n InstantiateReturnValue: InstantiateReturnValue;\n InstantiateReturnValueOk: InstantiateReturnValueOk;\n InstantiateReturnValueTo267: InstantiateReturnValueTo267;\n InstructionV2: InstructionV2;\n InstructionV3: InstructionV3;\n InstructionV4: InstructionV4;\n InstructionV5: InstructionV5;\n InstructionWeights: InstructionWeights;\n InteriorMultiLocation: InteriorMultiLocation;\n InteriorMultiLocationV2: InteriorMultiLocationV2;\n InteriorMultiLocationV3: InteriorMultiLocationV3;\n InteriorMultiLocationV5: InteriorMultiLocationV5;\n InvalidDisputeStatementKind: InvalidDisputeStatementKind;\n InvalidTransaction: InvalidTransaction;\n isize: isize;\n ISize: ISize;\n ItemDeprecationInfoV16: ItemDeprecationInfoV16;\n Json: Json;\n Junction: Junction;\n Junctions: Junctions;\n JunctionsV1: JunctionsV1;\n JunctionsV2: JunctionsV2;\n JunctionsV3: JunctionsV3;\n JunctionsV4: JunctionsV4;\n JunctionsV5: JunctionsV5;\n JunctionV0: JunctionV0;\n JunctionV1: JunctionV1;\n JunctionV2: JunctionV2;\n JunctionV3: JunctionV3;\n JunctionV4: JunctionV4;\n JunctionV5: JunctionV5;\n Justification: Justification;\n JustificationNotification: JustificationNotification;\n Justifications: Justifications;\n Key: Key;\n KeyOwnerProof: KeyOwnerProof;\n Keys: Keys;\n KeyType: KeyType;\n KeyTypeId: KeyTypeId;\n KeyValue: KeyValue;\n KeyValueOption: KeyValueOption;\n Kind: Kind;\n LaneId: LaneId;\n LastContribution: LastContribution;\n LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo;\n LeasePeriod: LeasePeriod;\n LeasePeriodOf: LeasePeriodOf;\n LegacyTransaction: LegacyTransaction;\n Limits: Limits;\n LimitsTo264: LimitsTo264;\n LocalValidationData: LocalValidationData;\n LockIdentifier: LockIdentifier;\n LookupSource: LookupSource;\n LookupTarget: LookupTarget;\n LotteryConfig: LotteryConfig;\n MaxPalletNameLen: MaxPalletNameLen;\n MaxPalletsInfo: MaxPalletsInfo;\n MaybeErrorCodeV3: MaybeErrorCodeV3;\n MaybeRandomness: MaybeRandomness;\n MaybeVrf: MaybeVrf;\n MemberCount: MemberCount;\n MembershipProof: MembershipProof;\n MessageData: MessageData;\n MessageId: MessageId;\n MessageIngestionType: MessageIngestionType;\n MessageKey: MessageKey;\n MessageNonce: MessageNonce;\n MessageQueueChain: MessageQueueChain;\n MessagesDeliveryProofOf: MessagesDeliveryProofOf;\n MessagesProofOf: MessagesProofOf;\n MessagingStateSnapshot: MessagingStateSnapshot;\n MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry;\n MetadataAll: MetadataAll;\n MetadataLatest: MetadataLatest;\n MetadataV10: MetadataV10;\n MetadataV11: MetadataV11;\n MetadataV12: MetadataV12;\n MetadataV13: MetadataV13;\n MetadataV14: MetadataV14;\n MetadataV15: MetadataV15;\n MetadataV16: MetadataV16;\n MetadataV9: MetadataV9;\n MigrationStatusResult: MigrationStatusResult;\n Mixnode: Mixnode;\n MixnodesErr: MixnodesErr;\n MmrBatchProof: MmrBatchProof;\n MmrEncodableOpaqueLeaf: MmrEncodableOpaqueLeaf;\n MmrError: MmrError;\n MmrHash: MmrHash;\n MmrLeafBatchProof: MmrLeafBatchProof;\n MmrLeafIndex: MmrLeafIndex;\n MmrLeafProof: MmrLeafProof;\n MmrNodeIndex: MmrNodeIndex;\n MmrProof: MmrProof;\n MmrRootHash: MmrRootHash;\n ModuleConstantMetadataV10: ModuleConstantMetadataV10;\n ModuleConstantMetadataV11: ModuleConstantMetadataV11;\n ModuleConstantMetadataV12: ModuleConstantMetadataV12;\n ModuleConstantMetadataV13: ModuleConstantMetadataV13;\n ModuleConstantMetadataV9: ModuleConstantMetadataV9;\n ModuleId: ModuleId;\n ModuleMetadataV10: ModuleMetadataV10;\n ModuleMetadataV11: ModuleMetadataV11;\n ModuleMetadataV12: ModuleMetadataV12;\n ModuleMetadataV13: ModuleMetadataV13;\n ModuleMetadataV9: ModuleMetadataV9;\n Moment: Moment;\n MomentOf: MomentOf;\n MoreAttestations: MoreAttestations;\n MortalEra: MortalEra;\n MultiAddress: MultiAddress;\n MultiAsset: MultiAsset;\n MultiAssetFilter: MultiAssetFilter;\n MultiAssetFilterV1: MultiAssetFilterV1;\n MultiAssetFilterV2: MultiAssetFilterV2;\n MultiAssetFilterV3: MultiAssetFilterV3;\n MultiAssetFilterV4: MultiAssetFilterV4;\n MultiAssetFilterV5: MultiAssetFilterV5;\n MultiAssets: MultiAssets;\n MultiAssetsV1: MultiAssetsV1;\n MultiAssetsV2: MultiAssetsV2;\n MultiAssetsV3: MultiAssetsV3;\n MultiAssetsV4: MultiAssetsV4;\n MultiAssetsV5: MultiAssetsV5;\n MultiAssetTransferFilterV5: MultiAssetTransferFilterV5;\n MultiAssetV0: MultiAssetV0;\n MultiAssetV1: MultiAssetV1;\n MultiAssetV2: MultiAssetV2;\n MultiAssetV3: MultiAssetV3;\n MultiAssetV4: MultiAssetV4;\n MultiAssetV5: MultiAssetV5;\n MultiDisputeStatementSet: MultiDisputeStatementSet;\n MultiLocation: MultiLocation;\n MultiLocationV0: MultiLocationV0;\n MultiLocationV1: MultiLocationV1;\n MultiLocationV2: MultiLocationV2;\n MultiLocationV3: MultiLocationV3;\n MultiLocationV4: MultiLocationV4;\n MultiLocationV5: MultiLocationV5;\n Multiplier: Multiplier;\n Multisig: Multisig;\n MultiSignature: MultiSignature;\n MultiSigner: MultiSigner;\n NetworkId: NetworkId;\n NetworkIdV2: NetworkIdV2;\n NetworkIdV3: NetworkIdV3;\n NetworkIdV4: NetworkIdV4;\n NetworkIdV5: NetworkIdV5;\n NetworkState: NetworkState;\n NetworkStatePeerset: NetworkStatePeerset;\n NetworkStatePeersetInfo: NetworkStatePeersetInfo;\n NewBidder: NewBidder;\n NextAuthority: NextAuthority;\n NextConfigDescriptor: NextConfigDescriptor;\n NextConfigDescriptorV1: NextConfigDescriptorV1;\n NftCollectionId: NftCollectionId;\n NftItemId: NftItemId;\n NodeFeatures: NodeFeatures;\n NodeRole: NodeRole;\n Nominations: Nominations;\n NominatorIndex: NominatorIndex;\n NominatorIndexCompact: NominatorIndexCompact;\n NotConnectedPeer: NotConnectedPeer;\n NpApiError: NpApiError;\n NpPoolId: NpPoolId;\n Null: Null;\n OccupiedCore: OccupiedCore;\n OccupiedCoreAssumption: OccupiedCoreAssumption;\n OffchainAccuracy: OffchainAccuracy;\n OffchainAccuracyCompact: OffchainAccuracyCompact;\n OffenceDetails: OffenceDetails;\n Offender: Offender;\n OldV1SessionInfo: OldV1SessionInfo;\n OpaqueCall: OpaqueCall;\n OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof;\n OpaqueMetadata: OpaqueMetadata;\n OpaqueMultiaddr: OpaqueMultiaddr;\n OpaqueNetworkState: OpaqueNetworkState;\n OpaquePeerId: OpaquePeerId;\n OpaqueTimeSlot: OpaqueTimeSlot;\n OpenTip: OpenTip;\n OpenTipFinderTo225: OpenTipFinderTo225;\n OpenTipTip: OpenTipTip;\n OpenTipTo225: OpenTipTo225;\n OperatingMode: OperatingMode;\n OptionBool: OptionBool;\n Origin: Origin;\n OriginCaller: OriginCaller;\n OriginKindV0: OriginKindV0;\n OriginKindV1: OriginKindV1;\n OriginKindV2: OriginKindV2;\n OriginKindV3: OriginKindV3;\n OriginKindV4: OriginKindV4;\n OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations;\n OutboundHrmpMessage: OutboundHrmpMessage;\n OutboundLaneData: OutboundLaneData;\n OutboundMessageFee: OutboundMessageFee;\n OutboundPayload: OutboundPayload;\n OutboundStatus: OutboundStatus;\n Outcome: Outcome;\n OutcomeV4: OutcomeV4;\n OuterEnums15: OuterEnums15;\n OverweightIndex: OverweightIndex;\n Owner: Owner;\n PageCounter: PageCounter;\n PageIndexData: PageIndexData;\n PalletAssociatedTypeMetadataV16: PalletAssociatedTypeMetadataV16;\n PalletCallMetadataLatest: PalletCallMetadataLatest;\n PalletCallMetadataV14: PalletCallMetadataV14;\n PalletCallMetadataV16: PalletCallMetadataV16;\n PalletConstantMetadataLatest: PalletConstantMetadataLatest;\n PalletConstantMetadataV14: PalletConstantMetadataV14;\n PalletConstantMetadataV16: PalletConstantMetadataV16;\n PalletErrorMetadataLatest: PalletErrorMetadataLatest;\n PalletErrorMetadataV14: PalletErrorMetadataV14;\n PalletErrorMetadataV16: PalletErrorMetadataV16;\n PalletEventMetadataLatest: PalletEventMetadataLatest;\n PalletEventMetadataV14: PalletEventMetadataV14;\n PalletEventMetadataV16: PalletEventMetadataV16;\n PalletId: PalletId;\n PalletInfoV3: PalletInfoV3;\n PalletInfoV4: PalletInfoV4;\n PalletInfoV5: PalletInfoV5;\n PalletMetadataLatest: PalletMetadataLatest;\n PalletMetadataV14: PalletMetadataV14;\n PalletMetadataV15: PalletMetadataV15;\n PalletMetadataV16: PalletMetadataV16;\n PalletsOrigin: PalletsOrigin;\n PalletStorageMetadataLatest: PalletStorageMetadataLatest;\n PalletStorageMetadataV14: PalletStorageMetadataV14;\n PalletStorageMetadataV16: PalletStorageMetadataV16;\n PalletVersion: PalletVersion;\n PalletViewFunctionMetadataV16: PalletViewFunctionMetadataV16;\n ParachainDispatchOrigin: ParachainDispatchOrigin;\n ParachainInherentData: ParachainInherentData;\n ParachainProposal: ParachainProposal;\n ParachainsInherentData: ParachainsInherentData;\n ParaGenesisArgs: ParaGenesisArgs;\n ParaId: ParaId;\n ParaInfo: ParaInfo;\n ParaLifecycle: ParaLifecycle;\n Parameter: Parameter;\n ParaPastCodeMeta: ParaPastCodeMeta;\n ParaScheduling: ParaScheduling;\n ParathreadClaim: ParathreadClaim;\n ParathreadClaimQueue: ParathreadClaimQueue;\n ParathreadEntry: ParathreadEntry;\n ParaValidatorIndex: ParaValidatorIndex;\n Pays: Pays;\n Peer: Peer;\n PeerEndpoint: PeerEndpoint;\n PeerEndpointAddr: PeerEndpointAddr;\n PeerInfo: PeerInfo;\n PeerPing: PeerPing;\n PendingChange: PendingChange;\n PendingPause: PendingPause;\n PendingResume: PendingResume;\n PendingSlashes: PendingSlashes;\n Perbill: Perbill;\n Percent: Percent;\n PerDispatchClassU32: PerDispatchClassU32;\n PerDispatchClassWeight: PerDispatchClassWeight;\n PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass;\n Period: Period;\n Permill: Permill;\n PermissionLatest: PermissionLatest;\n PermissionsV1: PermissionsV1;\n PermissionVersions: PermissionVersions;\n Perquintill: Perquintill;\n PersistedValidationData: PersistedValidationData;\n PerU16: PerU16;\n Phantom: Phantom;\n PhantomData: PhantomData;\n Phase: Phase;\n PhragmenScore: PhragmenScore;\n Points: Points;\n PortableType: PortableType;\n PortableTypeV14: PortableTypeV14;\n PostDispatchInfo: PostDispatchInfo;\n Precommits: Precommits;\n PrefabWasmModule: PrefabWasmModule;\n PrefixedStorageKey: PrefixedStorageKey;\n PreimageStatus: PreimageStatus;\n PreimageStatusAvailable: PreimageStatusAvailable;\n PreRuntime: PreRuntime;\n Prevotes: Prevotes;\n Priority: Priority;\n PriorLock: PriorLock;\n PropIndex: PropIndex;\n Proposal: Proposal;\n ProposalIndex: ProposalIndex;\n ProxyAnnouncement: ProxyAnnouncement;\n ProxyDefinition: ProxyDefinition;\n ProxyState: ProxyState;\n ProxyType: ProxyType;\n PvfCheckStatement: PvfCheckStatement;\n PvfExecTimeoutKind: PvfExecTimeoutKind;\n PvfPrepTimeoutKind: PvfPrepTimeoutKind;\n QueryId: QueryId;\n QueryResponseInfoV3: QueryResponseInfoV3;\n QueryResponseInfoV4: QueryResponseInfoV4;\n QueryResponseInfoV5: QueryResponseInfoV5;\n QueryStatus: QueryStatus;\n QueueConfigData: QueueConfigData;\n QueuedParathread: QueuedParathread;\n Randomness: Randomness;\n Raw: Raw;\n RawAuraPreDigest: RawAuraPreDigest;\n RawBabePreDigest: RawBabePreDigest;\n RawBabePreDigestCompat: RawBabePreDigestCompat;\n RawBabePreDigestPrimary: RawBabePreDigestPrimary;\n RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159;\n RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain;\n RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159;\n RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF;\n RawBabePreDigestTo159: RawBabePreDigestTo159;\n RawOrigin: RawOrigin;\n RawSolution: RawSolution;\n RawSolutionTo265: RawSolutionTo265;\n RawSolutionWith16: RawSolutionWith16;\n RawSolutionWith24: RawSolutionWith24;\n RawVRFOutput: RawVRFOutput;\n ReadProof: ReadProof;\n ReadySolution: ReadySolution;\n Reasons: Reasons;\n RecoveryConfig: RecoveryConfig;\n RefCount: RefCount;\n RefCountTo259: RefCountTo259;\n ReferendumIndex: ReferendumIndex;\n ReferendumInfo: ReferendumInfo;\n ReferendumInfoFinished: ReferendumInfoFinished;\n ReferendumInfoTo239: ReferendumInfoTo239;\n ReferendumStatus: ReferendumStatus;\n RegisteredParachainInfo: RegisteredParachainInfo;\n RegistrarIndex: RegistrarIndex;\n RegistrarInfo: RegistrarInfo;\n Registration: Registration;\n RegistrationJudgement: RegistrationJudgement;\n RegistrationTo198: RegistrationTo198;\n RelayBlockNumber: RelayBlockNumber;\n RelayChainBlockNumber: RelayChainBlockNumber;\n RelayChainHash: RelayChainHash;\n RelayerId: RelayerId;\n RelayHash: RelayHash;\n Releases: Releases;\n Remark: Remark;\n Renouncing: Renouncing;\n RentProjection: RentProjection;\n ReplacementTimes: ReplacementTimes;\n ReportedRoundStates: ReportedRoundStates;\n Reporter: Reporter;\n ReportIdOf: ReportIdOf;\n ReserveData: ReserveData;\n ReserveIdentifier: ReserveIdentifier;\n Response: Response;\n ResponseV0: ResponseV0;\n ResponseV1: ResponseV1;\n ResponseV2: ResponseV2;\n ResponseV2Error: ResponseV2Error;\n ResponseV3: ResponseV3;\n ResponseV3Error: ResponseV3Error;\n ResponseV3Result: ResponseV3Result;\n ResponseV4: ResponseV4;\n ResponseV5: ResponseV5;\n Retriable: Retriable;\n RewardDestination: RewardDestination;\n RewardPoint: RewardPoint;\n RoundSnapshot: RoundSnapshot;\n RoundState: RoundState;\n RpcMethods: RpcMethods;\n RuntimeApiMetadataLatest: RuntimeApiMetadataLatest;\n RuntimeApiMetadataV15: RuntimeApiMetadataV15;\n RuntimeApiMetadataV16: RuntimeApiMetadataV16;\n RuntimeApiMethodMetadataV15: RuntimeApiMethodMetadataV15;\n RuntimeApiMethodMetadataV16: RuntimeApiMethodMetadataV16;\n RuntimeApiMethodParamMetadataV15: RuntimeApiMethodParamMetadataV15;\n RuntimeCall: RuntimeCall;\n RuntimeDbWeight: RuntimeDbWeight;\n RuntimeDispatchInfo: RuntimeDispatchInfo;\n RuntimeDispatchInfoV1: RuntimeDispatchInfoV1;\n RuntimeDispatchInfoV2: RuntimeDispatchInfoV2;\n RuntimeEvent: RuntimeEvent;\n RuntimeVersion: RuntimeVersion;\n RuntimeVersionApi: RuntimeVersionApi;\n RuntimeVersionPartial: RuntimeVersionPartial;\n RuntimeVersionPre3: RuntimeVersionPre3;\n RuntimeVersionPre4: RuntimeVersionPre4;\n Schedule: Schedule;\n Scheduled: Scheduled;\n ScheduledCore: ScheduledCore;\n ScheduledTo254: ScheduledTo254;\n SchedulePeriod: SchedulePeriod;\n SchedulePriority: SchedulePriority;\n ScheduleTo212: ScheduleTo212;\n ScheduleTo258: ScheduleTo258;\n ScheduleTo264: ScheduleTo264;\n Scheduling: Scheduling;\n ScrapedOnChainVotes: ScrapedOnChainVotes;\n Seal: Seal;\n SealV0: SealV0;\n SeatHolder: SeatHolder;\n SeedOf: SeedOf;\n ServiceQuality: ServiceQuality;\n SessionIndex: SessionIndex;\n SessionInfo: SessionInfo;\n SessionInfoValidatorGroup: SessionInfoValidatorGroup;\n SessionKeys1: SessionKeys1;\n SessionKeys10: SessionKeys10;\n SessionKeys10B: SessionKeys10B;\n SessionKeys2: SessionKeys2;\n SessionKeys3: SessionKeys3;\n SessionKeys4: SessionKeys4;\n SessionKeys5: SessionKeys5;\n SessionKeys6: SessionKeys6;\n SessionKeys6B: SessionKeys6B;\n SessionKeys7: SessionKeys7;\n SessionKeys7B: SessionKeys7B;\n SessionKeys8: SessionKeys8;\n SessionKeys8B: SessionKeys8B;\n SessionKeys9: SessionKeys9;\n SessionKeys9B: SessionKeys9B;\n SessionPhase: SessionPhase;\n SessionStatus: SessionStatus;\n SetId: SetId;\n SetIndex: SetIndex;\n Si0Field: Si0Field;\n Si0LookupTypeId: Si0LookupTypeId;\n Si0Path: Si0Path;\n Si0Type: Si0Type;\n Si0TypeDef: Si0TypeDef;\n Si0TypeDefArray: Si0TypeDefArray;\n Si0TypeDefBitSequence: Si0TypeDefBitSequence;\n Si0TypeDefCompact: Si0TypeDefCompact;\n Si0TypeDefComposite: Si0TypeDefComposite;\n Si0TypeDefPhantom: Si0TypeDefPhantom;\n Si0TypeDefPrimitive: Si0TypeDefPrimitive;\n Si0TypeDefSequence: Si0TypeDefSequence;\n Si0TypeDefTuple: Si0TypeDefTuple;\n Si0TypeDefVariant: Si0TypeDefVariant;\n Si0TypeParameter: Si0TypeParameter;\n Si0Variant: Si0Variant;\n Si1Field: Si1Field;\n Si1LookupTypeId: Si1LookupTypeId;\n Si1Path: Si1Path;\n Si1Type: Si1Type;\n Si1TypeDef: Si1TypeDef;\n Si1TypeDefArray: Si1TypeDefArray;\n Si1TypeDefBitSequence: Si1TypeDefBitSequence;\n Si1TypeDefCompact: Si1TypeDefCompact;\n Si1TypeDefComposite: Si1TypeDefComposite;\n Si1TypeDefPrimitive: Si1TypeDefPrimitive;\n Si1TypeDefSequence: Si1TypeDefSequence;\n Si1TypeDefTuple: Si1TypeDefTuple;\n Si1TypeDefVariant: Si1TypeDefVariant;\n Si1TypeParameter: Si1TypeParameter;\n Si1Variant: Si1Variant;\n SiField: SiField;\n Signature: Signature;\n SignedAvailabilityBitfield: SignedAvailabilityBitfield;\n SignedAvailabilityBitfields: SignedAvailabilityBitfields;\n SignedBlock: SignedBlock;\n SignedBlockWithJustification: SignedBlockWithJustification;\n SignedBlockWithJustifications: SignedBlockWithJustifications;\n SignedExtensionMetadataLatest: SignedExtensionMetadataLatest;\n SignedExtensionMetadataV14: SignedExtensionMetadataV14;\n SignedSubmission: SignedSubmission;\n SignedSubmissionOf: SignedSubmissionOf;\n SignedSubmissionTo276: SignedSubmissionTo276;\n SignerPayload: SignerPayload;\n SigningContext: SigningContext;\n SiLookupTypeId: SiLookupTypeId;\n SiPath: SiPath;\n SiType: SiType;\n SiTypeDef: SiTypeDef;\n SiTypeDefArray: SiTypeDefArray;\n SiTypeDefBitSequence: SiTypeDefBitSequence;\n SiTypeDefCompact: SiTypeDefCompact;\n SiTypeDefComposite: SiTypeDefComposite;\n SiTypeDefPrimitive: SiTypeDefPrimitive;\n SiTypeDefSequence: SiTypeDefSequence;\n SiTypeDefTuple: SiTypeDefTuple;\n SiTypeDefVariant: SiTypeDefVariant;\n SiTypeParameter: SiTypeParameter;\n SiVariant: SiVariant;\n SlashingOffenceKind: SlashingOffenceKind;\n SlashingSpans: SlashingSpans;\n SlashingSpansTo204: SlashingSpansTo204;\n SlashJournalEntry: SlashJournalEntry;\n Slot: Slot;\n SlotDuration: SlotDuration;\n SlotNumber: SlotNumber;\n SlotRange: SlotRange;\n SlotRange10: SlotRange10;\n SocietyJudgement: SocietyJudgement;\n SocietyVote: SocietyVote;\n SolutionOrSnapshotSize: SolutionOrSnapshotSize;\n SolutionSupport: SolutionSupport;\n SolutionSupports: SolutionSupports;\n SpanIndex: SpanIndex;\n SpanRecord: SpanRecord;\n SpecVersion: SpecVersion;\n Sr25519Signature: Sr25519Signature;\n StakingLedger: StakingLedger;\n StakingLedgerTo223: StakingLedgerTo223;\n StakingLedgerTo240: StakingLedgerTo240;\n Statement: Statement;\n StatementKind: StatementKind;\n StatementStoreInvalidStatement: StatementStoreInvalidStatement;\n StatementStoreStatementSource: StatementStoreStatementSource;\n StatementStoreValidStatement: StatementStoreValidStatement;\n StorageChangeSet: StorageChangeSet;\n StorageData: StorageData;\n StorageDeposit: StorageDeposit;\n StorageEntryMetadataLatest: StorageEntryMetadataLatest;\n StorageEntryMetadataV10: StorageEntryMetadataV10;\n StorageEntryMetadataV11: StorageEntryMetadataV11;\n StorageEntryMetadataV12: StorageEntryMetadataV12;\n StorageEntryMetadataV13: StorageEntryMetadataV13;\n StorageEntryMetadataV14: StorageEntryMetadataV14;\n StorageEntryMetadataV16: StorageEntryMetadataV16;\n StorageEntryMetadataV9: StorageEntryMetadataV9;\n StorageEntryModifierLatest: StorageEntryModifierLatest;\n StorageEntryModifierV10: StorageEntryModifierV10;\n StorageEntryModifierV11: StorageEntryModifierV11;\n StorageEntryModifierV12: StorageEntryModifierV12;\n StorageEntryModifierV13: StorageEntryModifierV13;\n StorageEntryModifierV14: StorageEntryModifierV14;\n StorageEntryModifierV9: StorageEntryModifierV9;\n StorageEntryTypeLatest: StorageEntryTypeLatest;\n StorageEntryTypeV10: StorageEntryTypeV10;\n StorageEntryTypeV11: StorageEntryTypeV11;\n StorageEntryTypeV12: StorageEntryTypeV12;\n StorageEntryTypeV13: StorageEntryTypeV13;\n StorageEntryTypeV14: StorageEntryTypeV14;\n StorageEntryTypeV9: StorageEntryTypeV9;\n StorageHasher: StorageHasher;\n StorageHasherV10: StorageHasherV10;\n StorageHasherV11: StorageHasherV11;\n StorageHasherV12: StorageHasherV12;\n StorageHasherV13: StorageHasherV13;\n StorageHasherV14: StorageHasherV14;\n StorageHasherV9: StorageHasherV9;\n StorageInfo: StorageInfo;\n StorageKey: StorageKey;\n StorageKind: StorageKind;\n StorageMetadataV10: StorageMetadataV10;\n StorageMetadataV11: StorageMetadataV11;\n StorageMetadataV12: StorageMetadataV12;\n StorageMetadataV13: StorageMetadataV13;\n StorageMetadataV9: StorageMetadataV9;\n StorageProof: StorageProof;\n StoredPendingChange: StoredPendingChange;\n StoredState: StoredState;\n StrikeCount: StrikeCount;\n SubId: SubId;\n SubmissionIndicesOf: SubmissionIndicesOf;\n Supports: Supports;\n SyncState: SyncState;\n SystemInherentData: SystemInherentData;\n SystemOrigin: SystemOrigin;\n Tally: Tally;\n TaskAddress: TaskAddress;\n TAssetBalance: TAssetBalance;\n TAssetConversion: TAssetConversion;\n TAssetDepositBalance: TAssetDepositBalance;\n Text: Text;\n Timepoint: Timepoint;\n TokenError: TokenError;\n TombstoneContractInfo: TombstoneContractInfo;\n TraceBlockResponse: TraceBlockResponse;\n TraceError: TraceError;\n TransactionalError: TransactionalError;\n TransactionExtensionMetadataLatest: TransactionExtensionMetadataLatest;\n TransactionExtensionMetadataV16: TransactionExtensionMetadataV16;\n TransactionInfo: TransactionInfo;\n TransactionLongevity: TransactionLongevity;\n TransactionPriority: TransactionPriority;\n TransactionSource: TransactionSource;\n TransactionStorageProof: TransactionStorageProof;\n TransactionTag: TransactionTag;\n TransactionV0: TransactionV0;\n TransactionV1: TransactionV1;\n TransactionV2: TransactionV2;\n TransactionV3: TransactionV3;\n TransactionValidity: TransactionValidity;\n TransactionValidityError: TransactionValidityError;\n TransientValidationData: TransientValidationData;\n TreasuryProposal: TreasuryProposal;\n TrieId: TrieId;\n TrieIndex: TrieIndex;\n Type: Type;\n u128: u128;\n U128: U128;\n u16: u16;\n U16: U16;\n u256: u256;\n U256: U256;\n u32: u32;\n U32: U32;\n U32F32: U32F32;\n u64: u64;\n U64: U64;\n u8: u8;\n U8: U8;\n UnappliedSlash: UnappliedSlash;\n UnappliedSlashOther: UnappliedSlashOther;\n UncheckedFungibilityV4: UncheckedFungibilityV4;\n UncheckedFungibilityV5: UncheckedFungibilityV5;\n UncleEntryItem: UncleEntryItem;\n UnknownTransaction: UnknownTransaction;\n UnlockChunk: UnlockChunk;\n UnrewardedRelayer: UnrewardedRelayer;\n UnrewardedRelayersState: UnrewardedRelayersState;\n UpgradeGoAhead: UpgradeGoAhead;\n UpgradeRestriction: UpgradeRestriction;\n UpwardMessage: UpwardMessage;\n usize: usize;\n USize: USize;\n ValidationCode: ValidationCode;\n ValidationCodeHash: ValidationCodeHash;\n ValidationData: ValidationData;\n ValidationDataType: ValidationDataType;\n ValidationFunctionParams: ValidationFunctionParams;\n ValidatorCount: ValidatorCount;\n ValidatorId: ValidatorId;\n ValidatorIdOf: ValidatorIdOf;\n ValidatorIndex: ValidatorIndex;\n ValidatorIndexCompact: ValidatorIndexCompact;\n ValidatorPrefs: ValidatorPrefs;\n ValidatorPrefsTo145: ValidatorPrefsTo145;\n ValidatorPrefsTo196: ValidatorPrefsTo196;\n ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked;\n ValidatorPrefsWithCommission: ValidatorPrefsWithCommission;\n ValidatorSet: ValidatorSet;\n ValidatorSetId: ValidatorSetId;\n ValidatorSignature: ValidatorSignature;\n ValidDisputeStatementKind: ValidDisputeStatementKind;\n ValidityAttestation: ValidityAttestation;\n ValidTransaction: ValidTransaction;\n VariantDeprecationInfoV16: VariantDeprecationInfoV16;\n VecInboundHrmpMessage: VecInboundHrmpMessage;\n VersionedMultiAsset: VersionedMultiAsset;\n VersionedMultiAssets: VersionedMultiAssets;\n VersionedMultiLocation: VersionedMultiLocation;\n VersionedResponse: VersionedResponse;\n VersionedXcm: VersionedXcm;\n VersionMigrationStage: VersionMigrationStage;\n VersionV3: VersionV3;\n VersionV4: VersionV4;\n VestingInfo: VestingInfo;\n VestingSchedule: VestingSchedule;\n Vote: Vote;\n VoteIndex: VoteIndex;\n Voter: Voter;\n VoterInfo: VoterInfo;\n Votes: Votes;\n VotesTo230: VotesTo230;\n VoteThreshold: VoteThreshold;\n VoteWeight: VoteWeight;\n Voting: Voting;\n VotingDelegating: VotingDelegating;\n VotingDirect: VotingDirect;\n VotingDirectVote: VotingDirectVote;\n VouchingStatus: VouchingStatus;\n VrfData: VrfData;\n VrfOutput: VrfOutput;\n VrfProof: VrfProof;\n Weight: Weight;\n WeightLimitV2: WeightLimitV2;\n WeightLimitV3: WeightLimitV3;\n WeightMultiplier: WeightMultiplier;\n WeightPerClass: WeightPerClass;\n WeightToFeeCoefficient: WeightToFeeCoefficient;\n WeightV0: WeightV0;\n WeightV1: WeightV1;\n WeightV2: WeightV2;\n WildFungibility: WildFungibility;\n WildFungibilityV0: WildFungibilityV0;\n WildFungibilityV1: WildFungibilityV1;\n WildFungibilityV2: WildFungibilityV2;\n WildFungibilityV3: WildFungibilityV3;\n WildFungibilityV4: WildFungibilityV4;\n WildFungibilityV5: WildFungibilityV5;\n WildMultiAsset: WildMultiAsset;\n WildMultiAssetV1: WildMultiAssetV1;\n WildMultiAssetV2: WildMultiAssetV2;\n WildMultiAssetV3: WildMultiAssetV3;\n WildMultiAssetV4: WildMultiAssetV4;\n WildMultiAssetV5: WildMultiAssetV5;\n WinnersData: WinnersData;\n WinnersData10: WinnersData10;\n WinnersDataTuple: WinnersDataTuple;\n WinnersDataTuple10: WinnersDataTuple10;\n WinningData: WinningData;\n WinningData10: WinningData10;\n WinningDataEntry: WinningDataEntry;\n WithdrawReasons: WithdrawReasons;\n Xcm: Xcm;\n XcmAssetId: XcmAssetId;\n XcmDryRunApiError: XcmDryRunApiError;\n XcmDryRunEffects: XcmDryRunEffects;\n XcmError: XcmError;\n XcmErrorV0: XcmErrorV0;\n XcmErrorV1: XcmErrorV1;\n XcmErrorV2: XcmErrorV2;\n XcmErrorV3: XcmErrorV3;\n XcmErrorV4: XcmErrorV4;\n XcmErrorV5: XcmErrorV5;\n XcmOrderV0: XcmOrderV0;\n XcmOrderV1: XcmOrderV1;\n XcmOrigin: XcmOrigin;\n XcmOriginKind: XcmOriginKind;\n XcmPaymentApiError: XcmPaymentApiError;\n XcmpMessageFormat: XcmpMessageFormat;\n XcmV0: XcmV0;\n XcmV1: XcmV1;\n XcmV2: XcmV2;\n XcmV3: XcmV3;\n XcmV4: XcmV4;\n XcmV5: XcmV5;\n XcmVersion: XcmVersion;\n } // InterfaceTypes\n} // declare module\n","import './interfaces/augment-api';\nimport './interfaces/augment-types';\nimport './interfaces/types-lookup';\nimport type { KeyringPair, KeyringPair$Json } from '@polkadot/keyring/types';\nimport { ApiPromise, HttpProvider, Keyring, WsProvider } from '@polkadot/api';\nimport {\n cryptoWaitReady,\n decodeAddress,\n encodeAddress,\n isAddress,\n mnemonicGenerate,\n} from '@polkadot/util-crypto';\nimport type { InterfaceTypes } from '@polkadot/types/types/registry';\nimport type { KeypairType } from '@polkadot/util-crypto/types';\nimport type { ProviderInterface } from '@polkadot/rpc-provider/types';\nimport type { ApiDecoration, ApiOptions } from '@polkadot/api/types';\nimport { Metadata, TypeRegistry } from '@polkadot/types';\nimport { result as metadataBytes } from '../metadata.json';\nimport { specVersion } from '../runtime_version.json';\nimport Genesis from '../genesis.json';\nimport { HexString } from '@polkadot/util/types';\n\nexport type { SubmittableExtrinsic } from '@polkadot/api/promise/types';\nexport { ApiDecoration };\nexport { WageProtector } from './WageProtector';\nexport { TxSubmitter, type ISubmittableOptions, type TxSigningAccount } from './TxSubmitter';\nexport { TxResult, type ITxProgressCallback } from './TxResult';\nexport * from './utils';\nexport * from './keyringUtils';\nexport * from './header';\nexport * from './Vault';\nexport * from './convert';\nexport * from './BitcoinLock';\nexport * from './PriceIndex';\nexport {\n Keyring,\n KeyringPair,\n KeyringPair$Json,\n KeypairType,\n mnemonicGenerate,\n decodeAddress,\n isAddress,\n encodeAddress,\n};\n\nexport { u8aToHex, hexToU8a, u8aEq } from '@polkadot/util';\n\nexport * from '@polkadot/types/lookup';\nexport { GenericEvent, GenericBlock, GenericAddress } from '@polkadot/types/generic';\nexport {\n BTreeMap,\n Bytes,\n Compact,\n Enum,\n Null,\n Option,\n Result,\n Bool,\n Tuple,\n Range,\n Struct,\n Text,\n U256,\n U8aFixed,\n Vec,\n bool,\n i128,\n u128,\n u16,\n u32,\n u64,\n u8,\n} from '@polkadot/types-codec';\nexport type {\n ISubmittableResult,\n IExtrinsic,\n SignerResult,\n Signer,\n ISignerPayload,\n} from '@polkadot/types/types/extrinsic';\nexport { type ITuple, type Codec } from '@polkadot/types-codec/types';\nexport {\n type AccountId32,\n type Call,\n type H160,\n type H256,\n type MultiAddress,\n type Permill,\n type AccountId,\n type Header,\n type Block,\n type SignedBlock,\n} from '@polkadot/types/interfaces/runtime';\nexport type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';\nexport { type BlockHash } from '@polkadot/types/interfaces/chain';\nexport { InterfaceTypes as interfaces };\n\nexport type ArgonClient = ApiPromise;\n\n/**\n * Wait for the crypto library to be ready (requires wasm, which needs async loading in commonjs)\n */\nexport async function waitForLoad(): Promise<void> {\n await cryptoWaitReady();\n}\n\n/**\n * Get a client for the given host\n * @param host The host to connect to\n * @param options Additional options for the API\n * @returns The client\n */\nexport async function getClient(host: string, options?: ApiOptions): Promise<ArgonClient> {\n let provider: ProviderInterface;\n if (host.startsWith('http')) {\n provider = new HttpProvider(host);\n } else {\n provider = new WsProvider(host);\n }\n\n options ??= {};\n options.metadata ??= {};\n\n for (const genesisHash of Object.values(Genesis)) {\n options.metadata[`${genesisHash}-${specVersion}`] = metadataBytes as HexString;\n }\n return await ApiPromise.create({ provider, noInitWarn: true, ...options });\n}\n\nconst registry = new TypeRegistry();\nregistry.setMetadata(\n new Metadata(registry, metadataBytes as HexString),\n undefined,\n undefined,\n true,\n);\n\nexport function getOfflineRegistry() {\n return registry;\n}\n","{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"result\": \"0x6d6574610ec908000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173655902011450686173650001146576656e7454010445000118746f706963735d0201185665633c543e00005408346172676f6e5f72756e74696d653052756e74696d654576656e7400017c1853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c44696765737473040080017870616c6c65745f646967657374733a3a4576656e743c52756e74696d653e000100204d756c7469736967040084017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0003001450726f7879040094017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e000400284d696e696e67536c6f740400a4018870616c6c65745f6d696e696e675f736c6f743a3a4576656e743c52756e74696d653e00060030426974636f696e5574786f730400c8019070616c6c65745f626974636f696e5f7574786f733a3a4576656e743c52756e74696d653e000700185661756c74730400dc017470616c6c65745f7661756c74733a3a4576656e743c52756e74696d653e00080030426974636f696e4c6f636b730400e4019070616c6c65745f626974636f696e5f6c6f636b733a3a4576656e743c52756e74696d653e000900204e6f7461726965730400f0017c70616c6c65745f6e6f7461726965733a3a4576656e743c52756e74696d653e000a00204e6f7465626f6f6b04001501017c70616c6c65745f6e6f7465626f6f6b3a3a4576656e743c52756e74696d653e000b0034436861696e5472616e7366657204003101019470616c6c65745f636861696e5f7472616e736665723a3a4576656e743c52756e74696d653e000c0034426c6f636b5365616c5370656304003501019870616c6c65745f626c6f636b5f7365616c5f737065633a3a4576656e743c52756e74696d653e000d001c446f6d61696e7304003901017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000e00285072696365496e64657804006101018870616c6c65745f70726963655f696e6465783a3a4576656e743c52756e74696d653e000f001c4772616e64706104006501015470616c6c65745f6772616e6470613a3a4576656e7400110030426c6f636b5265776172647304007101019070616c6c65745f626c6f636b5f726577617264733a3a4576656e743c52756e74696d653e001300104d696e7404008901016c70616c6c65745f6d696e743a3a4576656e743c52756e74696d653e0014002042616c616e6365730400990101ec70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d652c2070616c6c65745f62616c616e6365733a3a496e7374616e6365313e001500244f776e6572736869700400bd0101ec70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d652c2070616c6c65745f62616c616e6365733a3a496e7374616e6365323e0016001c547850617573650400c101017c70616c6c65745f74785f70617573653a3a4576656e743c52756e74696d653e001700485472616e73616374696f6e5061796d656e740400cd0101a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0018001c5574696c6974790400d101015470616c6c65745f7574696c6974793a3a4576656e74001900105375646f0400d501016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e001a001049736d700400d901016c70616c6c65745f69736d703a3a4576656e743c52756e74696d653e001b002c49736d704772616e64706104000102017069736d705f6772616e6470613a3a4576656e743c52756e74696d653e001c002c487970657262726964676504000902018870616c6c65745f68797065726272696467653a3a4576656e743c52756e74696d653e001d0030546f6b656e4761746577617904002102019070616c6c65745f746f6b656e5f676174657761793a3a4576656e743c52756e74696d653e001e0020547265617375727904002502017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e001f0028466565436f6e74726f6c04002d02018870616c6c65745f6665655f636f6e74726f6c3a3a4576656e743c52756e74696d653e00200048496e626f756e645472616e736665724c6f670400390201ac70616c6c65745f696e626f756e645f7472616e736665725f6c6f673a3a4576656e743c52756e74696d653e0021004c4f7065726174696f6e616c4163636f756e74730400510201ac70616c6c65745f6f7065726174696f6e616c5f6163636f756e74733a3a4576656e743c52756e74696d653e00220000580c306672616d655f73797374656d1870616c6c6574144576656e740404540001204045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f720007041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c08306672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c2873705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d0000800c3870616c6c65745f646967657374731870616c6c6574144576656e74040454000100047c54686520604576656e746020656e756d206f6620746869732070616c6c6574840c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e7488017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e7488017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748c01384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e7488017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657488083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200008c0418526573756c740804540190044501680108084f6b040090000000000c4572720400680000010000900000040000940c3070616c6c65745f70726f78791870616c6c6574144576656e7404045400011c3450726f78794578656375746564040118726573756c748c01384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656418011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789c010c7531360001086174100144426c6f636b4e756d626572466f723c543e00013c65787472696e7369635f696e64657810010c753332000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e28507572654b696c6c656410011070757265000130543a3a4163636f756e74496400011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789c010c7531360002049c4120707572652070726f787920776173206b696c6c65642062792069747320737061776e65722e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000304e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00050450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e64a0012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000604090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749808346172676f6e5f72756e74696d652450726f7879547970650001200c416e790000002c4e6f6e5472616e73666572000100285072696365496e646578000200244d696e696e67426964000300504d696e696e674269645265616c506179734665650004001c426974636f696e000500285661756c7441646d696e00060050426974636f696e496e697469616c697a65466f72000700009c0000050400a0083070616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e747300010000a40c4870616c6c65745f6d696e696e675f736c6f741870616c6c6574144576656e7404045400011c244e65774d696e6572730c01286e65775f6d696e657273a801b4426f756e6465645665633c526567697374726174696f6e3c543e2c20543a3a4d6178436f686f727453697a653e00013c72656c65617365645f6d696e65727310010c7533320001206672616d655f696430011c4672616d6549640000003c536c6f7442696464657241646465640c01286163636f756e745f6964000130543a3a4163636f756e7449640001286269645f616d6f756e74180128543a3a42616c616e6365000114696e64657810010c75333200010044536c6f7442696464657244726f707065640801286163636f756e745f6964000130543a3a4163636f756e7449640001587072657365727665645f6172676f6e6f745f686f6c64200110626f6f6c0002005452656c656173654d696e6572536561744572726f720801286163636f756e745f6964000130543a3a4163636f756e7449640001146572726f7268013444697370617463684572726f72000300684d696e696e67436f6e66696775726174696f6e557064617465640c01887469636b735f6265666f72655f6269645f656e645f666f725f7672665f636c6f73653001105469636b00014c7469636b735f6265747765656e5f736c6f74733001105469636b000178736c6f745f62696464696e675f73746172745f61667465725f7469636b733001105469636b000400404d696e696e6742696473436c6f7365640401206672616d655f696430011c4672616d654964000504f4426964732061726520636c6f7365642064756520746f20746865205652462072616e646f6d697a65642066756e6374696f6e2074726967676572696e673c52656c656173654269644572726f720801286163636f756e745f6964000130543a3a4163636f756e7449640001146572726f7268013444697370617463684572726f72000600047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a80c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ac045300000400c401185665633c543e0000ac0c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c484d696e696e67526567697374726174696f6e0c244163636f756e74496401001c42616c616e63650118104b65797301b0001c01286163636f756e745f69640001244163636f756e74496400016065787465726e616c5f66756e64696e675f6163636f756e74bc01444f7074696f6e3c4163636f756e7449643e00010c626964c0011c42616c616e63650001206172676f6e6f7473c0011c42616c616e6365000138617574686f726974795f6b657973b001104b6579730001447374617274696e675f6672616d655f69642c011c4672616d65496400012c6269645f61745f7469636b2c01105469636b0000b008346172676f6e5f72756e74696d652c53657373696f6e4b657973000008011c6772616e647061b401d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000150626c6f636b5f7365616c5f617574686f72697479b801dc3c4d696e696e67536c6f74206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630000b40c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c69630000b810406172676f6e5f7072696d69746976657328626c6f636b5f7365616c0c617070185075626c69630000040004013c656432353531393a3a5075626c69630000bc04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000c00000061800c4000002ac00c80c5070616c6c65745f626974636f696e5f7574786f731870616c6c6574144576656e7404045400011c305574786f566572696669656408011c7574786f5f69643001185574786f49640001447361746f736869735f72656365697665643001205361746f73686973000000305574786f52656a656374656410011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f52656600013c72656a65637465645f726561736f6ed80154426974636f696e52656a6563746564526561736f6e0001447361746f736869735f72656365697665643001205361746f73686973000100245574786f5370656e7408011c7574786f5f69643001185574786f4964000130626c6f636b5f686569676874300134426974636f696e486569676874000200345574786f556e7761746368656404011c7574786f5f69643001185574786f4964000300385574786f5370656e744572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f72000400445574786f56657269666965644572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f72000500445574786f52656a65637465644572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f72000600047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc0c406172676f6e5f7072696d6974697665731c626974636f696e1c5574786f526566000008011074786964d00118483235364c650001306f75747075745f696e646578d4010c7533320000d00c406172676f6e5f7072696d6974697665731c626974636f696e18483235364c65000004000401205b75383b2033325d0000d40000061000d80c406172676f6e5f7072696d6974697665731c626974636f696e54426974636f696e52656a6563746564526561736f6e000110705361746f736869734f757473696465416363657074656452616e6765000000145370656e740001004c566572696669636174696f6e457870697265640002003c416c7265616479566572696669656400030000dc0c3470616c6c65745f7661756c74731870616c6c6574144576656e7404045400013c305661756c74437265617465641401207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e636500015073656375726974697a6174696f6e5f726174696fe0012446697865645531323800014c6f70657261746f725f6163636f756e745f6964000130543a3a4163636f756e74496400012c6f70656e65645f7469636b3001105469636b000000345661756c744d6f6469666965641001207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e636504c0546865206e65772073656375726974697a6174696f6e20616d6f756e74206166746572206d6f64696669636174696f6e015473656375726974697a6174696f6e5f746172676574180128543a3a42616c616e63650449015468652073656375726974697a6174696f6e2074617267657420616d6f756e74206166746572206d6f64696669636174696f6e20287468697320697320746865206c6f6e67207465726d2074617267657429015073656375726974697a6174696f6e5f726174696fe00124466978656455313238000100645661756c745465726d734368616e67655363686564756c65640801207661756c745f696410011c5661756c74496400012c6368616e67655f7469636b3001105469636b000200445661756c745465726d734368616e6765640401207661756c745f696410011c5661756c7449640003002c5661756c74436c6f7365640c01207661756c745f696410011c5661756c74496400016073656375726974697a6174696f6e5f72656d61696e696e67180128543a3a42616c616e636500015c73656375726974697a6174696f6e5f72656c6561736564180128543a3a42616c616e6365000400585661756c74426974636f696e587075624368616e67650401207661756c745f696410011c5661756c7449640005005c5661756c74526576656e7565556e636f6c6c65637465640c01207661756c745f696410011c5661756c7449640001206672616d655f696430011c4672616d654964000118616d6f756e74180128543a3a42616c616e636500060439015661756c7420726576656e756520776173206e6f7420636f6c6c65637465642077697468696e207468652072657175697265642077696e646f772c20736f20686173206265656e206275726e6564385661756c74436f6c6c65637465640801207661756c745f696410011c5661756c74496400011c726576656e7565180128543a3a42616c616e63650007040901546865207661756c7420636f6c6c656374656420726576656e756520616e6420636f7369676e656420616c6c2070656e64696e6720626974636f696e206c6f636b732c46756e64734c6f636b65641801207661756c745f696410011c5661756c7449640001186c6f636b6572000130543a3a4163636f756e7449640001486c69717569646974795f70726f6d69736564180128543a3a42616c616e636500012869735f72617463686574200110626f6f6c00012c6665655f726576656e7565180128543a3a42616c616e63650001486469645f7573655f6665655f636f75706f6e200110626f6f6c0008004046756e644c6f636b43616e63656c65640801207661756c745f696410011c5661756c744964000118616d6f756e74180128543a3a42616c616e63650009006046756e64735363686564756c6564466f7252656c656173650c01207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e636500013872656c656173655f686569676874300134426974636f696e486569676874000a00584c6f7374426974636f696e436f6d70656e73617465641001207661756c745f696410011c5661756c74496400012c62656e6566696369617279000130543a3a4163636f756e744964000138746f5f62656e6566696369617279180128543a3a42616c616e63650001186275726e6564180128543a3a42616c616e6365000b003446756e647352656c65617365640801207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e6365000c004846756e647352656c65617365644572726f720801207661756c745f696410011c5661756c7449640001146572726f7268013444697370617463684572726f72000d005854726561737572795265636f7264696e674572726f721001207661756c745f696410011c5661756c7449640001206672616d655f696430011c4672616d6549640001387661756c745f6561726e696e6773180128543a3a42616c616e63650001146572726f7268013444697370617463684572726f72000e00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e00c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000e40c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574144576656e7404045400013848426974636f696e4c6f636b437265617465641c011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001486c69717569646974795f70726f6d69736564180128543a3a42616c616e636500013873656375726974697a6174696f6e180128543a3a42616c616e63650001486c6f636b65645f6d61726b65745f72617465180128543a3a42616c616e63650001286163636f756e745f6964000130543a3a4163636f756e74496400013073656375726974795f666565180128543a3a42616c616e636500000050426974636f696e4c6f636b52617463686574656420011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001486c69717569646974795f70726f6d69736564180128543a3a42616c616e63650001506f726967696e616c5f6d61726b65745f72617465180128543a3a42616c616e636500013073656375726974795f666565180128543a3a42616c616e63650001586e65775f6c6f636b65645f6d61726b65745f72617465180128543a3a42616c616e6365000134616d6f756e745f6275726e6564180128543a3a42616c616e63650001286163636f756e745f6964000130543a3a4163636f756e74496400010044426974636f696e4c6f636b4275726e65640c011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001387761735f7574786f5f7370656e74200110626f6f6c00020068426974636f696e5574786f436f7369676e52657175657374656408011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640003004c426974636f696e5574786f436f7369676e65640c011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001247369676e6174757265e80140426974636f696e5369676e617475726500040060426974636f696e5370656e74416674657252656c6561736508011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c74496400050050426974636f696e436f7369676e5061737444756510011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c74496400014c636f6d70656e736174696f6e5f616d6f756e74180128543a3a42616c616e6365000158636f6d70656e73617465645f6163636f756e745f6964000130543a3a4163636f756e74496400060048436f7369676e4f7665726475654572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f720007040901416e206572726f72206f63637572726564207768696c6520726566756e64696e6720616e206f76657264756520636f7369676e656420626974636f696e206c6f636b4c4c6f636b45787069726174696f6e4572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f72000804a4416e206572726f72206f63637572726564207768696c6520636f6d706c6574696e672061206c6f636b504f727068616e65645574786f526563656976656410011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f5265660001207661756c745f696410011c5661756c7449640001207361746f736869733001205361746f73686973000900704f727068616e65645574786f52656c6561736552657175657374656410011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f5265660001207661756c745f696410011c5661756c7449640001286163636f756e745f6964000130543a3a4163636f756e744964000a00504f727068616e65645574786f436f7369676e656414011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f5265660001207661756c745f696410011c5661756c7449640001286163636f756e745f6964000130543a3a4163636f756e7449640001247369676e6174757265e80140426974636f696e5369676e6174757265000b005c5574786f46756e64656446726f6d43616e64696461746510011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f5265660001207661756c745f696410011c5661756c7449640001286163636f756e745f6964000130543a3a4163636f756e744964000c005c53656375726974697a6174696f6e496e6372656173656410011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001306e65775f7361746f736869733001205361746f736869730001286163636f756e745f6964000130543a3a4163636f756e744964000d00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e80c406172676f6e5f7072696d6974697665731c626974636f696e40426974636f696e5369676e617475726500000400ec0170426f756e6465645665633c75382c20436f6e73745533323c37343e3e0000ec0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f00c3c70616c6c65745f6e6f7461726965731870616c6c6574144576656e74040454000114384e6f7461727950726f706f7365640c01406f70657261746f725f6163636f756e74000130543a3a4163636f756e7449640001106d657461f4013c4e6f746172794d6574614f663c543e00011c65787069726573100144426c6f636b4e756d626572466f723c543e000004a4412075736572206861732070726f706f736564206f7065726174696e672061732061206e6f746172793c4e6f746172794163746976617465640401186e6f74617279110101444e6f746172795265636f72644f663c543e0001048c41206e6f746172792070726f706f73616c20686173206265656e206163636570746564584e6f746172794d6574615570646174655175657565640c01246e6f746172795f69641001204e6f7461727949640001106d657461f4013c4e6f746172794d6574614f663c543e0001386566666563746976655f7469636b3001105469636b000204844e6f74617279206d657461646174612071756575656420666f7220757064617465444e6f746172794d657461557064617465640801246e6f746172795f69641001204e6f7461727949640001106d657461f4013c4e6f746172794d6574614f663c543e0003045c4e6f74617279206d657461646174612075706461746564544e6f746172794d6574615570646174654572726f720c01246e6f746172795f69641001204e6f7461727949640001146572726f7268013444697370617463684572726f720001106d657461f4013c4e6f746172794d6574614f663c543e000404844572726f72207570646174696e6720717565756564206e6f7461727920696e666f047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f40c406172676f6e5f7072696d697469766573186e6f74617279284e6f746172794d65746104204d6178486f73747300000c01106e616d65f801284e6f746172794e616d650001187075626c69630401304e6f746172795075626c6963000114686f73747301010168426f756e6465645665633c486f73742c204d6178486f7374733e0000f80c406172676f6e5f7072696d697469766573186e6f74617279284e6f746172794e616d6500000400fc0170426f756e6465645665633c75382c20436f6e73745533323c35353e3e0000fc0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000001010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540105010453000004000d0101185665633c543e000005010c406172676f6e5f7072696d69746976657310686f737410486f73740000040009010174426f756e6465645665633c75382c20436f6e73745533323c3235333e3e000009010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d0100000205010011010c406172676f6e5f7072696d697469766573186e6f74617279304e6f746172795265636f72640c244163636f756e74496401002c426c6f636b4e756d6265720110204d6178486f73747300001801246e6f746172795f6964d401204e6f74617279496400014c6f70657261746f725f6163636f756e745f69640001244163636f756e74496400013c6163746976617465645f626c6f636bd4012c426c6f636b4e756d6265720001486d6574615f757064617465645f626c6f636bd4012c426c6f636b4e756d6265720001446d6574615f757064617465645f7469636b2c01105469636b0001106d657461f401504e6f746172794d6574613c4d6178486f7374733e000015010c3c70616c6c65745f6e6f7465626f6f6b1870616c6c6574144576656e7404045400010c444e6f7465626f6f6b5375626d69747465640801246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d626572000000504e6f7465626f6f6b41756469744661696c7572651001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d6265720001346e6f7465626f6f6b5f686173683401104832353600015066697273745f6661696c7572655f726561736f6e1901014c4e6f7465626f6f6b5665726966794572726f72000100644e6f7465626f6f6b5265616479466f72526570726f636573730801246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d626572000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657419010c486172676f6e5f6e6f746172795f6175646974146572726f722c5665726966794572726f720001ec504d697373696e674163636f756e744f726967696e0801286163636f756e745f696400012c4163636f756e74496433320001306163636f756e745f747970651d01012c4163636f756e745479706500000048486973746f72794c6f6f6b75704572726f72040118736f75726365210101644163636f756e74486973746f72794c6f6f6b75704572726f7200010060496e76616c69644163636f756e744368616e67656c69737400020064496e76616c6964436861696e5472616e73666572734c69737400030060496e76616c696442616c616e63654368616e6765526f6f7400040060496e76616c69644865616465725461785265636f7264656400050050496e76616c696450726576696f75734e6f6e636500060058496e76616c696450726576696f757342616c616e636500070070496e76616c696450726576696f75734163636f756e744f726967696e00080090496e76616c696450726576696f757342616c616e63654368616e67654e6f7465626f6f6b00090050496e76616c696442616c616e63654368616e6765000a0074496e76616c696442616c616e63654368616e67655369676e61747572650401306368616e67655f696e6465789c010c753136000b0054496e76616c69644e6f7465526563697069656e7473000c004842616c616e63654368616e67654572726f720c01306368616e67655f696e6465789c010c7531360001286e6f74655f696e6465789c010c75313600011c6d6573736167652501013c4d61784c656e677468537472696e67000d0068496e76616c69644e657442616c616e63654368616e6765736574000e004c496e73756666696369656e7442616c616e636510011c62616c616e636518011075313238000118616d6f756e74180110753132380001286e6f74655f696e6465789c010c7531360001306368616e67655f696e6465789c010c753136000f004845786365656465644d617842616c616e636510011c62616c616e636518011075313238000118616d6f756e74180110753132380001286e6f74655f696e6465789c010c7531360001306368616e67655f696e6465789c010c7531360010005442616c616e63654368616e67654d69736d617463680c01306368616e67655f696e6465789c010c75313600014070726f76696465645f62616c616e63651801107531323800014863616c63756c617465645f62616c616e63652d010110693132380011005c42616c616e63654368616e67654e6f744e65745a65726f08011073656e741801107531323800011c636c61696d65641801107531323800120070496e76616c6964446f6d61696e4c65617365416c6c6f636174696f6e0013006854617842616c616e63654368616e67654e6f744e65745a65726f08011073656e741801107531323800011c636c61696d6564180110753132380014004c4d697373696e6742616c616e636550726f6f660015006c496e76616c696450726576696f757342616c616e636550726f6f660016004c496e76616c69644e6f7465626f6f6b4861736800170064496e76616c69644e6f7465626f6f6b4865616465724861736800180058496e76616c69644e6f7465626f6f6b56657273696f6e001900584475706c6963617465436861696e5472616e73666572001a00684475706c6963617465644163636f756e744f726967696e556964001b0058496e76616c69644e6f746172795369676e6174757265001c0054496e76616c696453656372657450726f7669646564001d00384e6f7465626f6f6b546f6f4f6c64001e005c436174636875704e6f7465626f6f6b734d697373696e67001f002c4465636f64654572726f72002000744163636f756e744368616e6e656c486f6c64446f65736e744578697374002100704163636f756e74416c72656164794861734368616e6e656c486f6c640022006c4368616e6e656c486f6c644e6f745265616479466f72436c61696d08013063757272656e745f7469636b3001105469636b000128636c61696d5f7469636b3001105469636b002300344163636f756e744c6f636b6564002400584d697373696e674368616e6e656c486f6c644e6f746500250058496e76616c69644368616e6e656c486f6c644e6f746500260068496e76616c69644368616e6e656c486f6c64436c61696d6572730027006c4368616e6e656c486f6c644e6f746542656c6f774d696e696d756d00280054496e76616c69645461784e6f74654163636f756e740029004c496e76616c69645461784f7065726174696f6e002a005c496e73756666696369656e74546178496e636c756465640c01207461785f73656e74180110753132380001207461785f6f776564180110753132380001286163636f756e745f696400012c4163636f756e7449643332002b0060496e73756666696369656e74426c6f636b566f7465546178002c0048496e656c696769626c65546178566f746572002d0064426c6f636b566f7465496e76616c69645369676e6174757265002e0068496e76616c6964426c6f636b566f7465416c6c6f636174696f6e002f0050496e76616c6964426c6f636b566f7465526f6f7400300058496e76616c6964426c6f636b566f746573436f756e740031005c496e76616c6964426c6f636b566f74696e67506f77657200320050496e76616c6964426c6f636b566f74654c6973740033004c496e76616c6964436f6d7075746550726f6f6600340058496e76616c6964426c6f636b566f7465536f7572636500350070496e73756666696369656e74426c6f636b566f74654d696e696d756d00360050496e76616c6964426c6f636b566f74655469636b0801107469636b3001105469636b0001346e6f7465626f6f6b5f7469636b3001105469636b0037005c496e76616c696444656661756c74426c6f636b566f746500380074496e76616c696444656661756c74426c6f636b566f7465417574686f72080118617574686f7200012c4163636f756e7449643332000120657870656374656400012c4163636f756e7449643332003900484e6f44656661756c74426c6f636b566f7465003a00001d010c406172676f6e5f7072696d6974697665731c6163636f756e742c4163636f756e74547970650001080c5461780000001c4465706f73697400010000210108486172676f6e5f6e6f746172795f6175646974644163636f756e74486973746f72794c6f6f6b75704572726f7200011030526f6f744e6f74466f756e64000000484c6173744368616e67654e6f74466f756e640001006c496e76616c69645472616e73666572546f4c6f63616c636861696e00020068426c6f636b53706563696669636174696f6e4e6f74466f756e640003000025010c486172676f6e5f6e6f746172795f6175646974146572726f723c4d61784c656e677468537472696e670000040029010174426f756e6465645665633c75382c20436f6e73745533323c3130303e3e000029010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00002d010000050d0031010c5470616c6c65745f636861696e5f7472616e736665721870616c6c6574144576656e7404045400011c505472616e73666572546f4c6f63616c636861696e1401286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e741801583c5420617320436f6e6669673e3a3a42616c616e636500012c7472616e736665725f69641001585472616e73666572546f4c6f63616c636861696e49640001246e6f746172795f69641001204e6f74617279496400013c65787069726174696f6e5f7469636b3001105469636b0000046846756e64732073656e7420746f2061206c6f63616c636861696e6c5472616e73666572546f4c6f63616c636861696e457870697265640c01286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400012c7472616e736665725f69641001585472616e73666572546f4c6f63616c636861696e49640001246e6f746172795f69641001204e6f746172794964000104b85472616e7366657220746f206c6f63616c636861696e206578706972656420616e6420726f6c6c6564206261636b585472616e7366657246726f6d4c6f63616c636861696e0c01286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e741801583c5420617320436f6e6669673e3a3a42616c616e63650001246e6f746172795f69641001204e6f746172794964000204945472616e736665722066726f6d204c6f63616c636861696e20746f204d61696e636861696e6c5472616e7366657246726f6d4c6f63616c636861696e4572726f721401286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e741801583c5420617320436f6e6669673e3a3a42616c616e63650001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d6265720001146572726f7268013444697370617463684572726f720003049041207472616e7366657220696e746f20746865206d61696e636861696e206661696c65647c5472616e73666572546f4c6f63616c636861696e526566756e644572726f721401286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400012c7472616e736665725f69641001585472616e73666572546f4c6f63616c636861696e49640001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d6265720001146572726f7268013444697370617463684572726f72000404dc416e2065787069726564207472616e7366657220746f206c6f63616c636861696e206661696c656420746f20626520726566756e646564a0506f737369626c65496e76616c69644c6f63616c636861696e5472616e73666572416c6c6f7765640c012c7472616e736665725f69641001585472616e73666572546f4c6f63616c636861696e49640001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d626572000508450141206c6f63616c636861696e207472616e7366657220636f756c64206e6f7420626520636c65616e65642075702070726f7065726c792e20506f737369626c6520696e76616c6964207472616e73666572586e656564696e6720696e7665737469676174696f6e2e345461786174696f6e4572726f721001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d62657200010c7461781801583c5420617320436f6e6669673e3a3a42616c616e63650001146572726f7268013444697370617463684572726f720006043c5461786174696f6e206661696c6564047c54686520604576656e746020656e756d206f6620746869732070616c6c657435010c5870616c6c65745f626c6f636b5f7365616c5f737065631870616c6c6574144576656e740404540001084c566f74654d696e696d756d41646a757374656410015065787065637465645f626c6f636b5f766f7465731801107531323800014861637475616c5f626c6f636b5f766f7465731801107531323800014873746172745f766f74655f6d696e696d756d18012c566f74654d696e696d756d0001406e65775f766f74655f6d696e696d756d18012c566f74654d696e696d756d00000064436f6d70757465446966666963756c747941646a757374656410014c65787065637465645f626c6f636b5f74696d6530010c75363400014461637475616c5f626c6f636b5f74696d6530010c75363400014073746172745f646966666963756c7479180144436f6d70757465446966666963756c74790001386e65775f646966666963756c7479180144436f6d70757465446966666963756c7479000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657439010c3870616c6c65745f646f6d61696e731870616c6c6574144576656e74040454000118445a6f6e655265636f72645570646174656408012c646f6d61696e5f68617368340128446f6d61696e4861736800012c7a6f6e655f7265636f72643d0101605a6f6e655265636f72643c543a3a4163636f756e7449643e000004804120646f6d61696e207a6f6e65207265636f726420776173207570646174656440446f6d61696e5265676973746572656408012c646f6d61696e5f68617368340128446f6d61696e48617368000130726567697374726174696f6e5d010180446f6d61696e526567697374726174696f6e3c543a3a4163636f756e7449643e0001045c4120646f6d61696e20776173207265676973746572656434446f6d61696e52656e6577656404012c646f6d61696e5f68617368340128446f6d61696e486173680002045c4120646f6d61696e20776173207265676973746572656434446f6d61696e4578706972656404012c646f6d61696e5f68617368340128446f6d61696e48617368000304504120646f6d61696e20776173206578706972656468446f6d61696e526567697374726174696f6e43616e63656c656408012c646f6d61696e5f68617368340128446f6d61696e48617368000130726567697374726174696f6e5d010180446f6d61696e526567697374726174696f6e3c543a3a4163636f756e7449643e00040841014120646f6d61696e20726567697374726174696f6e207761732063616e63656c65642064756520746f206120636f6e666c696374696e6720726567697374726174696f6e20696e207468652073616d65107469636b5c446f6d61696e526567697374726174696f6e4572726f720c012c646f6d61696e5f68617368340128446f6d61696e486173680001286163636f756e745f696400012c4163636f756e74496433320001146572726f7268013444697370617463684572726f72000504b04120646f6d61696e20726567697374726174696f6e206661696c65642064756520746f20616e206572726f72047c54686520604576656e746020656e756d206f6620746869732070616c6c65743d010c406172676f6e5f7072696d69746976657318646f6d61696e285a6f6e655265636f726404244163636f756e7449640100000c013c7061796d656e745f6163636f756e740001244163636f756e7449640001246e6f746172795f69641001204e6f74617279496400012076657273696f6e73410101cc426f756e64656442547265654d61703c53656d7665722c2056657273696f6e486f73742c20436f6e73745533323c3530303e3e000041010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01450104560149010453000004005101013842547265654d61703c4b2c20563e000045010c406172676f6e5f7072696d69746976657318646f6d61696e1853656d76657200000c01146d616a6f7210010c7533320001146d696e6f7210010c753332000114706174636810010c753332000049010c406172676f6e5f7072696d69746976657318646f6d61696e2c56657273696f6e486f737400000801306461746173746f72655f69644d010170426f756e6465645665633c75382c20436f6e73745533323c35303e3e000110686f737405010110486f737400004d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005101042042547265654d617008044b01450104560149010004005501000000550100000259010059010000040845014901005d01083870616c6c65745f646f6d61696e7348446f6d61696e526567697374726174696f6e04244163636f756e7449640100000801286163636f756e745f69640001244163636f756e744964000148726567697374657265645f61745f7469636b3001105469636b000061010c4870616c6c65745f70726963655f696e6465781870616c6c6574144576656e74040454000108204e6577496e646578000004c44576656e7420656d6974746564207768656e2061206e657720707269636520696e646578206973207375626d69747465643c4f70657261746f724368616e67656404012c6f70657261746f725f6964000130543a3a4163636f756e744964000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657465010c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f73657469010134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469010000026d01006d0100000408b4300071010c5070616c6c65745f626c6f636b5f726577617264731870616c6c6574144576656e74040454000108345265776172644372656174656404011c72657761726473750101a85665633c426c6f636b5061796f75743c543a3a4163636f756e7449642c20543a3a42616c616e63653e3e000000445265776172644372656174654572726f721001286163636f756e745f6964000130543a3a4163636f756e7449640001186172676f6e73850101484f7074696f6e3c543a3a42616c616e63653e0001246f776e657273686970850101484f7074696f6e3c543a3a42616c616e63653e0001146572726f7268013444697370617463684572726f72000100047c54686520604576656e746020656e756d206f6620746869732070616c6c6574750100000279010079010c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c2c426c6f636b5061796f757408244163636f756e74496401001c42616c616e63650118001401286163636f756e745f69640001244163636f756e7449640001246f776e657273686970c0011c42616c616e63650001186172676f6e73c0011c42616c616e636500012c7265776172645f747970657d01013c426c6f636b52657761726454797065000150626c6f636b5f7365616c5f617574686f72697479810101704f7074696f6e3c426c6f636b5365616c417574686f7269747949643e00007d010c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c3c426c6f636b5265776172645479706500010c144d696e657200000014566f7465720001002c50726f666974536861726500020000810104184f7074696f6e04045401b80108104e6f6e6500000010536f6d650400b80000010000850104184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000089010c2c70616c6c65745f6d696e741870616c6c6574144576656e7404045400010c2c426974636f696e4d696e740c01286163636f756e745f6964000130543a3a4163636f756e74496400011c7574786f5f69648d0101384f7074696f6e3c5574786f49643e000118616d6f756e74180128543a3a42616c616e63650000044c416e7920626974636f696e73206d696e746564284d696e696e674d696e74100118616d6f756e74180128543a3a42616c616e63650001247065725f6d696e6572180128543a3a42616c616e63650001246172676f6e5f637069910101204172676f6e4350490001246c6971756964697479180128543a3a42616c616e6365000108610154686520616d6f756e74206f66206d6963726f676f6e73206d696e74656420666f72206d696e696e672e204e4f54453a206163636f756e74732062656c6f77204578697374656e7469616c204465706f7369742077696c6c4c6e6f742062652061626c6520746f206d696e74244d696e744572726f721401246d696e745f74797065950101204d696e74547970650001286163636f756e745f6964000130543a3a4163636f756e74496400011c7574786f5f69648d0101384f7074696f6e3c5574786f49643e000118616d6f756e74180128543a3a42616c616e63650001146572726f7268013444697370617463684572726f720002085d014572726f727320656e636f756e7465726564207768696c65206d696e74696e672e204d6f7374206f6674656e2064756520746f206d696e7420616d6f756e74207374696c6c2062656c6f77204578697374656e7469616c1c4465706f736974047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d0104184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000091010c3473705f61726974686d657469632c66697865645f706f696e7424466978656449313238000004002d01011069313238000095010c2c70616c6c65745f6d696e741870616c6c6574204d696e74547970650001081c426974636f696e000000184d696e696e670001000099010c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001781c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739d0101185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e304d696e746564437265646974040118616d6f756e74180128543a3a42616c616e6365000b04e0536f6d6520637265646974207761732062616c616e63656420616e6420616464656420746f2074686520546f74616c49737375616e63652e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e284275726e656444656274040118616d6f756e74180128543a3a42616c616e6365000d04cc536f6d65206465627420686173206265656e2064726f707065642066726f6d2074686520546f74616c2049737375616e63652e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000e041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000f04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e74496400100460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e63650011042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650012042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500150460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500160460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001704ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e1048656c640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500180480536f6d652062616c616e63652077617320706c61636564206f6e20686f6c642e284275726e656448656c640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001904a048656c642062616c616e636520776173206275726e65642066726f6d20616e206163636f756e742e385472616e736665724f6e486f6c64100118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001a04150141207472616e73666572206f662060616d6f756e7460206f6e20686f6c642066726f6d2060736f757263656020746f206064657374602077617320696e697469617465642e3c5472616e73666572416e64486f6c64100118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e74496400012c7472616e73666572726564180128543a3a42616c616e6365001b04090154686520607472616e73666572726564602062616c616e636520697320706c61636564206f6e20686f6c642061742074686520606465737460206163636f756e742e2052656c65617365640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001c0490536f6d652062616c616e6365207761732072656c65617365642066726f6d20686f6c642e28556e65787065637465640400b9010138556e65787065637465644b696e64001d04b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d0114346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000a10108346172676f6e5f72756e74696d654452756e74696d65486f6c64526561736f6e000114284d696e696e67536c6f740400a501017870616c6c65745f6d696e696e675f736c6f743a3a486f6c64526561736f6e000600185661756c74730400a901016470616c6c65745f7661756c74733a3a486f6c64526561736f6e00080030426974636f696e4c6f636b730400ad01018070616c6c65745f626974636f696e5f6c6f636b733a3a486f6c64526561736f6e00090030426c6f636b526577617264730400b101018070616c6c65745f626c6f636b5f726577617264733a3a486f6c64526561736f6e0013002054726561737572790400b501016c70616c6c65745f74726561737572793a3a486f6c64526561736f6e001f0000a5010c4870616c6c65745f6d696e696e675f736c6f741870616c6c657428486f6c64526561736f6e0001043c526567697374657241734d696e657200000000a9010c3470616c6c65745f7661756c74731870616c6c657428486f6c64526561736f6e00010c28456e7465725661756c74000000344f626c69676174696f6e4665650001003850656e64696e67436f6c6c65637400020000ad010c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c657428486f6c64526561736f6e0001044852656c65617365426974636f696e4c6f636b00000000b1010c5070616c6c65745f626c6f636b5f726577617264731870616c6c657428486f6c64526561736f6e000104404d617475726174696f6e506572696f6400000000b5010c3c70616c6c65745f74726561737572791870616c6c657428486f6c64526561736f6e00010454436f6e7472696275746564546f547265617375727900000000b9010c3c70616c6c65745f62616c616e6365731870616c6c657438556e65787065637465644b696e640001083842616c616e636555706461746564000000544661696c6564546f4d75746174654163636f756e7400010000bd010c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001781c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739d0101185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e304d696e746564437265646974040118616d6f756e74180128543a3a42616c616e6365000b04e0536f6d6520637265646974207761732062616c616e63656420616e6420616464656420746f2074686520546f74616c49737375616e63652e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e284275726e656444656274040118616d6f756e74180128543a3a42616c616e6365000d04cc536f6d65206465627420686173206265656e2064726f707065642066726f6d2074686520546f74616c2049737375616e63652e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000e041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000f04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e74496400100460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e63650011042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650012042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500150460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500160460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001704ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e1048656c640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500180480536f6d652062616c616e63652077617320706c61636564206f6e20686f6c642e284275726e656448656c640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001904a048656c642062616c616e636520776173206275726e65642066726f6d20616e206163636f756e742e385472616e736665724f6e486f6c64100118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001a04150141207472616e73666572206f662060616d6f756e7460206f6e20686f6c642066726f6d2060736f757263656020746f206064657374602077617320696e697469617465642e3c5472616e73666572416e64486f6c64100118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e74496400012c7472616e73666572726564180128543a3a42616c616e6365001b04090154686520607472616e73666572726564602062616c616e636520697320706c61636564206f6e20686f6c642061742074686520606465737460206163636f756e742e2052656c65617365640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001c0490536f6d652062616c616e6365207761732072656c65617365642066726f6d20686f6c642e28556e65787065637465640400b9010138556e65787065637465644b696e64001d04b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c1010c3c70616c6c65745f74785f70617573651870616c6c6574144576656e740404540001082843616c6c50617573656404012466756c6c5f6e616d65c501015052756e74696d6543616c6c4e616d654f663c543e000004b8546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f77207061757365642e3043616c6c556e70617573656404012466756c6c5f6e616d65c501015052756e74696d6543616c6c4e616d654f663c543e000104c0546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f7720756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c50100000408c901c90100c9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000cd010c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d1010c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748c01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d5010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c748c01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64bc01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c748c01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d9010c2c70616c6c65745f69736d701870616c6c6574144576656e740404540001344c53746174654d616368696e655570646174656408014073746174655f6d616368696e655f6964dd01013853746174654d616368696e65496404605374617465206d616368696e65206964656e74696669657201346c61746573745f68656967687430010c753634046c5374617465206d616368696e65206c61746573742068656967687400041101456d6974746564207768656e2061207374617465206d616368696e65206973207375636365737366756c6c79207570646174656420746f2061206e657720686569676874545374617465436f6d6d69746d656e745665746f6564080118686569676874e501014853746174654d616368696e6548656967687404505374617465206d616368696e652068656967687401246669736865726d616ee9010170426f756e6465645665633c75382c20436f6e73745533323c33323e3e0454726573706f6e7369626c65206669736865726d616e0104e0456d6974746564207768656e206120737461746520636f6d6d69746d656e74206973207665746f65642062792061206669736865726d616e58436f6e73656e737573436c69656e744372656174656404014c636f6e73656e7375735f636c69656e745f6964480144436f6e73656e737573436c69656e744964044c436f6e73656e73757320636c69656e742069640204c8496e646963617465732074686174206120636f6e73656e73757320636c69656e7420686173206265656e206372656174656454436f6e73656e737573436c69656e7446726f7a656e04014c636f6e73656e7375735f636c69656e745f6964480144436f6e73656e737573436c69656e744964044c436f6e73656e73757320636c69656e742069640304c8496e646963617465732074686174206120636f6e73656e73757320636c69656e7420686173206265656e206372656174656420526573706f6e7365140128646573745f636861696ee101013053746174654d616368696e6504a8436861696e2074686174207468697320726573706f6e73652077696c6c20626520726f7574656420746f0130736f757263655f636861696ee101013053746174654d616368696e650478536f7572636520436861696e20666f72207468697320726573706f6e73650134726571756573745f6e6f6e636530010c75363404c04e6f6e636520666f72207468652072657175657374207768696368207468697320726573706f6e736520697320666f720128636f6d6d69746d656e7434011048323536044c526573706f6e736520436f6d6d69746d656e7401387265715f636f6d6d69746d656e743401104832353604485265717565737420636f6d6d69746d656e7404049c416e204f7574676f696e6720526573706f6e736520686173206265656e206465706f73697465641c52657175657374100128646573745f636861696ee101013053746174654d616368696e6504a4436861696e2074686174207468697320726571756573742077696c6c20626520726f7574656420746f0130736f757263655f636861696ee101013053746174654d616368696e650460536f7572636520436861696e20666f7220726571756573740134726571756573745f6e6f6e636530010c753634043452657175657374206e6f6e63650128636f6d6d69746d656e74340110483235360428436f6d6d69746d656e74050498416e204f7574676f696e67205265717565737420686173206265656e206465706f7369746564184572726f72730401186572726f7273ed0101485665633c48616e646c696e674572726f723e045c4d6573736167652068616e646c696e67206572726f727306049c536f6d65206572726f72732068616e646c696e6720736f6d652069736d70206d6573736167657348506f73745265717565737448616e646c65640400f901015852657175657374526573706f6e736548616e646c656400070450506f737420526571756573742048616e646c65644c506f7374526573706f6e736548616e646c65640400f901015852657175657374526573706f6e736548616e646c656400080454506f737420526573706f6e73652048616e646c6564444765745265717565737448616e646c65640400f901015852657175657374526573706f6e736548616e646c65640009045047657420526573706f6e73652048616e646c656464506f73745265717565737454696d656f757448616e646c65640400fd01013854696d656f757448616e646c6564000a0470506f737420726571756573742074696d656f75742068616e646c656468506f7374526573706f6e736554696d656f757448616e646c65640400fd01013854696d656f757448616e646c6564000b0474506f737420726573706f6e73652074696d656f75742068616e646c6564604765745265717565737454696d656f757448616e646c65640400fd01013854696d656f757448616e646c6564000c046c47657420726571756573742074696d656f75742068616e646c6564043450616c6c6574204576656e7473dd010c1069736d7024636f6e73656e7375733853746174654d616368696e654964000008012073746174655f6964e101013053746174654d616368696e65000148636f6e73656e7375735f73746174655f6964480140436f6e73656e737573537461746549640000e1010c1069736d7010686f73743053746174654d616368696e650001180c45766d040010010c75333200000020506f6c6b61646f74040010010c753332000100184b7573616d61040010010c753332000200245375627374726174650400480140436f6e73656e737573537461746549640003002854656e6465726d696e740400480140436f6e73656e737573537461746549640004001452656c617908011472656c6179480140436f6e73656e7375735374617465496400011c706172615f696410010c75333200050000e5010c1069736d7024636f6e73656e7375734853746174654d616368696e6548656967687400000801086964dd01013853746174654d616368696e65496400011868656967687430010c7536340000e9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000ed01000002f10100f1010c2c70616c6c65745f69736d70186572726f72733448616e646c696e674572726f72000004011c6d657373616765f5010178426f756e6465645665633c75382c20436f6e73745533323c313030303e3e0000f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f9010c1069736d70186576656e74735852657175657374526573706f6e736548616e646c65640000080128636f6d6d69746d656e743401104832353600011c72656c6179657238011c5665633c75383e0000fd010c1069736d70186576656e74733854696d656f757448616e646c656400000c0128636f6d6d69746d656e7434011048323536000118736f75726365e101013053746174654d616368696e6500011064657374e101013053746174654d616368696e65000001020c3069736d705f6772616e6470611870616c6c6574144576656e740404540001084453746174654d616368696e65416464656404013873746174655f6d616368696e6573050201445665633c53746174654d616368696e653e0478546865207374617465206d616368696e657320696e207175657374696f6e0004ac5374617465206d616368696e65732068617665206265656e20616464656420746f2077686974656c6973744c53746174654d616368696e6552656d6f76656404013873746174655f6d616368696e6573050201445665633c53746174654d616368696e653e0478546865207374617465206d616368696e657320696e207175657374696f6e0104cc5374617465206d616368696e65732068617665206265656e2072656d6f7665642066726f6d207468652077686974656c69737404744576656e747320656d697474656420627920746869732070616c6c65740502000002e1010009020c4870616c6c65745f68797065726272696467651870616c6c6574144576656e7404045400010844486f7374506172616d735570646174656408010c6f6c640d0201e056657273696f6e6564486f7374506172616d733c3c542061732070616c6c65745f69736d703a3a436f6e6669673e3a3a42616c616e63653e044c546865206f6c6420686f737420706172616d73010c6e65770d0201e056657273696f6e6564486f7374506172616d733c3c542061732070616c6c65745f69736d703a3a436f6e6669673e3a3a42616c616e63653e044c546865206e657720686f737420706172616d7300041901487970657262726964676520676f7665726e616e636520686173206e6f772075706461746564206974277320686f737420706172616d73206f6e207468697320636861696e2e4c52656c6179657246656557697468647261776e080118616d6f756e7418018c3c542061732070616c6c65745f69736d703a3a436f6e6669673e3a3a42616c616e6365047454686520616d6f756e742074686174207761732077697468647261776e011c6163636f756e74000130543a3a4163636f756e7449640468546865207769746864726177616c2062656e6566696369617279010484412072656c61796572206861732077697468647261776e20736f6d652066656573047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d02084870616c6c65745f68797065726272696467654c56657273696f6e6564486f7374506172616d73041c42616c616e636501180104085631040011020170537562737472617465486f7374506172616d733c42616c616e63653e000000001102084870616c6c65745f68797065726272696467654c537562737472617465486f7374506172616d730404420118000c015064656661756c745f7065725f627974655f666565180104420001347065725f627974655f666565731502016442547265654d61703c53746174654d616368696e652c20423e00015861737365745f726567697374726174696f6e5f6665651801044200001502042042547265654d617008044b01e10104560118000400190200000019020000021d02001d0200000408e101180021020c5070616c6c65745f746f6b656e5f676174657761791870616c6c6574144576656e740404540001143c417373657454656c65706f7274656414011066726f6d000130543a3a4163636f756e7449640438536f75726365206163636f756e740108746f34011048323536048862656e6566696369617279206163636f756e74206f6e2064657374696e6174696f6e0118616d6f756e741801d83c543a3a4e617469766543757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e63650448416d6f756e74207472616e73666572726564011064657374e101013053746174654d616368696e65044444657374696e6174696f6e20636861696e0128636f6d6d69746d656e743401104832353604485265717565737420636f6d6d69746d656e74000470416e20617373657420686173206265656e2074656c65706f7274656434417373657452656365697665640c012c62656e6566696369617279000130543a3a4163636f756e744964048462656e6566696369617279206163636f756e74206f6e2072656c6179636861696e0118616d6f756e7418010d013c3c5420617320436f6e6669673e3a3a4e617469766543757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a0a42616c616e63650448416d6f756e74207472616e736665727265640118736f75726365e101013053746174654d616368696e65044444657374696e6174696f6e20636861696e01041d01416e20617373657420686173206265656e20726563656976656420616e64207472616e7366657272656420746f207468652062656e65666963696172792773206163636f756e74344173736574526566756e6465640c012c62656e6566696369617279000130543a3a4163636f756e744964048462656e6566696369617279206163636f756e74206f6e2072656c6179636861696e0118616d6f756e7418010d013c3c5420617320436f6e6669673e3a3a4e617469766543757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a0a42616c616e63650448416d6f756e74207472616e736665727265640118736f75726365e101013053746174654d616368696e65044444657374696e6174696f6e20636861696e02041d01416e20617373657420686173206265656e20726566756e64656420616e64207472616e7366657272656420746f207468652062656e65666963696172792773206163636f756e7488455243363136304173736574526567697374726174696f6e44697370617463686564040128636f6d6d69746d656e743401104832353604485265717565737420636f6d6d69746d656e740304e045524336313630206173736574206372656174696f6e2072657175657374206469737061746368656420746f206879706572627269646765584173736574526567697374657265644c6f63616c6c790801206c6f63616c5f6964100128417373657449643c543e0448546865206c6f63616c206173736574206964012061737365745f696434011048323536046854686520746f6b656e2067617465776179206173736574206964040490416e20617373657420686173206265656e2072656769737465726564206c6f63616c6c7904d450616c6c6574206576656e747320746861742066756e6374696f6e7320696e20746869732070616c6c65742063616e20656d69742e25020c3c70616c6c65745f74726561737572791870616c6c6574144576656e740404540001208c436f756c644e6f74446973747269627574654561726e696e6773546f426f6e644c6f741801206672616d655f696430011c4672616d6549640001207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f7449640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500013864697370617463685f6572726f7268013444697370617463684572726f72000004f4416e206572726f72206f63637572726564207768696c6520706179696e67206672616d65206561726e696e677320666f72206120626f6e64206c6f742e88436f756c644e6f745472616e73666572546f547265617375727952657365727665730c01206672616d655f696430011c4672616d654964000118616d6f756e74180128543a3a42616c616e636500013864697370617463685f6572726f7268013444697370617463684572726f720001041501416e206572726f72206f63637572726564207768696c65206d6f76696e67206269642d706f6f6c2066756e647320696e746f2074726561737572792072657365727665732e604672616d654561726e696e677344697374726962757465641001206672616d655f696430011c4672616d6549640001506269645f706f6f6c5f6469737472696275746564180128543a3a42616c616e636500014474726561737572795f7265736572766573180128543a3a42616c616e636500015070617274696369706174696e675f7661756c747310010c753332000204804672616d65206561726e696e677320776572652064697374726962757465642e5c4672616d655661756c744361706974616c4c6f636b65640c01206672616d655f696430011c4672616d654964000150746f74616c5f656c696769626c655f626f6e64731801107531323800015070617274696369706174696e675f7661756c747310010c753332000304c05468652063757272656e74206672616d652773207661756c74206361706974616c20776173206c6f636b656420696e2e58436f756c644e6f7452656c65617365426f6e644c6f741801206672616d655f696430011c4672616d6549640001207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f744964000118616d6f756e74180128543a3a42616c616e63650001286163636f756e745f6964000130543a3a4163636f756e74496400013864697370617463685f6572726f7268013444697370617463684572726f72000404b4416e206572726f72206f63637572726564207768696c652072656c656173696e67206120626f6e64206c6f742e40426f6e644c6f745075726368617365641001207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f7449640001286163636f756e745f6964000130543a3a4163636f756e744964000114626f6e6473100114426f6e6473000504c04120626f6e6420707572636861736520656e74657265642061207661756c742773206163636570746564206c6973742e5c426f6e644c6f7452656c656173655363686564756c65641801207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f7449640001286163636f756e745f6964000130543a3a4163636f756e744964000114626f6e6473100114426f6e647300014072656c656173655f6672616d655f696430011c4672616d654964000118726561736f6e29020144426f6e6452656c65617365526561736f6e00060411014120626f6e64206c6f74207761732072656d6f7665642066726f6d20667574757265206672616d657320616e64207363686564756c656420666f722072656c656173652e3c426f6e644c6f7452656c65617365641401206672616d655f696430011c4672616d6549640001207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f7449640001286163636f756e745f6964000130543a3a4163636f756e744964000114626f6e6473100114426f6e6473000704604120626f6e64206c6f74207761732072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657429020c3c70616c6c65745f74726561737572791870616c6c657444426f6e6452656c65617365526561736f6e00010c3c557365724c69717569646174696f6e0000001842756d7065640001002c5661756c74436c6f736564000200002d020c4870616c6c65745f6665655f636f6e74726f6c1870616c6c6574144576656e7404045400010828466565536b69707065640401186f726967696e310201c03c543a3a52756e74696d654f726967696e206173204f726967696e54726169743e3a3a50616c6c6574734f726967696e0000047841207472616e73616374696f6e206665652077617320736b69707065642e3046656544656c6567617465640c01186f726967696e310201c03c543a3a52756e74696d654f726967696e206173204f726967696e54726169743e3a3a50616c6c6574734f726967696e00011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e7449640001047c41207472616e73616374696f6e20666565207761732064656c656761746564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574310208346172676f6e5f72756e74696d65304f726967696e43616c6c65720001041873797374656d0400350201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000000035020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100011010526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020028417574686f72697a65640003000039020c6c70616c6c65745f696e626f756e645f7472616e736665725f6c6f671870616c6c6574144576656e7404045400010868496e626f756e6445766d5472616e736665725265636f726465640401207472616e736665723d020154496e626f756e6445766d5472616e736665723c543e000004dc41207175616c696679696e6720696e626f756e6420546f6b656e47617465776179207265717565737420776173207265636f726465642e64496e626f756e6445766d5472616e7366657244726f707065640c0118736f75726365e101013053746174654d616368696e650001146e6f6e636530010c753634000118726561736f6e4d020164496e626f756e645472616e7366657244726f70526561736f6e000104b84120546f6b656e476174657761792072657175657374207761732069676e6f726564206f722064726f707065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65743d020c6c70616c6c65745f696e626f756e645f7472616e736665725f6c6f671870616c6c657448496e626f756e6445766d5472616e7366657204045400001c0118736f75726365e101013053746174654d616368696e650001146e6f6e636530010c75363400012065766d5f66726f6d4102011048313630000108746f000130543a3a4163636f756e74496400012861737365745f6b696e644902012441737365744b696e64000118616d6f756e7418011c42616c616e6365000140657870697265735f61745f626c6f636b100144426c6f636b4e756d626572466f723c543e00004102083c7072696d69746976655f7479706573104831363000000400450201205b75383b2032305d0000450200000314000000080049020c6c70616c6c65745f696e626f756e645f7472616e736665725f6c6f671870616c6c65742441737365744b696e64000108144172676f6e0000001c4172676f6e6f74000100004d020c6c70616c6c65745f696e626f756e645f7472616e736665725f6c6f671870616c6c657464496e626f756e645472616e7366657244726f70526561736f6e00012430426f6479546f6f4c617267650000003c4162694465636f64654661696c6564000100304e6f6e45766d536f7572636500020030556e6b6e6f776e417373657400030040556e737570706f72746564417373657400040040556e6b6e6f776e507265636973696f6e00050034496e76616c6964416d6f756e7400060048416d6f756e7442656c6f774d696e696d756d0007004c45787069726174696f6e517565756546756c6c0008000051020c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574144576656e7404045400011c704f7065726174696f6e616c4163636f756e745265676973746572656414014c6f7065726174696f6e616c5f6163636f756e74000130543a3a4163636f756e7449640001347661756c745f6163636f756e74000130543a3a4163636f756e7449640001586d696e696e675f66756e64696e675f6163636f756e74000130543a3a4163636f756e7449640001486d696e696e675f626f745f6163636f756e74000130543a3a4163636f756e74496400011c73706f6e736f72bc01504f7074696f6e3c543a3a4163636f756e7449643e000004fc416e206f7065726174696f6e616c206163636f756e74207761732072656769737465726564207769746820697473206c696e6b6564206163636f756e74732e584163636f756e7457656e744f7065726174696f6e616c04011c6163636f756e74000130543a3a4163636f756e7449640001047c4163636f756e7420686173206265636f6d65206f7065726174696f6e616c2e5c4f7065726174696f6e616c5265776172644561726e65640c011c6163636f756e74000130543a3a4163636f756e74496400012c7265776172645f6b696e64550201544f7065726174696f6e616c5265776172644b696e64000118616d6f756e74180128543a3a42616c616e63650002040d014120726577617264206973206561726e656420666f7220616e206f7065726174696f6e616c206163636f756e742c20627574206e6f742079657420636c61696d65642e644f7065726174696f6e616c52657761726473436c61696d656410014c6f7065726174696f6e616c5f6163636f756e74000130543a3a4163636f756e744964000120636c61696d616e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014472656d61696e696e675f70656e64696e67180128543a3a42616c616e6365000304f4436c61696d61626c65206f7065726174696f6e616c20726577617264732077657265207061696420746f2061206d616e61676564206163636f756e742e5052657761726473436f6e6669675570646174656408016c6f7065726174696f6e616c5f726566657272616c5f726577617264180128543a3a42616c616e6365000154726566657272616c5f626f6e75735f726577617264180128543a3a42616c616e63650004048852657761726420636f6e6669672076616c756573207765726520757064617465642e644f7065726174696f6e616c50726f6772657373466f726365641c011c6163636f756e74000130543a3a4163636f756e74496400016c7570646174655f6f7065726174696f6e616c5f70726f6772657373200110626f6f6c0001506861735f756e69737761705f7472616e73666572200110626f6f6c0001347661756c745f63726561746564200110626f6f6c00017c6861735f74726561737572795f706f6f6c5f70617274696369706174696f6e200110626f6f6c0001586f627365727665645f626974636f696e5f746f74616c180128543a3a42616c616e63650001686f627365727665645f6d696e696e675f736561745f746f74616c10010c753332000504a04f7065726174696f6e616c2070726f67726573732077617320666f7263656420627920726f6f742e58456e637279707465645365727665725570646174656408011c73706f6e736f72000130543a3a4163636f756e74496400011c73706f6e736565000130543a3a4163636f756e744964000604f4412073706f6e736f7220757064617465642074686520656e6372797074656420736572766572207061796c6f616420666f7220612073706f6e7365652e047c54686520604576656e746020656e756d206f6620746869732070616c6c657455020c406172676f6e5f7072696d6974697665732470726f766964657273544f7065726174696f6e616c5265776172644b696e640001082841637469766174696f6e00000034526566657272616c426f6e757300010000590208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200005d0200000234006102000002650200650200000408101000690208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ed4014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d656d020144436f773c277374617469632c207374723e00006d02040c436f77040454017102000400710200000071020000050200750208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000079020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d737d0201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973850201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d020000028102008102000004083838008502000002380089020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173738d0201845065724469737061746368436c6173733c57656967687473506572436c6173733e00008d020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454019102000c01186e6f726d616c910201045400012c6f7065726174696f6e616c91020104540001246d616e6461746f72799102010454000091020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963950201384f7074696f6e3c5765696768743e0001246d61785f746f74616c950201384f7074696f6e3c5765696768743e0001207265736572766564950201384f7074696f6e3c5765696768743e0000950204184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000099020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61789d0201545065724469737061746368436c6173733c7533323e00009d020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000a102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000a502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d656d020144436f773c277374617469632c207374723e000124696d706c5f6e616d656d020144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973a902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e08010875380000a902040c436f7704045401ad02000400ad02000000ad02000002b10200b10200000408b5021000b502000003080000000800b9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574bd020c406172676f6e5f7072696d6974697665731c6469676573747324446967657374736574084c4e6f7465626f6f6b5665726966794572726f72011901244163636f756e7449640100001c0118617574686f720001244163636f756e744964000128626c6f636b5f766f7465c102013c426c6f636b566f7465446967657374000128766f74696e675f6b6579c50201744f7074696f6e3c506172656e74566f74696e674b65794469676573743e000128666f726b5f706f776572d10201444f7074696f6e3c466f726b506f7765723e0001286672616d655f696e666fe50201444f7074696f6e3c4672616d65496e666f3e0001107469636bed0201285469636b4469676573740001246e6f7465626f6f6b73f102018c4e6f7465626f6f6b4469676573743c4e6f7465626f6f6b5665726966794572726f723e0000c1020c406172676f6e5f7072696d6974697665731c646967657374733c426c6f636b566f74654469676573740000080130766f74696e675f706f776572c00140426c6f636b566f74696e67506f77657200012c766f7465735f636f756e74d4010c7533320000c50204184f7074696f6e04045401c9020108104e6f6e6500000010536f6d650400c9020000010000c9020c406172676f6e5f7072696d6974697665731c6469676573747354506172656e74566f74696e674b65794469676573740000040144706172656e745f766f74696e675f6b6579cd0201444f7074696f6e3c566f74696e674b65793e0000cd0204184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000d10204184f7074696f6e04045401d5020108104e6f6e6500000010536f6d650400d5020000010000d5020c406172676f6e5f7072696d69746976657328666f726b5f706f77657224466f726b506f77657200001c013869735f6c61746573745f766f7465200110626f6f6c0001246e6f7465626f6f6b732c010c753634000130766f74696e675f706f776572d9020110553235360001347365616c5f737472656e677468d902011055323536000160746f74616c5f636f6d707574655f646966666963756c7479d90201105532353600014c766f74655f637265617465645f626c6f636b73c00110753132380001446d696e65725f6e6f6e63655f73636f7265e10201304f7074696f6e3c553235363e0000d902083c7072696d69746976655f7479706573105532353600000400dd0201205b7536343b20345d0000dd02000003040000003000e10204184f7074696f6e04045401d9020108104e6f6e6500000010536f6d650400d9020000010000e50204184f7074696f6e04045401e9020108104e6f6e6500000010536f6d650400e9020000010000e9020c406172676f6e5f7072696d6974697665731c64696765737473244672616d65496e666f00000c01206672616d655f69642c011c4672616d6549640001706672616d655f7265776172645f7469636b735f72656d61696e696e67d4010c75333200013069735f6e65775f6672616d65200110626f6f6c0000ed020c406172676f6e5f7072696d697469766573107469636b285469636b446967657374000004003001105469636b0000f1020c406172676f6e5f7072696d6974697665731c64696765737473384e6f7465626f6f6b446967657374042c5665726966794572726f72011901000401246e6f7465626f6f6b73f50201ec426f756e6465645665633c4e6f7465626f6f6b4175646974526573756c743c5665726966794572726f723e2c20436f6e73745533323c3235363e3e0000f5020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f902045300000400010301185665633c543e0000f9020c406172676f6e5f7072696d697469766573206e6f7465626f6f6b4c4e6f7465626f6f6b4175646974526573756c74042c5665726966794572726f72011901001001246e6f746172795f6964d401204e6f74617279496400013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d6265720001107469636b2c01105469636b00014c61756469745f66697273745f6661696c757265fd02014c4f7074696f6e3c5665726966794572726f723e0000fd0204184f7074696f6e0404540119010108104e6f6e6500000010536f6d650400190100000100000103000002f9020005030c3870616c6c65745f646967657374731870616c6c6574144572726f72040454000134604475706c6963617465426c6f636b566f74654469676573740000047c4475706c696361746520426c6f636b566f746544696765737420666f756e64544475706c6963617465417574686f72446967657374000104704475706c696361746520417574686f7244696765737420666f756e644c4475706c69636174655469636b446967657374000204684475706c6963617465205469636b44696765737420666f756e64784475706c6963617465506172656e74566f74696e674b6579446967657374000304944475706c696361746520506172656e74566f74696e674b657944696765737420666f756e645c4475706c69636174654e6f7465626f6f6b446967657374000404784475706c6963617465204e6f7465626f6f6b44696765737420666f756e64604475706c6963617465466f726b506f7765724469676573740005047c4475706c696361746520466f726b506f77657244696765737420666f756e64584d697373696e67426c6f636b566f74654469676573740006045c4d697373696e6720426c6f636b566f74654469676573744c4d697373696e67417574686f72446967657374000704504d697373696e6720417574686f72446967657374444d697373696e675469636b446967657374000804484d697373696e67205469636b446967657374704d697373696e67506172656e74566f74696e674b6579446967657374000904744d697373696e6720506172656e74566f74696e674b6579446967657374544d697373696e674e6f7465626f6f6b446967657374000a04584d697373696e67204e6f7465626f6f6b44696765737450436f756c644e6f744465636f6465446967657374000b04604661696c656420746f206465636f64652064696765737473604475706c69636174654672616d65496e666f446967657374000c04644475706c6963617465204672616d65496e666f20666f756e64048054686520604572726f726020656e756d206f6620746869732070616c6c65742e09030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d03000004080004001103083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e88015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c731503018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e000015030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400190301185665633c543e0000190300000200001d030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573190301445665633c543a3a4163636f756e7449643e00011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573190301445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74550501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573190301445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74550501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573190301445665633c543a3a4163636f756e7449643e00012474696d65706f696e7488017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573190301445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e210308346172676f6e5f72756e74696d652c52756e74696d6543616c6c0001741853797374656d0400790201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400090301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e000200204d756c746973696704001d0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0003001450726f78790400250301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e000400145469636b730400350301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5469636b732c2052756e74696d653e000500284d696e696e67536c6f740400390301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d696e696e67536c6f742c2052756e74696d653e00060030426974636f696e5574786f7304003d0301c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426974636f696e5574786f732c2052756e74696d653e000700185661756c747304005d0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5661756c74732c2052756e74696d653e00080030426974636f696e4c6f636b730400850301c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426974636f696e4c6f636b732c2052756e74696d653e000900204e6f7461726965730400a10301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f7461726965732c2052756e74696d653e000a00204e6f7465626f6f6b0400a50301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f7465626f6f6b2c2052756e74696d653e000b0034436861696e5472616e736665720400e50301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436861696e5472616e736665722c2052756e74696d653e000c0034426c6f636b5365616c537065630400e90301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426c6f636b5365616c537065632c2052756e74696d653e000d001c446f6d61696e730400ed0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000e00285072696365496e6465780400f10301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5072696365496e6465782c2052756e74696d653e000f001c4772616e6470610400f90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e00110024426c6f636b5365616c0400250401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426c6f636b5365616c2c2052756e74696d653e00120030426c6f636b526577617264730400410401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426c6f636b526577617264732c2052756e74696d653e001300104d696e740400450401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d696e742c2052756e74696d653e0014002042616c616e6365730400490401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e001500244f776e6572736869700400510401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f776e6572736869702c2052756e74696d653e0016001c547850617573650400550401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c547850617573652c2052756e74696d653e0017001c5574696c6974790400590401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001900105375646f0400610401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e001a001049736d700400650401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c49736d702c2052756e74696d653e001b002c49736d704772616e6470610400ed0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c49736d704772616e6470612c2052756e74696d653e001c0030546f6b656e476174657761790400f90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546f6b656e476174657761792c2052756e74696d653e001e002054726561737572790400290501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e001f004c4f7065726174696f6e616c4163636f756e747304002d0501e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e616c4163636f756e74732c2052756e74696d653e0022000025030c3070616c6c65745f70726f78791870616c6c65741043616c6c04045400012c1470726f78790c01107265616c290301504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065310301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465290301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465290301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005d015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e7473206372656174656420627920606372656174655f70757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465789c010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572290301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f787954797065000114696e6465789c010c753136000118686569676874d40144426c6f636b4e756d626572466f723c543e0001246578745f696e646578d4010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fb0606372656174655f7075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0055012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c656420606372656174655f707572656020746f206372656174652074686973206163636f756e742e55012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e2050726f6261626c79206030602e09012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e45012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e51012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265f86163636f756e742077686f736520606372656174655f70757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616c290301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c290301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465290301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465290301504163636f756e7449644c6f6f6b75704f663c543e0001107265616c290301504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065310301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780190011408496404000001244163636f756e74496400000014496e64657804002d0301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400450201205b75383b2032305d000400002d030000069000310304184f7074696f6e04045401980108104e6f6e6500000010536f6d65040098000001000035030c3070616c6c65745f7469636b731870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39030c4870616c6c65745f6d696e696e675f736c6f741870616c6c65741043616c6c0404540001080c6269640c010c626964180128543a3a42616c616e63650001106b657973b0011c543a3a4b6579730001446d696e696e675f6163636f756e745f6964bc01504f7074696f6e3c543a3a4163636f756e7449643e00005861015375626d697420612062696420666f722061206d696e696e6720736c6f7420696e20746865206e65787420636f686f72742e204f6e636520616c6c2073706f7473206172652066696c6c656420696e20746865206e657874f4636f686f72742c2061206269646465722063616e20626520737570706c616e74656420627920737570706c79696e67206120686967686572206269642e00b84561636820736c6f742068617320604d6178436f686f727453697a65602073706f747320617661696c61626c652e005101546f20626520656c696769626c6520666f72206120736c6f742c20796f75206d757374206861766520746865207265717569726564206f776e65727368697020746f6b656e7320286172676f6e6f74732920696e590174686973206163636f756e742e2054686520726571756972656420616d6f756e742069732063616c63756c6174656420617320612070657263656e74616765206f662074686520746f74616c206f776e6572736869705501746f6b656e7320696e20746865206e6574776f726b2e20546869732070657263656e746167652069732061646a7573746564206265666f72652074686520626567696e6e696e67206f66206561636820736c6f742e004501496620796f757220626964206973206e6f206c6f6e6765722077696e6e696e672c20612060536c6f7442696464657244726f7070656460206576656e742077696c6c20626520656d69747465642e2042792d016d6f6e69746f72696e6720666f722074686973206576656e742c20796f752077696c6c2062652061626c6520746f20656e7375726520796f7572206269642069732061636365707465642e000d014e4f54453a2062696464696e6720666f72206561636820736c6f742077696c6c20626520636c6f73656420617420612072616e646f6d20626c6f636b2077697468696e3d01606d696e696e675f636f6e6669672e7469636b735f6265666f72655f6269645f656e645f666f725f7672665f636c6f73656020626c6f636b73206f662074686520736c6f7420656e642074696d652e00610154686520736c6f74206475726174696f6e2063616e2062652063616c63756c617465642061732060426c6f636b734265747765656e536c6f7473202a204d61784d696e657273202f204d6178436f686f727453697a65602e002c506172616d65746572733a902d2060626964603a2054686520616d6f756e74206f66206172676f6e7320746f206269644d012d20606b657973603a205468652073657373696f6e2022686f7422206b65797320666f722074686520736c6f742028426c6f636b5365616c417574686f72697479496420616e64204772616e6470614964292e59012d20606d696e696e675f6163636f756e745f6964603a2054686973206163636f756e745f696420616c6c6f777320796f7520746f206f7065726174652061732074686973206d696e6572206163636f756e742069642c01012020627574207573652066756e64696e6720286172676f6e6f747320616e6420626964292066726f6d20746865207375626d697474696e67206163636f756e746c636f6e6669677572655f6d696e696e675f736c6f745f64656c61790801446d696e696e675f736c6f745f64656c61798d0101304f7074696f6e3c5469636b3e0001887469636b735f6265666f72655f6269645f656e645f666f725f7672665f636c6f73658d0101304f7074696f6e3c5469636b3e000104bc41646d696e2066756e6374696f6e20746f2075706461746520746865206d696e696e6720736c6f742064656c61792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d030c5070616c6c65745f626974636f696e5f7574786f731870616c6c65741043616c6c0404540001141073796e630401247574786f5f73796e634103013c426974636f696e5574786f53796e63000004e85375626d6974746564207768656e206120626974636f696e205554584f20686173206265656e206d6f766564206f7220636f6e6669726d65642e4c7365745f636f6e6669726d65645f626c6f636b080138626974636f696e5f686569676874300134426974636f696e486569676874000148626974636f696e5f626c6f636b5f68617368d00140426974636f696e426c6f636b4861736800011449015365747320746865206d6f737420726563656e7420636f6e6669726d656420626974636f696e20626c6f636b2068656967687420286f6e6c792065786563757461626c6520627920746865204f7261636c65444f70657261746f72206163636f756e7429002c2320417267756d656e747311012a2060626974636f696e5f68656967687460202d20746865206c617465737420626974636f696e20626c6f636b2068656967687420746f20626520636f6e6669726d6564307365745f6f70657261746f720401286163636f756e745f6964000130543a3a4163636f756e74496400021025015365747320746865206f7261636c65206f70657261746f72206163636f756e7420696420286f6e6c792065786563757461626c652062792074686520526f6f74206163636f756e7429002c2320417267756d656e7473bc2a20606163636f756e745f696460202d20746865206163636f756e74206964206f6620746865206f70657261746f726066756e645f776974685f7574786f5f63616e64696461746508011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f52656600030cec42696e6420612063616e646964617465205554584f20726566206173207468652066756e64696e67205554584f20666f7220697473206c6f636b2e3d01546865206c6f636b732070616c6c657420617574686f72697a6573207468652070726f6d6f74696f6e3b20746869732070616c6c65742062696e6473207468652072656620616e6420626567696e7324747261636b696e672e5472656a6563745f7574786f5f63616e64696461746508011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f526566000408450152656a65637420612070656e64696e672063616e646964617465205554584f20616e64206d6174657269616c697a6520697420617320616e206f727068616e207468726f75676820746865206c6f636b731c70616c6c65742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41030c406172676f6e5f7072696d69746976657324696e686572656e74733c426974636f696e5574786f53796e6300000c01147370656e74450301545665633c426974636f696e5574786f5370656e643e00011866756e6465645103015c5665633c426974636f696e5574786f46756e64696e673e00013473796e635f746f5f626c6f636b59030130426974636f696e426c6f636b0000450300000249030049030c406172676f6e5f7072696d69746976657324696e686572656e747340426974636f696e5574786f5370656e6400000c011c7574786f5f69642c01185574786f49640001207574786f5f7265664d03013c4f7074696f6e3c5574786f5265663e000138626974636f696e5f6865696768742c0134426974636f696e48656967687400004d0304184f7074696f6e04045401cc0108104e6f6e6500000010536f6d650400cc0000010000510300000255030055030c406172676f6e5f7072696d69746976657324696e686572656e747348426974636f696e5574786f46756e64696e67000014011c7574786f5f69642c01185574786f49640001207574786f5f726566cc011c5574786f5265660001207361746f736869732c01205361746f7368697300014465787065637465645f7361746f736869732c01205361746f73686973000138626974636f696e5f6865696768742c0134426974636f696e486569676874000059030c406172676f6e5f7072696d6974697665731c626974636f696e30426974636f696e426c6f636b0000080130626c6f636b5f6865696768742c0134426974636f696e486569676874000128626c6f636b5f68617368d00140426974636f696e426c6f636b4861736800005d030c3470616c6c65745f7661756c74731870616c6c65741043616c6c040454000120186372656174650401307661756c745f636f6e6669676103015c5661756c74436f6e6669673c543a3a42616c616e63653e000000386d6f646966795f66756e64696e670c01207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e636500015073656375726974697a6174696f6e5f726174696fe0012446697865645531323800012061014d6f646966792066756e647320616c6c6f636174656420627920746865207661756c742e20546869732077696c6c206e6f74206166666563742069737375656420626974636f696e206c6f636b732c206275742077696c6cc86166666563742074686520616d6f756e74206f662066756e647320617661696c61626c6520666f72206e6577206f6e65732e00ec5468652073656375726974697a6174696f6e2070657263656e74206d757374206265206d61696e7461696e6564206f7220696e637265617365642e00610154686520616d6f756e7420616c6c6f6361746564206d6179206e6f7420676f2062656c6f7720746865206578697374696e6720726573657276656420616d6f756e74732c2062757420796f752063616e2072656c656173654d0166756e647320696e2074686973207661756c7420617320626974636f696e206c6f636b73206172652072656c65617365642e20546f2073746f702069737375696e6720616e79206d6f726520626974636f696e6c6c6f636b732c20757365207468652060636c6f736560206170692e306d6f646966795f7465726d730801207661756c745f696410011c5661756c7449640001147465726d73650301585661756c745465726d733c543a3a42616c616e63653e00020849014368616e676520746865207465726d73206f662074686973207661756c742e20546865206368616e67652077696c6c206265206170706c69656420617420746865206e657874206d696e696e6720736c6f7415016368616e67652074686174206973206174206c6561737420604d696e5465726d734d6f64696669636174696f6e426c6f636b44656c61796020626c6f636b7320617761792e14636c6f73650401207661756c745f696410011c5661756c744964000308410153746f70206f66666572696e67206164646974696f6e616c20626974636f696e206c6f636b732066726f6d2074686973207661756c742e2057696c6c206e6f7420616666656374206578697374696e671d016c6f636b732e2041732066756e6473206172652072657475726e65642c20746865792077696c6c2062652072656c656173656420746f20746865207661756c74206f776e65722e507265706c6163655f626974636f696e5f787075620801207661756c745f696410011c5661756c744964000130626974636f696e5f787075627d0301444f7061717565426974636f696e5870756200040c61015265706c6163652074686520626974636f696e20787075626b657920666f722074686973207661756c742e20546869732077696c6c206e6f7420616666656374206578697374696e6720626974636f696e206c6f636b732c31016275742077696c6c206265207573656420666f7220616e79206c6f636b73206166746572207468697320706f696e742e2057696c6c2062652072656a656374656420696620616c726561647914757365642e1c636f6c6c6563740401207661756c745f696410011c5661756c744964000500647365745f626974636f696e5f6c6f636b5f64656c656761746504014c64656c65676174655f6163636f756e745f6964bc01504f7074696f6e3c543a3a4163636f756e7449643e000600207365745f6e616d650401106e616d65750301444f7074696f6e3c5661756c744e616d653e000700040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61030c3470616c6c65745f7661756c74731870616c6c65742c5661756c74436f6e666967041c42616c616e63650118001401147465726d736503014c5661756c745465726d733c42616c616e63653e0001106e616d65750301444f7074696f6e3c5661756c744e616d653e00013873656375726974697a6174696f6ec0011c42616c616e636500013c626974636f696e5f787075626b65797d0301444f7061717565426974636f696e5870756200015073656375726974697a6174696f6e5f726174696f69030124466978656455313238000065030c406172676f6e5f7072696d697469766573147661756c74285661756c745465726d73041c42616c616e63650118000c016c626974636f696e5f616e6e75616c5f70657263656e745f7261746569030124466978656455313238000140626974636f696e5f626173655f666565c0011c42616c616e636500015c74726561737572795f70726f6669745f73686172696e676d03011c5065726d696c6c00006903000006e0006d0300000671030071030c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000750304184f7074696f6e0404540179030108104e6f6e6500000010536f6d6504007903000001000079030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007d030c406172676f6e5f7072696d6974697665731c626974636f696e444f7061717565426974636f696e5870756200000400810301205b75383b2037385d000081030000034e000000080085030c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c65741043616c6c04045400012428696e697469616c697a651001207661756c745f696410011c5661756c7449640001207361746f736869732c01205361746f73686973000138626974636f696e5f7075626b65798903015c436f6d70726573736564426974636f696e5075626b657900011c6f7074696f6e73910301584f7074696f6e3c4c6f636b4f7074696f6e733c543e3e0000205901496e697469616c697a65206120626974636f696e206c6f636b2e20546869732077696c6c206372656174652061204c6f636b6564426974636f696e20666f7220746865207375626d697474696e67206163636f756e74a8616e64206c6f672074686520426974636f696e20536372697074206861736820746f204576656e74732e005d01546865207075626b6579207375626d697474656420686572652077696c6c206265207573656420746f20637265617465206120736372697074207075626b657920746861742077696c6c206265207573656420696e2061b474696d656c6f636b206d756c74697369672073637269707420746f206c6f636b2074686520626974636f696e2e0039014e4f54453a204120226c6f636b2d657222206d7573742073656e642062746320746f2074686520636f7369676e6572205554584f206164647265737320746f2022636f6d706c6574652220746865d04c6f636b6564426974636f696e20616e6420626520616464656420746f2074686520426974636f696e204d696e74206c696e652e3c726571756573745f72656c656173650c011c7574786f5f69643001185574786f4964000140746f5f7363726970745f7075626b65799903014c426974636f696e5363726970745075626b657900014c626974636f696e5f6e6574776f726b5f6665653001205361746f7368697300011851015375626d6974746564206279206120426974636f696e20686f6c64657220746f2074726967676572207468652072656c65617365206f66207468656972205574786f206f7574206f662074686520636f7369676e45017363726970742e2041207472616e73616374696f6e207370656e64696e6720746865205554584f2073686f756c64206265207072652d6372656174656420736f20746861742074686520736967686173683d0163616e206265207375626d697474656420686572652e20546865207661756c74206f70657261746f722077696c6c2068617665203130206461797320746f20636f756e7465722d7369676e2074686555017472616e73616374696f6e2e2049742077696c6c206265207075626c6973686564207769746820746865207075626c6963206b6579206173206120426974636f696e5574786f436f7369676e6564204576656e742e003d014f776e6572206d757374207375626d6974206120736372697074207075626b657920616e6420616c736f20612066656520746f2070617920746f2074686520626974636f696e206e6574776f726b2e38636f7369676e5f72656c6561736508011c7574786f5f69643001185574786f49640001247369676e6174757265e80140426974636f696e5369676e617475726500021461015375626d69747465642062792061205661756c74206f70657261746f7220746f20636f7369676e207468652072656c65617365206f66206120626974636f696e207574786f2e2054686520426974636f696e206f776e6572550172656c65617365206665652077696c6c206265206275726e65642c20616e6420746865206c6f636b2077696c6c20626520616c6c6f77656420746f2065787069726520776974686f757420612070656e616c74792e004d0154686973206973207375626d69747465642061732061206e6f2d666565207472616e73616374696f6e206f666620636861696e20746f20616c6c6f77206b65797320746f2072656d61696e20696e20636f6c642077616c6c6574732e1c7261746368657408011c7574786f5f69643001185574786f496400011c6f7074696f6e73910301584f7074696f6e3c4c6f636b4f7074696f6e733c543e3e000338410152617463686574696e6720616c6c6f77732061207573657220746f206368616e676520746865206c6f636b207072696365206f6620746865697220626974636f696e206c6f636b2e2054686973206973510166756e6374696f6e616c6c79207468652073616d652061732072656c656173696e6720616e642072652d696e697469616c697a696e672c2062757420697420616c6c6f77732061207573657220746f20736b6970610173656e64696e67207472616e73616374696f6e73207468726f75676820626974636f696e20616e6420616e79206173736f63696174656420666565732e20497420616c736f20616c6c6f777320796f7520746f20737461794d016f6e20796f7572206f726967696e616c206c6f636b2065787069726174696f6e20776974686f757420686176696e6720746f20706179207468652066756c6c2079656172206f66206665657320616761696e2e00610152617463686574696e672022646f776e22202d207768656e20746865207072696365206f6620626974636f696e206973206c6f776572207468616e20796f7572206c6f636b2070726963652c20796f7520706179207468655d0166756c6c2072656c6561736520707269636520616e6420676574206164646564206261636b20746f20746865206d696e74207175657565206174207468652063757272656e74206d61726b657420726174652e20596f755901706f636b65742074686520646966666572656e6365206265747765656e2074686520616c7265616479206d696e74656420226c6f636b2070726963652220616e6420746865206e6577206d61726b65742076616c7565550128776869636820796f75206a75737420686164206275726e6564292e20596f7572206e6577206c6f636b2070726963652069732073657420746f20746865206d61726b6574206c6f772c20736f20796f752063616eb874616b6520616476616e74616765206f66207261746368657473202275702220696e20746865206675747572652e00550152617463686574696e672022757022202d207768656e20746865207072696365206f6620626974636f696e20697320686967686572207468616e20796f7572206c6f636b2070726963652c20796f75207061792061610170726f72617465642066656520666f72207468652072656d61696e646572206f6620796f7572206578697374696e67206c6f636b206475726174696f6e2e20596f752061726520616464656420746f20746865206d696e742d01717565756520666f722074686520646966666572656e636520696e20796f7572206e6577206c6f636b207072696365207673207468652070726576696f7573206c6f636b2070726963652e8061646d696e5f6d6f646966795f6d696e696d756d5f6c6f636b65645f736174730401207361746f736869733001205361746f7368697300040074726571756573745f6f727068616e65645f7574786f5f72656c656173650c01207574786f5f726566cc011c5574786f526566000140746f5f7363726970745f7075626b65799903014c426974636f696e5363726970745075626b657900014c626974636f696e5f6e6574776f726b5f6665653001205361746f7368697300050070636f7369676e5f6f727068616e65645f7574786f5f72656c656173650c01306f727068616e5f6f776e6572000130543a3a4163636f756e7449640001207574786f5f726566cc011c5574786f5265660001247369676e6174757265e80140426974636f696e5369676e617475726500061c41014e4f54453a2054686520607369676e61747572656020706172616d65746572206973204e4f54207665726966696564206f6e2d636861696e2e20546865206f727068616e207265636f726420646f657339016e6f742072657461696e2074686520636f7369676e207363726970742061726773206e656564656420666f7220766572696669636174696f6e2028746865792061726520636c65616e6564207570f4776974682074686520426974636f696e4c6f636b292e20546865207369676e617475726520697320706173736564207468726f75676820746f207468654101604f727068616e65645574786f436f7369676e656460206576656e7420736f20746865206c6f636b206f776e65722063616e20636f6e7374727563742074686520426974636f696e2072656c6561736535017472616e73616374696f6e206f66662d636861696e2e20412067617262616765207369676e6174757265206d65616e7320746865206f776e65722063616e2774207370656e6420e28094206e6f41016f6e2d636861696e2064616d6167652e20546f20616464206f6e2d636861696e20766572696669636174696f6e2c2074686520636f7369676e20736372697074206172677320776f756c64206e656564f0746f2062652073746f72656420696e20604f727068616e65645574786f60202873746f72616765206d6967726174696f6e207265717569726564292e38696e697469616c697a655f666f721401286163636f756e745f6964000130543a3a4163636f756e7449640001207661756c745f696410011c5661756c7449640001207361746f736869732c01205361746f73686973000138626974636f696e5f7075626b65798903015c436f6d70726573736564426974636f696e5075626b657900011c6f7074696f6e73910301584f7074696f6e3c4c6f636b4f7074696f6e733c543e3e0008005c696e6372656173655f73656375726974697a6174696f6e08011c7574786f5f69643001185574786f49640001306e65775f7361746f736869732c01205361746f73686973000900040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89030c406172676f6e5f7072696d6974697665731c626974636f696e5c436f6d70726573736564426974636f696e5075626b6579000004008d0301205b75383b2033335d00008d03000003210000000800910304184f7074696f6e0404540195030108104e6f6e6500000010536f6d6504009503000001000095030c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c65742c4c6f636b4f7074696f6e730404540001040856310401446d6963726f676f6e735f7065725f627463850101484f7074696f6e3c543a3a42616c616e63653e0000000099030c406172676f6e5f7072696d6974697665731c626974636f696e4c426974636f696e5363726970745075626b6579000004009d030170426f756e6465645665633c75382c20436f6e73745533323c33343e3e00009d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a1030c3c70616c6c65745f6e6f7461726965731870616c6c65741043616c6c04045400010c1c70726f706f73650401106d657461f4013c4e6f746172794d6574614f663c543e0000002061637469766174650401406f70657261746f725f6163636f756e74000130543a3a4163636f756e744964000100187570646174650c01246e6f746172795f6964d401204e6f7461727949640001106d657461f4013c4e6f746172794d6574614f663c543e0001386566666563746976655f7469636b2c01105469636b000208610155706461746520746865206d65746164617461206f662061206e6f746172792c20746f206265206566666563746976652061742074686520676976656e207469636b206865696768742c207768696368206d757374206265b03e3d204d6574614368616e6765735469636b44656c6179207469636b7320696e20746865206675747572652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5030c3c70616c6c65745f6e6f7465626f6f6b1870616c6c65741043616c6c040454000108187375626d69740401246e6f7465626f6f6b73a90301645665633c5369676e65644e6f7465626f6f6b4865616465723e00000018756e6c6f636b0401246e6f746172795f69641001204e6f746172794964000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea903000002ad0300ad030c406172676f6e5f7072696d697469766573206e6f7465626f6f6b505369676e65644e6f7465626f6f6b4865616465720000080118686561646572b10301384e6f7465626f6f6b4865616465720001247369676e6174757265e103013c4e6f746172795369676e61747572650000b1030c406172676f6e5f7072696d697469766573206e6f7465626f6f6b384e6f7465626f6f6b48656164657200003c011c76657273696f6eb503010c75313600013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d6265720001107469636b2c01105469636b00010c746178c00110753132380001246e6f746172795f6964d401204e6f74617279496400013c636861696e5f7472616e7366657273b90301bc426f756e6465645665633c436861696e5472616e736665722c204d61784e6f7465626f6f6b5472616e73666572733e0001546368616e6765645f6163636f756e74735f726f6f743401104832353600015c6368616e6765645f6163636f756e745f6f726967696e73c50301c4426f756e6465645665633c4163636f756e744f726967696e2c20436f6e73745533323c7b207533323a3a4d4158207d3e3e000140626c6f636b5f766f7465735f726f6f7434011048323536000144626c6f636b5f766f7465735f636f756e74d4010c753332000144626c6f636b735f776974685f766f746573d1030180426f756e6465645665633c483235362c20436f6e73745533323c313030303e3e000148626c6f636b5f766f74696e675f706f776572c00140426c6f636b566f74696e67506f77657200012c7365637265745f686173683401484e6f7465626f6f6b53656372657448617368000134706172656e745f736563726574cd0201584f7074696f6e3c4e6f7465626f6f6b5365637265743e00011c646f6d61696e73d50301e8426f756e6465645665633c28446f6d61696e486173682c204163636f756e744964292c204d6178446f6d61696e735065724e6f7465626f6f6b3e0000b5030000069c00b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400c10301185665633c543e0000bd030c406172676f6e5f7072696d697469766573206e6f7465626f6f6b34436861696e5472616e736665720001082c546f4d61696e636861696e0801286163636f756e745f69640001244163636f756e744964000118616d6f756e74c001107531323800000030546f4c6f63616c636861696e04012c7472616e736665725f6964d401585472616e73666572546f4c6f63616c636861696e496400010000c103000002bd0300c5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c903045300000400cd0301185665633c543e0000c9030c406172676f6e5f7072696d6974697665733862616c616e63655f6368616e6765344163636f756e744f726967696e000008013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d62657200012c6163636f756e745f756964d401404163636f756e744f726967696e5569640000cd03000002c90300d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004005d0201185665633c543e0000d5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d903045300000400dd0301185665633c543e0000d90300000408340000dd03000002d90300e103000003400000000800e5030c5470616c6c65745f636861696e5f7472616e736665721870616c6c65741043616c6c0404540001044873656e645f746f5f6c6f63616c636861696e080118616d6f756e74c001583c5420617320436f6e6669673e3a3a42616c616e63650001246e6f746172795f69641001204e6f746172794964000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9030c5870616c6c65745f626c6f636b5f7365616c5f737065631870616c6c65741043616c6c04045400010424636f6e666967757265080130766f74655f6d696e696d756d8501014c4f7074696f6e3c566f74654d696e696d756d3e000148636f6d707574655f646966666963756c7479850101304f7074696f6e3c753132383e000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed030c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c0404540001043c7365745f7a6f6e655f7265636f726408012c646f6d61696e5f68617368340128446f6d61696e4861736800012c7a6f6e655f7265636f72643d0101605a6f6e655265636f72643c543a3a4163636f756e7449643e000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef1030c4870616c6c65745f70726963655f696e6465781870616c6c65741043616c6c040454000108187375626d6974040114696e646578f50301285072696365496e64657800000435015375626d697420746865206c617465737420707269636520696e6465782e204f6e6c792076616c696420666f722074686520636f6e66696775726564206f70657261746f72206163636f756e74307365745f6f70657261746f720401286163636f756e745f6964000130543a3a4163636f756e74496400011009015365747320746865206f70657261746f72206163636f756e7420696420286f6e6c792065786563757461626c652062792074686520526f6f74206163636f756e7429002c2320417267756d656e7473bc2a20606163636f756e745f696460202d20746865206163636f756e74206964206f6620746865206f70657261746f72040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084870616c6c65745f70726963655f696e646578285072696365496e64657800001801346274635f7573645f7072696365690301244669786564553132380001446172676f6e6f745f7573645f7072696365e0012446697865645531323800013c6172676f6e5f7573645f7072696365690301244669786564553132380001586172676f6e5f7573645f7461726765745f7072696365e001244669786564553132380001946172676f6e5f74696d655f77656967687465645f617665726167655f6c697175696469747918011c42616c616e63650001107469636b2c01105469636b0000f9030c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66fd0301c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6621040140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66fd0301c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6621040140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd03085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6e0104014845717569766f636174696f6e3c482c204e3e00000104085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f74650400050401890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d69740400150401910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e000100000504084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401b404560109040453010d0400100130726f756e645f6e756d62657230010c7536340001206964656e74697479b40108496400011466697273741104011828562c2053290001187365636f6e641104011828562c20532900000904084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e00000d040c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e617475726500000400e1030148656432353531393a3a5369676e6174757265000011040000040809040d04001504084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401b404560119040453010d0400100130726f756e645f6e756d62657230010c7536340001206964656e74697479b40108496400011466697273741d04011828562c2053290001187365636f6e641d04011828562c20532900001904084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e00001d040000040819040d04002104081c73705f636f726510566f69640001000025040c4470616c6c65745f626c6f636b5f7365616c1870616c6c65741043616c6c040454000104146170706c790401107365616c29040144426c6f636b5365616c496e686572656e74000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29040c406172676f6e5f7072696d69746976657324696e686572656e747344426c6f636b5365616c496e686572656e7400010810566f74651801347365616c5f737472656e677468d9020110553235360001246e6f746172795f6964d401204e6f746172794964000158736f757263655f6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d626572000154736f757263655f6e6f7465626f6f6b5f70726f6f662d04012c4d65726b6c6550726f6f66000128626c6f636b5f766f746535040124426c6f636b566f74650001446d696e65725f6e6f6e63655f73636f7265e10201304f7074696f6e3c553235363e0000001c436f6d70757465000100002d040c406172676f6e5f7072696d6974697665733862616c616e63655f6368616e67652c4d65726b6c6550726f6f6600000c011470726f6f66310401a0426f756e6465645665633c483235362c20436f6e73745533323c7b207533323a3a4d4158207d3e3e0001406e756d6265725f6f665f6c6561766573d4010c7533320001286c6561665f696e646578d4010c753332000031040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004005d0201185665633c543e000035040c406172676f6e5f7072696d69746976657328626c6f636b5f766f746528426c6f636b566f7465540410486173680134001c01286163636f756e745f69640001244163636f756e744964000128626c6f636b5f6861736834011048617368000114696e646578d4010c753332000114706f776572c00140426c6f636b566f74696e67506f7765720001247369676e6174757265390401384d756c74695369676e6174757265000160626c6f636b5f726577617264735f6163636f756e745f69640001244163636f756e7449640001107469636b2c01105469636b00003904082873705f72756e74696d65384d756c74695369676e61747572650001101c456432353531390400e1030148656432353531393a3a5369676e61747572650000001c537232353531390400e1030148737232353531393a3a5369676e617475726500010014456364736104003d04014065636473613a3a5369676e61747572650002000c45746804003d04015865636473613a3a4b656363616b5369676e6174757265000300003d0400000341000000080041040c5070616c6c65745f626c6f636b5f726577617264731870616c6c65741043616c6c040454000104607365745f626c6f636b5f726577617264735f706175736564040118706175736564200110626f6f6c000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45040c2c70616c6c65745f6d696e741870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374290301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365290301504163636f756e7449644c6f6f6b75704f663c543e00011064657374290301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374290301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374290301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f290301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f190301445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f290301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565c00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e4d04014c41646a7573746d656e74446972656374696f6e00011464656c7461c00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565c00128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d040c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e6372656173650000002044656372656173650001000051040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374290301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365290301504163636f756e7449644c6f6f6b75704f663c543e00011064657374290301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374290301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374290301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f290301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f190301445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f290301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565c00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e4d04014c41646a7573746d656e74446972656374696f6e00011464656c7461c00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565c00128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55040c3c70616c6c65745f74785f70617573651870616c6c65741043616c6c04045400010814706175736504012466756c6c5f6e616d65c501015052756e74696d6543616c6c4e616d654f663c543e00001034506175736520612063616c6c2e00b843616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a50617573654f726967696e605d2ec0456d69747320616e205b604576656e743a3a43616c6c506175736564605d206576656e74206f6e20737563636573732e1c756e70617573650401146964656e74c501015052756e74696d6543616c6c4e616d654f663c543e00011040556e2d706175736520612063616c6c2e00c043616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a556e70617573654f726967696e605d2ec8456d69747320616e205b604576656e743a3a43616c6c556e706175736564605d206576656e74206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400012014626174636804011463616c6c735d04017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465789c010c75313600011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c735d04017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e31020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c735d04017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696e2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636b2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696e31020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005101416c6d6f7374207468652073616d65206173205b6050616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d0400000221030061040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577290301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f290301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c2103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65040c2c70616c6c65745f69736d701870616c6c65741043616c6c0404540001103c68616e646c655f756e7369676e65640401206d65737361676573690401305665633c4d6573736167653e000028590145786563757465207468652070726f7669646564206261746368206f662049534d50206d657373616765732c20746869732077696c6c2073686f72742d6369726375697420616e642072657665727420696620616e795d016f66207468652070726f7669646564206d657373616765732061726520696e76616c69642e205468697320697320616e20756e7369676e65642065787472696e7369632074686174207065726d69747320616e796f6e655501657865637574652049534d50206d6573736167657320666f7220667265652c2070726f7669646564207468657920686176652076616c69642070726f6f667320616e6420746865206d657373616765732068617665786e6f74206265656e2070726576696f75736c792070726f6365737365642e00e8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520616e20756e7369676e6564206f6e652e00c02d20606d65737361676573603a20746865206d6573736167657320746f2068616e646c65206f722070726f636573732e002d01456d69747320646966666572656e74206d657373616765206576656e7473206261736564206f6e20746865204d657373616765207265636569766564206966207375636365737366756c2e5c6372656174655f636f6e73656e7375735f636c69656e7404011c6d657373616765c1040150437265617465436f6e73656e737573537461746500021c5501437265617465206120636f6e73656e73757320636c69656e742c207573696e672061207375626a6563746976656c792063686f73656e20636f6e73656e7375732073746174652e20546869732063616e20616c736f39016265207573656420746f206f766572777269746520616e206578697374696e6720636f6e73656e7375732073746174652e20546865206469737061746368206f726967696e20666f7220746869737863616c6c206d7573742062652060543a3a41646d696e4f726967696e602e00b42d20606d657373616765603a205b60437265617465436f6e73656e7375735374617465605d207374727563742e00d8456d697473205b604576656e743a3a436f6e73656e737573436c69656e7443726561746564605d206966207375636365737366756c2e587570646174655f636f6e73656e7375735f737461746504011c6d657373616765e1040150557064617465436f6e73656e73757353746174650003101d014d6f646966792074686520756e626f6e64696e6720706572696f6420616e64206368616c6c656e676520706572696f6420666f72206120636f6e73656e7375732073746174652eec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a41646d696e4f726967696e602e00ac2d20606d657373616765603a2060557064617465436f6e73656e737573537461746560207374727563742e3066756e645f6d65737361676504011c6d657373616765e504017446756e644d657373616765506172616d733c543a3a42616c616e63653e0004106101416464206d6f72652066756e647320746f2061206d657373616765202872657175657374206f7220726573706f6e73652920746f206265207573656420666f722064656c697665727920616e6420657865637574696f6e2e00550153686f756c64206e6f742062652063616c6c6564206f6e2061206d657373616765207468617420686173206265656e20636f6d706c65746564202864656c697665726564206f722074696d65642d6f7574292061738474686f73652066756e64732077696c6c206265206c6f737420666f72657665722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69040000026d04006d040c1069736d70246d6573736167696e671c4d65737361676500011424436f6e73656e737573040071040140436f6e73656e7375734d65737361676500000028467261756450726f6f66040075040144467261756450726f6f664d6573736167650001001c52657175657374040079040138526571756573744d65737361676500020020526573706f6e736504008904013c526573706f6e73654d6573736167650003001c54696d656f75740400b904013854696d656f75744d6573736167650004000071040c1069736d70246d6573736167696e6740436f6e73656e7375734d65737361676500000c013c636f6e73656e7375735f70726f6f6638011c5665633c75383e000148636f6e73656e7375735f73746174655f6964480140436f6e73656e737573537461746549640001187369676e657238011c5665633c75383e000075040c1069736d70246d6573736167696e6744467261756450726f6f664d657373616765000010011c70726f6f665f3138011c5665633c75383e00011c70726f6f665f3238011c5665633c75383e000148636f6e73656e7375735f73746174655f6964480140436f6e73656e737573537461746549640001187369676e657238011c5665633c75383e000079040c1069736d70246d6573736167696e6738526571756573744d65737361676500000c012072657175657374737d0401405665633c506f7374526571756573743e00011470726f6f668504011450726f6f660001187369676e657238011c5665633c75383e00007d0400000281040081040c1069736d7018726f757465722c506f73745265717565737400001c0118736f75726365e101013053746174654d616368696e6500011064657374e101013053746174654d616368696e650001146e6f6e636530010c75363400011066726f6d38011c5665633c75383e000108746f38011c5665633c75383e00014474696d656f75745f74696d657374616d7030010c753634000110626f647938011c5665633c75383e000085040c1069736d70246d6573736167696e671450726f6f660000080118686569676874e501014853746174654d616368696e6548656967687400011470726f6f6638011c5665633c75383e000089040c1069736d70246d6573736167696e673c526573706f6e73654d65737361676500000c0120646174616772616d8d04013c52657175657374526573706f6e736500011470726f6f668504011450726f6f660001187369676e657238011c5665633c75383e00008d040c1069736d7018726f757465723c52657175657374526573706f6e73650001081c526571756573740400910401305665633c526571756573743e00000020526573706f6e736504009d0401345665633c526573706f6e73653e00010000910400000295040095040c1069736d7018726f757465721c5265717565737400010810506f737404008104012c506f7374526571756573740000000c476574040099040128476574526571756573740001000099040c1069736d7018726f7574657228476574526571756573740000200118736f75726365e101013053746174654d616368696e6500011064657374e101013053746174654d616368696e650001146e6f6e636530010c75363400011066726f6d38011c5665633c75383e0001106b657973850201305665633c5665633c75383e3e00011868656967687430010c75363400011c636f6e7465787438011c5665633c75383e00014474696d656f75745f74696d657374616d7030010c75363400009d04000002a10400a1040c1069736d7018726f7574657220526573706f6e736500010810506f73740400a5040130506f7374526573706f6e73650000000c4765740400a904012c476574526573706f6e736500010000a5040c1069736d7018726f7574657230506f7374526573706f6e736500000c0110706f73748104012c506f737452657175657374000120726573706f6e736538011c5665633c75383e00014474696d656f75745f74696d657374616d7030010c7536340000a9040c1069736d7018726f757465722c476574526573706f6e7365000008010c676574990401284765745265717565737400011876616c756573ad0401445665633c53746f7261676556616c75653e0000ad04000002b10400b1040c1069736d7018726f757465723053746f7261676556616c7565000008010c6b657938011c5665633c75383e00011476616c7565b504013c4f7074696f6e3c5665633c75383e3e0000b50404184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000b9040c1069736d70246d6573736167696e673854696d656f75744d65737361676500010c10506f73740801207265717565737473910401305665633c526571756573743e00013474696d656f75745f70726f6f668504011450726f6f6600000030506f7374526573706f6e7365080124726573706f6e736573bd0401445665633c506f7374526573706f6e73653e00013474696d656f75745f70726f6f668504011450726f6f660001000c4765740401207265717565737473910401305665633c526571756573743e00020000bd04000002a50400c1040c1069736d70246d6573736167696e6750437265617465436f6e73656e7375735374617465000018013c636f6e73656e7375735f737461746538011c5665633c75383e00014c636f6e73656e7375735f636c69656e745f6964480144436f6e73656e737573436c69656e744964000148636f6e73656e7375735f73746174655f6964480140436f6e73656e73757353746174654964000140756e626f6e64696e675f706572696f6430010c7536340001446368616c6c656e67655f706572696f6473c504016c42547265654d61703c53746174654d616368696e652c207536343e00016473746174655f6d616368696e655f636f6d6d69746d656e7473d10401b05665633c2853746174654d616368696e6549642c205374617465436f6d6d69746d656e74486569676874293e0000c504042042547265654d617008044b01e10104560130000400c904000000c904000002cd0400cd0400000408e1013000d104000002d50400d50400000408dd01d90400d9040c1069736d70246d6573736167696e67545374617465436f6d6d69746d656e744865696768740000080128636f6d6d69746d656e74dd04013c5374617465436f6d6d69746d656e7400011868656967687430010c7536340000dd040c1069736d7024636f6e73656e7375733c5374617465436f6d6d69746d656e7400000c012474696d657374616d7030010c7536340001306f7665726c61795f726f6f74cd0201304f7074696f6e3c483235363e00012873746174655f726f6f74340110483235360000e1040c2c70616c6c65745f69736d70147574696c7350557064617465436f6e73656e737573537461746500000c0148636f6e73656e7375735f73746174655f6964480140436f6e73656e73757353746174654964000140756e626f6e64696e675f706572696f648d01012c4f7074696f6e3c7536343e0001446368616c6c656e67655f706572696f6473c504016c42547265654d61703c53746174654d616368696e652c207536343e0000e5040c2c70616c6c65745f69736d70147574696c734446756e644d657373616765506172616d73041c42616c616e6365011800080128636f6d6d69746d656e74e90401444d657373616765436f6d6d69746d656e74000118616d6f756e7418011c42616c616e63650000e9040c2c70616c6c65745f69736d70147574696c73444d657373616765436f6d6d69746d656e740001081c5265717565737404003401104832353600000020526573706f6e736504003401104832353600010000ed040c3069736d705f6772616e6470611870616c6c65741043616c6c040454000108486164645f73746174655f6d616368696e65730401486e65775f73746174655f6d616368696e6573f10401505665633c41646453746174654d616368696e653e000004010141646420736f6d652061207374617465206d616368696e6520746f20746865206c697374206f6620737570706f72746564207374617465206d616368696e65735472656d6f76655f73746174655f6d616368696e657304013873746174655f6d616368696e6573050201445665633c53746174654d616368696e653e000104010152656d6f76652061207374617465206d616368696e652066726f6d20746865206c697374206f6620737570706f72746564207374617465206d616368696e6573040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef104000002f50400f504083069736d705f6772616e6470613c41646453746174654d616368696e65000008013473746174655f6d616368696e65e101013053746174654d616368696e65000134736c6f745f6475726174696f6e30010c7536340000f9040c5070616c6c65745f746f6b656e5f676174657761791870616c6c65741043616c6c0404540001102074656c65706f7274040118706172616d73fd0401790154656c65706f7274506172616d733c417373657449643c543e2c3c3c5420617320436f6e6669673e3a3a4e617469766543757272656e63792061730a43757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e63652c3e0000087054656c65706f7274732061207265676973746572656420617373657431016c6f636b732074686520617373657420616e6420646973706174636865732061207265717565737420746f20746f6b656e2067617465776179206f6e207468652064657374696e6174696f6e6c7365745f746f6b656e5f676174657761795f6164647265737365730401246164647265737365730105017c42547265654d61703c53746174654d616368696e652c205665633c75383e3e000104c85365742074686520746f6b656e2067617465776179206164647265737320666f722073706563696669656420636861696e73506372656174655f657263363136305f617373657404011461737365740d0501744173736574526567697374726174696f6e3c417373657449643c543e3e00020c2d015265676973746572732061206d756c74692d636861696e204552433631363020617373657420776974686f75742073656e64696e6720616e7920646973706174636820726571756573742e5501596f752073686f756c64207573652072656769737465725f61737365745f6c6f63616c6c79207768656e20796f752077616e7420746f20656e61626c6520746f6b656e2067617465776179207472616e7366657273d8666f7220616e206173736574207468617420616c726561647920657869737473206f6e20616e2065787465726e616c20636861696e2e587570646174655f61737365745f707265636973696f6e0401187570646174652505016c507265636973696f6e5570646174653c417373657449643c543e3e000404a85570646174652074686520707265636973696f6e20666f7220616e206578697374696e67206173736574040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd040c5070616c6c65745f746f6b656e5f676174657761791474797065733854656c65706f7274506172616d73081c4173736574496401101c42616c616e636501180024012061737365745f696410011c4173736574496400012c64657374696e6174696f6ee101013053746174654d616368696e65000124726563657069656e7434011048323536000118616d6f756e7418011c42616c616e636500011c74696d656f757430010c753634000134746f6b656e5f6761746577617938011c5665633c75383e00012c72656c617965725f66656518011c42616c616e636500012463616c6c5f64617461b504013c4f7074696f6e3c5665633c75383e3e00011872656465656d200110626f6f6c00000105042042547265654d617008044b01e1010456013800040005050000000505000002090500090500000408e10138000d050c5070616c6c65745f746f6b656e5f67617465776179147479706573444173736574526567697374726174696f6e041c417373657449640110001001206c6f63616c5f696410011c4173736574496400010c726567110501c8746f6b656e5f676174657761795f7072696d6974697665733a3a476174657761794173736574526567697374726174696f6e0001186e6174697665200110626f6f6c000124707265636973696f6e1905016842547265654d61703c53746174654d616368696e652c2075383e000011050860746f6b656e5f676174657761795f7072696d69746976657360476174657761794173736574526567697374726174696f6e00001001106e616d654d010170426f756e6465645665633c75382c20436f6e73745533323c35303e3e00011873796d626f6c15050170426f756e6465645665633c75382c20436f6e73745533323c32303e3e000118636861696e73050201445665633c53746174654d616368696e653e00013c6d696e696d756d5f62616c616e6365850101304f7074696f6e3c753132383e000015050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00001905042042547265654d617008044b01e101045601080004001d050000001d05000002210500210500000408e101080025050c5070616c6c65745f746f6b656e5f676174657761791474797065733c507265636973696f6e557064617465041c4173736574496401100008012061737365745f696410011c41737365744964000128707265636973696f6e731905016842547265654d61703c53746174654d616368696e652c2075383e000029050c3c70616c6c65745f74726561737572791870616c6c65741043616c6c040454000108246275795f626f6e64730801207661756c745f696410011c5661756c744964000114626f6e6473100114426f6e647300040c984275792077686f6c65206031204152474f4e6020626f6e647320666f722061207661756c742e00d85468652070757263686173652065697468657220656e7465727320746865206163636570746564206c697374206f72206661696c732e486c69717569646174655f626f6e645f6c6f7404012c626f6e645f6c6f745f6964300124426f6e644c6f74496400050c704c6971756964617465206f6e652066756c6c20626f6e64206c6f742e001d01546865206c6f742073746f70732070617274696369706174696e67207269676874206177617920616e642069732072656c6561736564206166746572207468652064656c61792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d050c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c65741043616c6c040454000118207265676973746572040130726567697374726174696f6e3105013c526567697374726174696f6e3c543e00000c31015265676973746572207661756c742c206d696e696e672066756e64696e672c20616e6420626f74206163636f756e747320666f7220616e206f7065726174696f6e616c206163636f756e742eec416e79206163636f756e7420696e2074686520726567697374726174696f6e206d6179207375626d697420746865207472616e73616374696f6e2e4d014966206120726566657272616c2070726f6f662069732070726f76696465642c2074686520726567697374726174696f6e207265636f726473207468652073706f6e736f722072656c6174696f6e736869702e447365745f7265776172645f636f6e66696708016c6f7065726174696f6e616c5f726566657272616c5f726577617264180128543a3a42616c616e6365000154726566657272616c5f626f6e75735f726577617264180128543a3a42616c616e6365000204bc5570646174652072657761726420616d6f756e747320666f72206f7065726174696f6e616c206163636f756e74732e48666f7263655f7365745f70726f67726573730c01146f776e6572000130543a3a4163636f756e7449640001147061746368490501904f7065726174696f6e616c50726f677265737350617463683c543a3a42616c616e63653e00016c7570646174655f6f7065726174696f6e616c5f70726f6772657373200110626f6f6c000304e4466f7263652d757064617465206f7065726174696f6e616c2070726f6772657373206d61726b65727320666f7220616e206163636f756e742e807365745f656e637279707465645f7365727665725f666f725f73706f6e73656508011c73706f6e736565000130543a3a4163636f756e744964000140656e637279707465645f73657276657238011c5665633c75383e000404550153746f726520616e206f706171756520656e637279707465642073706f6e736f7220736572766572207061796c6f616420666f7220612073706f6e736f726564206f7065726174696f6e616c206163636f756e742e2061637469766174650005040901416374697661746520616e20656c696769626c65206f7065726174696f6e616c206163636f756e742066726f6d20616e79206d616e61676564206163636f756e742e34636c61696d5f72657761726473040118616d6f756e74180128543a3a42616c616e6365000604e4436c61696d2070656e64696e67206f7065726174696f6e616c207265776172647320746f20616e79206d616e61676564206163636f756e742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31050c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c657430526567697374726174696f6e040454000104085631040035050144526567697374726174696f6e56313c543e0000000035050c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c657438526567697374726174696f6e5631040454000028014c6f7065726174696f6e616c5f6163636f756e74000130543a3a4163636f756e744964000144656e6372797074696f6e5f7075626b6579390501584f7061717565456e6372797074696f6e5075626b65790001646f7065726174696f6e616c5f6163636f756e745f70726f6f663d0501544163636f756e744f776e65727368697050726f6f660001347661756c745f6163636f756e74000130543a3a4163636f756e7449640001586d696e696e675f66756e64696e675f6163636f756e74000130543a3a4163636f756e7449640001486d696e696e675f626f745f6163636f756e74000130543a3a4163636f756e74496400014c7661756c745f6163636f756e745f70726f6f663d0501544163636f756e744f776e65727368697050726f6f660001706d696e696e675f66756e64696e675f6163636f756e745f70726f6f663d0501544163636f756e744f776e65727368697050726f6f660001606d696e696e675f626f745f6163636f756e745f70726f6f663d0501544163636f756e744f776e65727368697050726f6f66000138726566657272616c5f70726f6f664105018c4f7074696f6e3c526566657272616c50726f6f663c543a3a4163636f756e7449643e3e000039050c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574584f7061717565456e6372797074696f6e5075626b6579000004000401205b75383b2033325d00003d050c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574544163636f756e744f776e65727368697050726f6f6600000401247369676e6174757265390401245369676e61747572650000410504184f7074696f6e0404540145050108104e6f6e6500000010536f6d6504004505000001000045050c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c657434526566657272616c50726f6f6604244163636f756e744964010000140134726566657272616c5f636f646504013c737232353531393a3a5075626c6963000148726566657272616c5f7369676e6174757265e1030148737232353531393a3a5369676e617475726500011c73706f6e736f720001244163636f756e744964000140657870697265735f61745f6672616d652c011c4672616d65496400014473706f6e736f725f7369676e6174757265390401245369676e6174757265000049050c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574604f7065726174696f6e616c50726f67726573735061746368041c42616c616e63650118001401506861735f756e69737761705f7472616e736665724d0501304f7074696f6e3c626f6f6c3e0001347661756c745f637265617465644d0501304f7074696f6e3c626f6f6c3e00017c6861735f74726561737572795f706f6f6c5f70617274696369706174696f6e4d0501304f7074696f6e3c626f6f6c3e0001586f627365727665645f626974636f696e5f746f74616c8501013c4f7074696f6e3c42616c616e63653e0001686f627365727665645f6d696e696e675f736561745f746f74616c5105012c4f7074696f6e3c7533323e00004d0504184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000510504184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000550504184f7074696f6e04045401880108104e6f6e6500000010536f6d65040088000001000059050c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d05000004086105180061050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016505045300000400690501185665633c543e00006505083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f78795479706501982c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f7479706598012450726f78795479706500011464656c617910012c426c6f636b4e756d626572000069050000026505006d05000004087105180071050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017505045300000400790501185665633c543e00007505083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d626572000079050000027505007d050c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81050c406172676f6e5f7072696d697469766573107469636b185469636b657200000801507469636b5f6475726174696f6e5f6d696c6c69732c010c7536340001746368616e6e656c5f686f6c645f65787069726174696f6e5f7469636b732c01105469636b000085050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004005d0201185665633c543e000089050c3070616c6c65745f7469636b731870616c6c6574144572726f72040454000100048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01300456019105045300000400a105013842547265654d61703c4b2c20563e000091050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540195050453000004009d0501185665633c543e00009505084870616c6c65745f6d696e696e675f736c6f74444d696e65724e6f6e636553636f72696e6704045400001001146e6f6e6365d9020110553235360001386c6173745f77696e5f626c6f636b510501644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00014c626c6f636b735f776f6e5f696e5f6672616d659c010c7531360001786672616d655f73746172745f626c6f636b735f776f6e5f737572706c75739905010c693136000099050000050a009d05000002950500a105042042547265654d617008044b01300456019105000400a505000000a505000002a90500a9050000040830910500ad0500000408301000b1050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0100045601ac045300000400b505013842547265654d61703c4b2c20563e0000b505042042547265654d617008044b0100045601ac000400b905000000b905000002bd0500bd050000040800ac00c1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c505045300000400c90501185665633c543e0000c5050c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c384d696e696e6742696453746174730000100128626964735f636f756e7410010c7533320001386269645f616d6f756e745f6d696e18011c42616c616e63650001386269645f616d6f756e745f6d617818011c42616c616e63650001386269645f616d6f756e745f73756d18011c42616c616e63650000c905000002c50500cd050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400d10501185665633c543e0000d1050000021800d5050c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c404d696e696e67536c6f74436f6e66696700000c01887469636b735f6265666f72655f6269645f656e645f666f725f7672665f636c6f73652c01105469636b00014c7469636b735f6265747765656e5f736c6f74732c01105469636b000178736c6f745f62696464696e675f73746172745f61667465725f7469636b732c01105469636b0000d9050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013004560110045300000400dd05013842547265654d61703c4b2c20563e0000dd05042042547265654d617008044b013004560110000400e105000000e105000002ad0500e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400e90501185665633c543e0000e9050000021000ed050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013004560130045300000400f105013842547265654d61703c4b2c20563e0000f105042042547265654d617008044b013004560130000400f505000000f505000002f90500f90500000408303000fd050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000001060c4870616c6c65745f6d696e696e675f736c6f741870616c6c6574144572726f7204045400012844536c6f744e6f7454616b696e67426964730000049842696464696e6720666f7220746865206e65787420636f686f72742068617320636c6f7365645c546f6f4d616e79426c6f636b52656769737472616e74730001048854686520636f686f727420726567697374726174696f6e206f766572666c6f7765646c496e73756666696369656e744f776e657273686970546f6b656e73000204f8546869732066756e64696e67206163636f756e7420646f6573206e6f7420686f6c6420746865206d696e696d756d206172676f6e6f7473206e656564656424426964546f6f4c6f77000304cc54686520676976656e206269642069736e2774206869676820656e6f75676820746f20626520696e2074686520636f686f72748443616e6e6f7452656769737465724f7665726c617070696e6753657373696f6e73000404c0416e206163636f756e742063616e206f6e6c792068617665206f6e652061637469766520726567697374726174696f6e6843616e6e6f744368616e676546756e64696e674163636f756e74000504f843616e6e6f742072652d726567697374657220616e206163636f756e742077697468206120646966666572656e742066756e64696e67206163636f756e7444496e73756666696369656e7446756e6473000604fc5468652066756e64696e67206163636f756e7420646f6573206e6f74206861766520656e6f7567682066756e647320746f20636f76657220746865206269644842696443616e6e6f7442655265647563656400070480546865206d696e696e67206269642063616e6e6f74206265207265647563656440496e76616c6964426964416d6f756e740008048842696473206d75737420626520696e20616c6c6f77656420696e6372656d656e747344556e7265636f76657261626c65486f6c640009049c546865206172676f6e6f7473206f6e20686f6c642063616e6e6f742062652072656c6561736564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e05060c406172676f6e5f7072696d6974697665731c626974636f696e245574786f56616c7565000014011c7574786f5f69643001185574786f49640001347363726970745f7075626b657909060164426974636f696e436f7369676e5363726970745075626b65790001207361746f736869732c01205361746f7368697300014c7375626d69747465645f61745f6865696768742c0134426974636f696e48656967687400017077617463685f666f725f7370656e745f756e74696c5f6865696768742c0134426974636f696e486569676874000009060c406172676f6e5f7072696d6974697665731c626974636f696e64426974636f696e436f7369676e5363726970745075626b6579000104145032575348040130777363726970745f6861736834011048323536000000000d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013004560105060453000004001106013842547265654d61703c4b2c20563e00001106042042547265654d617008044b0130045601050600040015060000001506000002190600190600000408300506001d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01cc045601300453000004002106013842547265654d61703c4b2c20563e00002106042042547265654d617008044b01cc0456013000040025060000002506000002290600290600000408cc30002d060c406172676f6e5f7072696d6974697665731c626974636f696e38426974636f696e4e6574776f726b0001101c426974636f696e0000001c546573746e6574000100185369676e65740002001c526567746573740003000031060c5070616c6c65745f626974636f696e5f7574786f731870616c6c6574144572726f7204045400013c344e6f5065726d697373696f6e73000004bc4f6e6c7920616e204f7261636c65204f70657261746f722063616e20706572666f726d207468697320616374696f6e5c4e6f426974636f696e436f6e6669726d6564426c6f636b00010405014e6f204f7261636c652d70726f766964656420626974636f696e20626c6f636b20686173206265656e2070726f766964656420746f20746865206e6574776f726b64496e73756666696369656e74426974636f696e416d6f756e740002046c496e73756666696369656e7420626974636f696e20616d6f756e74604e6f426974636f696e507269636573417661696c61626c65000304a04e6f207072696365732061726520617661696c61626c6520746f206d696e7420626974636f696e73505363726970745075626b6579436f6e666c696374000404a05363726970745075624b657920697320616c7265616479206265696e672077616974656420666f72345574786f4e6f744c6f636b6564000504544c6f636b6564205574786f204e6f7420466f756e6458526564656d7074696f6e73556e617661696c61626c650006048c526564656d7074696f6e73206e6f742063757272656e746c7920617661696c61626c6560496e76616c6964426974636f696e53796e6348656967687400070494496e76616c696420626974636f696e2073796e632068656967687420617474656d7074656464426974636f696e4865696768744e6f74436f6e6669726d656400080480426974636f696e20686569676874206e6f7420636f6e6669726d656420796574404d61785574786f73457863656564656400090480546f6f206d616e79205554584f7320617265206265696e67207761746368656450496e76616c6964426974636f696e536372697074000a04644c6f636b696e672073637269707420686173206572726f72733c4475706c69636174655574786f4964000b04844475706c696361746564205574786f49642e20416c726561647920696e20757365644d617843616e6469646174655574786f734578636565646564000c04dc546f6f206d616e792063616e646964617465205554584f7320617265206265696e672073746f72656420666f722074686973206c6f636b405574786f4e6f7443616e646964617465000d04d0546865205554584f207265666572656e636520646f6573206e6f74206d617020746f20612063616e64696461746520656e747279444c6f636b416c726561647946756e646564000e04b854686973204c6f636b20616c72656164792068617320616e2061747461636865642066756e64696e67205554584f048054686520604572726f726020656e756d206f6620746869732070616c6c65742e35060c406172676f6e5f7072696d697469766573147661756c74145661756c7408244163636f756e74496401001c42616c616e636501180044014c6f70657261746f725f6163636f756e745f69640001244163636f756e744964000174626974636f696e5f6c6f636b5f64656c65676174655f6163636f756e74bc01444f7074696f6e3c4163636f756e7449643e0001106e616d65750301444f7074696f6e3c5661756c744e616d653e0001546c6173745f6e616d655f6368616e67655f7469636b8d0101304f7074696f6e3c5469636b3e00013873656375726974697a6174696f6ec0011c42616c616e636500015473656375726974697a6174696f6e5f746172676574c0011c42616c616e636500015473656375726974697a6174696f6e5f6c6f636b6564c0011c42616c616e636500018473656375726974697a6174696f6e5f70656e64696e675f61637469766174696f6ec0011c42616c616e636500013c6c6f636b65645f7361746f736869732c01205361746f7368697300015073656375726974697a65645f7361746f736869732c01205361746f7368697300017c73656375726974697a6174696f6e5f72656c656173655f7363686564756c65390601d8426f756e64656442547265654d61703c426974636f696e4865696768742c2042616c616e63652c20436f6e73745533323c3336363e3e00015073656375726974697a6174696f6e5f726174696f6903012446697865645531323800012469735f636c6f736564200110626f6f6c0001147465726d736503014c5661756c745465726d733c42616c616e63653e00013470656e64696e675f7465726d734906018c4f7074696f6e3c285469636b2c205661756c745465726d733c42616c616e63653e293e00012c6f70656e65645f7469636b2c01105469636b0001806f7065726174696f6e616c5f6d696e696d756d5f72656c656173655f7469636b8d0101304f7074696f6e3c5469636b3e000039060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0130045601180453000004003d06013842547265654d61703c4b2c20563e00003d06042042547265654d617008044b01300456011800040041060000004106000002450600450600000408301800490604184f7074696f6e040454014d060108104e6f6e6500000010536f6d6504004d0600000100004d0600000408306503005106000004085506100055060c406172676f6e5f7072696d6974697665731c626974636f696e2c426974636f696e5850756200001801287075626c69635f6b65798903015c436f6d70726573736564426974636f696e5075626b65790001146465707468590601087538000148706172656e745f66696e6765727072696e7448013c5850756246696e6765727072696e740001306368696c645f6e756d626572d4013c585075624368696c644e756d626572000128636861696e5f636f64650401205b75383b2033325d00011c6e6574776f726b5d06012c4e6574776f726b4b696e640000590600000608005d060c406172676f6e5f7072696d6974697665731c626974636f696e2c4e6574776f726b4b696e64000108104d61696e00000010546573740001000061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400e90501185665633c543e000065060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401300453000004006906012c42547265655365743c543e000069060420425472656553657404045401300004006d060000006d06000002300071060000040810000075060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401100453000004007906012c42547265655365743c543e00007906042042547265655365740404540110000400e9050000007d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018106045300000400850601185665633c543e000081060c3470616c6c65745f7661756c74731870616c6c6574445661756c744672616d65526576656e756504045400004001206672616d655f69642c011c4672616d654964000160626974636f696e5f6c6f636b5f6665655f726576656e7565c00128543a3a42616c616e6365000188626974636f696e5f6c6f636b5f6665655f636f75706f6e5f76616c75655f75736564c00128543a3a42616c616e6365000154626974636f696e5f6c6f636b735f63726561746564d4010c753332000190626974636f696e5f6c6f636b735f6e65775f6c69717569646974795f70726f6d69736564c00128543a3a42616c616e6365000180626974636f696e5f6c6f636b735f72656c65617365645f6c6971756964697479c00128543a3a42616c616e6365000170626974636f696e5f6c6f636b735f61646465645f7361746f736869732c01205361746f7368697300017c626974636f696e5f6c6f636b735f72656c65617365645f7361746f736869732c01205361746f7368697300016073656375726974697a6174696f6e5f616374697661746564c00128543a3a42616c616e636500016473656375726974697a6174696f6e5f72656c6f636b61626c65c00128543a3a42616c616e636500013873656375726974697a6174696f6ec00128543a3a42616c616e636500015c74726561737572795f7661756c745f6561726e696e6773c00128543a3a42616c616e636500015c74726561737572795f746f74616c5f6561726e696e6773c00128543a3a42616c616e636500015874726561737572795f7661756c745f6361706974616cc00128543a3a42616c616e636500016474726561737572795f65787465726e616c5f6361706974616cc00128543a3a42616c616e636500014c756e636f6c6c65637465645f726576656e7565c00128543a3a42616c616e63650000850600000281060089060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d06045300000400910601185665633c543e00008d060c3470616c6c65745f7661756c74731870616c6c657448526563656e74436170616369747944726f70081c42616c616e636501182c426c6f636b4e756d626572011000100130626c6f636b5f6e756d626572d4012c426c6f636b4e756d626572000154617661696c61626c655f6265666f72655f64726f70c0011c42616c616e6365000150617661696c61626c655f61667465725f64726f70c0011c42616c616e63650001506e6f5f6665655f6661696c757265735f75736564d4010c753332000091060000028d060095060c3470616c6c65745f7661756c74731870616c6c6574144572726f72040454000178384e6f4d6f72655661756c744964730000049c496e7465726e616c6c792c20746865207661756c742069647320617265206d61786564206f757444496e73756666696369656e7446756e6473000104ec546865207573657220646f65736e2774206861766520656e6f7567682066756e647320746f20636f6d706c6574652074686973207265717565737458496e73756666696369656e745661756c7446756e647300020429015468657265206172656e277420656e6f7567682066756e647320696e20746865207661756c7420746f20636f766572207468652072657175657374656420626974636f696e206c6f636b684163636f756e7442656c6f774d696e696d756d42616c616e63650003045d015468652070726f706f736564207472616e73616374696f6e20776f756c642074616b6520746865206163636f756e742062656c6f7720746865206d696e696d756d20286578697374656e7469616c292062616c616e63652c5661756c74436c6f7365640004045054686973207661756c7420697320636c6f73656448496e76616c69645661756c74416d6f756e74000504dc46756e64696e6720776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e63652074797065845661756c74526564756374696f6e42656c6f7753656375726974697a6174696f6e00060439015468697320726564756374696f6e20696e207661756c742073656375726974697a6174696f6e20676f65732062656c6f772074686520616d6f756e7420616c726561647920636f6d6d697474656454496e76616c696453656375726974697a6174696f6e0007084101416e20696e76616c69642073656375726974697a6174696f6e2070657263656e74207761732070726f766964656420666f7220746865207661756c742e204e4f54453a2069742063616e6e6f742062655c64656372656173656420286f72206e6567617469766529585265757365645661756c74426974636f696e58707562000804bc546865207661756c7420626974636f696e20787075626b65792068617320616c7265616479206265656e207573656450496e76616c6964426974636f696e536372697074000904c854686520626974636f696e2073637269707420746f206c6f636b207468697320626974636f696e20686173206572726f727338496e76616c6964587075626b6579000a0460556e61626c6520746f206465636f646520787075626b65794057726f6e67587075624e6574776f726b000b044857726f6e672058707562204e6574776f726b34556e73616665587075626b6579000c040901546865205850756220697320756e7361666520746f2075736520696e2061207075626c696320626c6f636b636861696e2028616b612c20756e68617264656e65642970556e61626c65546f4465726976655661756c74587075624368696c64000d0478556e61626c6520746f2064657269766520787075626b6579206368696c645c426974636f696e436f6e76657273696f6e4661696c6564000e04b8426974636f696e20636f6e76657273696f6e20746f20636f6d70726573736564207075626b6579206661696c6564344e6f5065726d697373696f6e73000f0060486f6c64556e65787065637465646c794d6f64696669656400100044556e7265636f76657261626c65486f6c64001100345661756c744e6f74466f756e64001200445661756c744e6f745965744163746976650013046c546865207661756c74206973206e6f742079657420616374697665784e6f5661756c74426974636f696e5075626b657973417661696c61626c65001404884e6f205661756c74207075626c6963206b6579732061726520617661696c61626c65645465726d734d6f64696669636174696f6e4f766572666c6f77001504ec546865207465726d73206d6f64696669636174696f6e206c69737420636f756c64206e6f742068616e646c6520616e79206d6f7265206974656d736c5465726d734368616e6765416c72656164795363686564756c6564001604a45465726d732061726520616c7265616479207363686564756c656420746f206265206368616e67656434496e7465726e616c4572726f7200170494416e20696e7465726e616c2070726f63657373696e67206572726f72206f6363757272656488556e61626c65546f47656e65726174655661756c74426974636f696e5075626b6579001804b4556e61626c6520746f2067656e65726174652061206e6577207661756c7420626974636f696e207075626b65797446756e64696e674368616e6765416c72656164795363686564756c656400190494412066756e64696e67206368616e676520697320616c7265616479207363686564756c656440496e76616c69645661756c744e616d65001a0831015661756c74206e616d6573206d757374207374617274207769746820616e20757070657263617365204153434949206c657474657220616e64206f746865727769736520626520415343494934616c7068616e756d657269632e6c50656e64696e67436f7369676e734265666f7265436f6c6c656374001b04010141207661756c74206d75737420636c656172206f757420616c6c2070656e64696e6720636f7369676e73206265666f72652069742063616e20636f6c6c6563749c50656e64696e674f727068616e65645574786f436f7369676e734265666f7265436f6c6c656374001c041d0141207661756c74206d75737420636c656172206f757420616c6c2070656e64696e67206f727068616e20636f7369676e73206265666f72652069742063616e20636f6c6c656374584163636f756e74416c72656164794861735661756c74001d04d4416e206163636f756e74206d6179206f6e6c79206265206173736f636961746564207769746820612073696e676c65207661756c74048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574344c6f636b6564426974636f696e04045400005001207661756c745f6964d4011c5661756c7449640001486c69717569646974795f70726f6d69736564c00128543a3a42616c616e63650001486c6f636b65645f6d61726b65745f72617465c00128543a3a42616c616e63650001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400015073656375726974697a6174696f6e5f726174696fe0012446697865645531323800013473656375726974795f66656573c00128543a3a42616c616e6365000140636f75706f6e5f706169645f66656573c00128543a3a42616c616e63650001207361746f736869732c01205361746f736869730001347574786f5f7361746f736869738d0101404f7074696f6e3c5361746f736869733e0001307661756c745f7075626b65798903015c436f6d70726573736564426974636f696e5075626b65790001487661756c745f636c61696d5f7075626b65798903015c436f6d70726573736564426974636f696e5075626b65790001487661756c745f787075625f736f75726365739d0601cc285850756246696e6765727072696e742c20585075624368696c644e756d6265722c20585075624368696c644e756d626572290001306f776e65725f7075626b65798903015c436f6d70726573736564426974636f696e5075626b65790001487661756c745f636c61696d5f6865696768742c0134426974636f696e4865696768740001446f70656e5f636c61696d5f6865696768742c0134426974636f696e486569676874000144637265617465645f61745f6865696768742c0134426974636f696e4865696768740001487574786f5f7363726970745f7075626b657909060164426974636f696e436f7369676e5363726970745075626b657900012469735f66756e646564200110626f6f6c00015066756e645f686f6c645f657874656e73696f6e73390601e4426f756e64656442547265654d61703c426974636f696e4865696768742c20543a3a42616c616e63652c20436f6e73745533323c3336363e3e000158637265617465645f61745f6172676f6e5f626c6f636bd40144426c6f636b4e756d626572466f723c543e00009d060000040c48101000a10600000408103000a5060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574484c6f636b52656c6561736552657175657374041c42616c616e636501180018011c7574786f5f69642c01185574786f49640001207661756c745f6964d4011c5661756c74496400014c626974636f696e5f6e6574776f726b5f6665652c01205361746f73686973000140636f7369676e5f6475655f6672616d652c011c4672616d654964000140746f5f7363726970745f7075626b65799903014c426974636f696e5363726970745075626b6579000140726564656d7074696f6e5f7072696365c0011c42616c616e63650000a9060000040800cc00ad060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574304f727068616e65645574786f042c426c6f636b4e756d62657201100014011c7574786f5f69642c01185574786f49640001207661756c745f6964d4011c5661756c7449640001207361746f736869732c01205361746f7368697300016c7265636f726465645f6172676f6e5f626c6f636b5f6e756d626572d4012c426c6f636b4e756d626572000138636f7369676e5f72657175657374b10601b84f7074696f6e3c4f727068616e65645574786f436f7369676e526571756573743c426c6f636b4e756d6265723e3e0000b10604184f7074696f6e04045401b5060108104e6f6e6500000010536f6d650400b5060000010000b5060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574644f727068616e65645574786f436f7369676e52657175657374042c426c6f636b4e756d6265720110000c014c626974636f696e5f6e6574776f726b5f6665653001205361746f73686973000140746f5f7363726970745f7075626b65799903014c426974636f696e5363726970745075626b6579000174637265617465645f61745f6172676f6e5f626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720000b9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401300453000004006906012c42547265655365743c543e0000bd060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401300453000004006906012c42547265655365743c543e0000c1060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401a906045300000400c506012c42547265655365743c543e0000c5060420425472656553657404045401a906000400c906000000c906000002a90600cd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400410601185665633c543e0000d1060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574144572726f7204045400018c44496e73756666696369656e7446756e647300000058496e73756666696369656e745661756c7446756e6473000100844163636f756e74576f756c64476f42656c6f774d696e696d756d42616c616e63650002045d015468652070726f706f736564207472616e73616374696f6e20776f756c642074616b6520746865206163636f756e742062656c6f7720746865206d696e696d756d20286578697374656e7469616c292062616c616e63652c5661756c74436c6f7365640003045054686973207661756c7420697320636c6f73656448496e76616c69645661756c74416d6f756e74000404dc46756e64696e6720776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654c526564656d7074696f6e4e6f744c6f636b6564000504b85468697320626974636f696e20726564656d7074696f6e20686173206e6f74206265656e206c6f636b656420696e98426974636f696e52656c65617365496e6974696174696f6e446561646c696e65506173736564000604c454686520626974636f696e20686173207061737365642074686520646561646c696e6520746f2072656c6561736520697444426974636f696e466565546f6f48696768000704b05468652066656520666f72207468697320626974636f696e2072656c6561736520697320746f6f20686967684c426974636f696e5574786f4e6f74466f756e64000804ec54686520426974636f696e20556e7370656374205472616e73616374696f6e204f757470757420285554584f2920776173206e6f7420666f756e6488426974636f696e556e61626c65546f42654465636f646564466f7252656c65617365000904e85468697320626974636f696e20636f7369676e2073637269707420636f756c646e2774206265206465636f64656420666f722072656c6561736584426974636f696e5369676e6174757265556e61626c65546f42654465636f646564000a04d85468697320626974636f696e207369676e617475726520636f756c646e2774206265206465636f64656420666f722072656c6561736578426974636f696e5075626b6579556e61626c65546f42654465636f646564000b04cc5468697320626974636f696e207075626b657920636f756c646e2774206265206465636f64656420666f722072656c6561736564426974636f696e496e76616c6964436f7369676e6174757265000c04e454686520636f7369676e207369676e6174757265206973206e6f742076616c696420666f722074686520626974636f696e2072656c6561736568496e73756666696369656e745361746f736869734c6f636b6564000d04a8546865206d696e696d756d206e756d626572206f66207361746f7368697320776173206e6f74206d6574604e6f426974636f696e507269636573417661696c61626c65000e0435015468652070726963652070726f766964657220686173206e6f20626974636f696e2070726963657320617661696c61626c652e205468697320697320612074656d706f72617279206572726f7250496e76616c6964426974636f696e536372697074000f04c854686520626974636f696e2073637269707420746f206c6f636b207468697320626974636f696e20686173206572726f7273344e6f5065726d697373696f6e73001004e4546865207573657220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d207468697320616374696f6e60486f6c64556e65787065637465646c794d6f646966696564001104090154686520657870656374656420616d6f756e74206f662066756e647320746f2072657475726e2066726f6d20686f6c6420776173206e6f7420617661696c61626c6544556e7265636f76657261626c65486f6c64001204a054686520686f6c64206f6e2066756e647320636f756c64206e6f74206265207265636f7665726564345661756c744e6f74466f756e640013045c546865207661756c7420776173206e6f7420666f756e644447656e657269635661756c744572726f720400d50601285661756c744572726f7200140494416e206572726f72206f6363757272656420696e20746865207661756c74206d6f64756c65304c6f636b4e6f74466f756e640015049454686520426974636f696e204c6f636b207265636f726420776173206e6f7420666f756e64784e6f5661756c74426974636f696e5075626b657973417661696c61626c65001604884e6f205661756c74207075626c6963206b6579732061726520617661696c61626c6588556e61626c65546f47656e65726174655661756c74426974636f696e5075626b6579001704a4556e61626c6520746f2067656e65726174652061206e6577207661756c74207075626c6963206b6579445661756c744e6f745965744163746976650018047054686973207661756c74206973206e6f7420796574206163746976656445787069726174696f6e4174426c6f636b4f766572666c6f77001904c0416e206f766572666c6f77206f63637572726564207265636f7264696e672061206c6f636b2065787069726174696f6e544e6f52617463686574696e67417661696c61626c65001a04484e6f7468696e6720746f2072617463686574584c6f636b496e50726f636573734f6652656c65617365001b04c041206c6f636b20696e2070726f63657373206f662072656c656173652063616e6e6f7420626520726174636865746564484c6f636b50656e64696e6746756e64696e67001c04c8546865206c6f636b2066756e64696e6720686173206e6f74206265656e20636f6e6669726d6564206f6e20626974636f696e344f766572666c6f774572726f72001d042101416e206f766572666c6f77206f7220756e646572666c6f77206f63637572726564207768696c652063616c63756c6174696e672074686520726564656d7074696f6e2070726963657c496e656c696769626c654d6963726f676f6e52617465526571756573746564001e04c4416e20696e656c696769626c65206d6963726f676f6e2072617465207065722062746320776173207265717565737465646c4f727068616e65645574786f46756e64696e67436f6e666c696374001f04050143616e6e6f742066756e64207769746820616e206f727068616e6564207574786f206166746572206c6f636b2066756e64696e6720697320636f6e6669726d6564704f727068616e65645574786f52656c65617365526571756573746564002004ec43616e6e6f74206c6f636b20616e206f727068616e6564207574786f207769746820612070656e64696e672072656c6561736520726571756573746c46756e64696e675574786f43616e6e6f74426552656c6561736564002104dc43616e6e6f74207265717565737420616e206f727068616e65642072656c6561736520666f72207468652066756e64696e67205554584f984d61784f727068616e65645574786f52656c6561736552657175657374734578636565646564002204c8546f6f206d616e79206f727068616e6564207574786f2072656c6561736520726571756573747320666f722061206c6f636b048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed5060c406172676f6e5f7072696d697469766573147661756c74285661756c744572726f720001302c5661756c74436c6f736564000000684163636f756e74576f756c64426542656c6f774d696e696d756d00010044496e73756666696369656e7446756e647300020058496e73756666696369656e745661756c7446756e647300030060486f6c64556e65787065637465646c794d6f64696669656400040044556e7265636f76657261626c65486f6c64000500345661756c744e6f74466f756e64000600784e6f5661756c74426974636f696e5075626b657973417661696c61626c6500070088556e61626c65546f47656e65726174655661756c74426974636f696e5075626b657900080050496e76616c6964426974636f696e53637269707400090034496e7465726e616c4572726f72000a00445661756c744e6f74596574416374697665000b0000d90600000408f41000dd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400190301185665633c543e0000e1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011101045300000400e50601185665633c543e0000e506000002110100e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed0600000408300400f106000002ed0600f5060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601f4045300000400f906013842547265654d61703c4b2c20563e0000f906042042547265654d617008044b0110045601f4000400fd06000000fd0600000201070001070000040810f40005070c3c70616c6c65745f6e6f7461726965731870616c6c6574144572726f720404540001244050726f706f73616c4e6f74466f756e64000004985468652070726f706f73616c20746f20616374697661746520776173206e6f7420666f756e644c4d61784e6f74617269657345786365656465640001048c4d6178696d756d206e756d626572206f66206e6f746172696573206578636565646564704d617850726f706f73616c73506572426c6f636b4578636565646564000204b84d6178696d756d206e756d626572206f662070726f706f73616c732070657220626c6f636b206578636565646564444e6f74416e4163746976654e6f74617279000304f054686973206e6f74617279206973206e6f74206163746976652c20736f2074686973206368616e67652063616e6e6f74206265206d6164652079657454496e76616c69644e6f746172794f70657261746f72000404a8496e76616c6964206e6f74617279206f70657261746f7220666f722074686973206f7065726174696f6e3c4e6f4d6f72654e6f74617279496473000504f4416e20696e7465726e616c206572726f7220686173206f636375727265642e20546865206e6f746172792069647320617265206578686175737465642e504566666563746976655469636b546f6f536f6f6e0006049c5468652070726f706f73656420656666656374697665207469636b20697320746f6f20736f6f6e2c546f6f4d616e794b65797300070458546f6f206d616e7920696e7465726e616c206b65797334496e76616c69644e6f7461727900080454546865206e6f7461727920697320696e76616c6964048054686520604572726f726020656e756d206f6620746869732070616c6c65742e09070000040810c903000d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011107045300000400190701185665633c543e00001107000004081507200015070c406172676f6e5f7072696d697469766573186e6f74617279604e6f746172794e6f7465626f6f6b4b657944657461696c73000014013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d6265720001107469636b2c01105469636b000140626c6f636b5f766f7465735f726f6f743401104832353600012c7365637265745f686173683401484e6f7465626f6f6b53656372657448617368000134706172656e745f736563726574cd0201584f7074696f6e3c4e6f7465626f6f6b5365637265743e000019070000021107001d070000040c103019010021070c3c70616c6c65745f6e6f7465626f6f6b1870616c6c6574144572726f7204045400013c5c4475706c69636174654e6f7465626f6f6b4e756d626572000004a054686973206e6f7465626f6f6b2068617320616c7265616479206265656e207375626d6974746564544d697373696e674e6f7465626f6f6b4e756d6265720001047c4e6f7465626f6f6b73207265636569766564206f7574206f66206f726465725c4e6f7465626f6f6b5469636b416c726561647955736564000204b041206e6f7465626f6f6b2077617320616c72656164792070726f76696465642061742074686973207469636b60496e76616c69644e6f7465626f6f6b5369676e6174757265000304a0546865207369676e6174757265206f6620746865206e6f7465626f6f6b20697320696e76616c696454496e76616c696453656372657450726f7669646564000404f454686520736563726574206f72207365637265742068617368206f662074686520706172656e74206e6f7465626f6f6b20646f206e6f74206d6174636858436f756c644e6f744465636f64654e6f7465626f6f6b000504c0436f756c64206e6f74206465636f646520746865207363616c65206279746573206f6620746865206e6f7465626f6f6b5c4475706c69636174654e6f7465626f6f6b446967657374000604bc546865206e6f7465626f6f6b206469676573742077617320696e636c75646564206d6f7265207468616e206f6e6365544d697373696e674e6f7465626f6f6b44696765737400070490546865206e6f7465626f6f6b2064696765737420776173206e6f7420696e636c7564656454496e76616c69644e6f7465626f6f6b446967657374000804e0546865206e6f7465626f6f6b2064696765737420646964206e6f74206d617463682074686520696e636c75646564206e6f7465626f6f6b73844d756c7469706c654e6f7465626f6f6b496e686572656e747350726f76696465640009046c4d756c7469706c6520696e686572656e74732070726f766964656434496e7465726e616c4572726f72000a04a0556e61626c6520746f20747261636b20746865206e6f7465626f6f6b206368616e6765206c697374804e6f7465626f6f6b5375626d6974746564466f724c6f636b65644e6f74617279000b04350141206e6f7465626f6f6b20776173207375626d697474656420666f722061206e6f746172792074686174206661696c65642061756469742c207768696368206973206e6f7420616c6c6f77656460496e76616c6964526570726f636573734e6f7465626f6f6b000c0468496e76616c696420726570726f63657373206e6f7465626f6f6b54496e76616c69644e6f746172794f70657261746f72000d045c496e76616c6964206e6f74617279206f70657261746f7274496e76616c69644e6f7465626f6f6b5375626d697373696f6e5469636b000e0480496e76616c6964206e6f7465626f6f6b207375626d697373696f6e207469636b048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2507085470616c6c65745f636861696e5f7472616e73666572445175657565645472616e736665724f757408244163636f756e74496401001c42616c616e63650118001001286163636f756e745f69640001244163636f756e744964000118616d6f756e7418011c42616c616e636500013c65787069726174696f6e5f7469636b3001105469636b0001246e6f746172795f69641001204e6f746172794964000029070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400e90501185665633c543e00002d0708346672616d655f737570706f72742050616c6c6574496400000400b502011c5b75383b20385d000031070c5470616c6c65745f636861696e5f7472616e736665721870616c6c6574144572726f72040454000120644d6178426c6f636b5472616e7366657273457863656564656400000044496e73756666696369656e7446756e6473000104b0496e73756666696369656e742062616c616e636520746f206372656174652074686973207472616e7366657268496e73756666696369656e744e6f746172697a656446756e6473000204d0496e73756666696369656e742062616c616e636520746f2066756c66696c6c2061206d61696e636861696e207472616e7366657294496e76616c69644f724475706c6963617465644c6f63616c636861696e5472616e73666572000304d8546865207472616e736665722077617320616c7265616479207375626d697474656420696e20612070726576696f757320626c6f636ba44e6f7465626f6f6b496e636c75646573457870697265644c6f63616c636861696e5472616e73666572000404410141207472616e7366657220776173207375626d697474656420696e20612070726576696f757320626c6f636b20627574207468652065787069726174696f6e20626c6f636b206861732070617373656470496e76616c69644e6f7461727955736564466f725472616e736665720005047c546865206e6f74617279206964206973206e6f7420726567697374657265645c4e6f746172794c6f636b6564466f725472616e73666572000604ec546865206e6f746172792069732063757272656e746c79206c6f636b656420616e642063616e6e6f742070726f63657373207472616e7366657273544e6f417661696c61626c655472616e7366657249640007049c4e6f207472616e7366657220494473206172652063757272656e746c7920617661696c61626c65048054686520604572726f726020656e756d206f6620746869732070616c6c65742e35070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401300453000004006d0601185665633c543e000039070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400d10501185665633c543e00003d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014107045300000400450701185665633c543e000041070c406172676f6e5f7072696d697469766573186e6f746172797c4e6f746172794e6f7465626f6f6b566f746544696765737444657461696c7300001401246e6f746172795f6964d401204e6f74617279496400013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d6265720001107469636b2c01105469636b000144626c6f636b5f766f7465735f636f756e74d4010c753332000148626c6f636b5f766f74696e675f706f776572c00140426c6f636b566f74696e67506f7765720000450700000241070049070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d07045300000400510701185665633c543e00004d070000040c3010180051070000024d070055070c5870616c6c65745f626c6f636b5f7365616c5f737065631870616c6c6574144572726f72040454000104684d61784e6f7465626f6f6b7341745469636b45786365656465640000041501546865206d6178696d756d206e756d626572206f66206e6f7465626f6f6b73206174207468652063757272656e74207469636b20686173206265656e206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e59070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004005d0201185665633c543e00005d070c3870616c6c65745f646f6d61696e731870616c6c6574144572726f720404540001144c446f6d61696e4e6f74526567697374657265640000047454686520646f6d61696e206973206e6f7420726567697374657265642e384e6f74446f6d61696e4f776e6572000104a85468652073656e646572206973206e6f7420746865206f776e6572206f662074686520646f6d61696e2e6c4661696c6564546f416464546f41646472657373486973746f7279000204944661696c656420746f2061646420746f20746865206164647265737320686973746f72792e644661696c6564546f4164644578706972696e67446f6d61696e000304a44661696c656420746f2061646420746f20746865206578706972696e6720646f6d61696e206c697374504163636f756e744465636f64696e674572726f72000404884572726f72206465636f64696e67206163636f756e742066726f6d206e6f74617279048054686520604572726f726020656e756d206f6620746869732070616c6c65742e61070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016507045300000400690701185665633c543e00006507084870616c6c65745f70726963655f696e646578504370694d6561737572656d656e744275636b657400000c01287469636b5f72616e6765f9050130285469636b2c205469636b29000124746f74616c5f637069910101204172676f6e4350490001486d6561737572656d656e74735f636f756e7410010c753332000069070000026507006d070c4870616c6c65745f70726963655f696e6465781870616c6c6574144572726f72040454000110544e6f74417574686f72697a65644f70657261746f72000004904e6f7420617574686f72697a656420617320616e206f7261636c65206f70657261746f72304d697373696e6756616c7565000104344d697373696e672076616c756530507269636573546f6f4f6c6400020480546865207375626d6974746564207072696365732061726520746f6f206f6c64744d617850726963654368616e67655065725469636b4578636565646564000304884368616e676520696e206172676f6e20707269636520697320746f6f206c61726765048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7107083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300007507083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965737907016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564510501244f7074696f6e3c4e3e000079070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454016d01045300000400690101185665633c543e00007d070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81070c406172676f6e5f7072696d6974697665732470726f7669646572733c426c6f636b5365616c6572496e666f08244163636f756e74496401002c417574686f72697479496401b8000c015c626c6f636b5f617574686f725f6163636f756e745f69640001244163636f756e744964000168626c6f636b5f766f74655f726577617264735f6163636f756e74bc01444f7074696f6e3c4163636f756e7449643e000150626c6f636b5f7365616c5f617574686f726974798101014c4f7074696f6e3c417574686f7269747949643e000085070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad05045300000400e10501185665633c543e000089070c4470616c6c65745f626c6f636b5f7365616c1870616c6c6574144572726f720404540001545c496e76616c6964566f74655365616c537472656e677468000004e454686520737472656e677468206f662074686520676976656e207365616c20646964206e6f74206d617463682063616c63756c6174696f6e7340496e76616c69645375626d697474657200010494566f7465206e6f74207375626d697474656420627920746865207269676874206d696e657264556e61626c65546f4465636f6465566f74654163636f756e740002047c436f756c64206e6f74206465636f64652074686520766f74652062797465735c556e72656769737465726564426c6f636b417574686f72000304a854686520626c6f636b20617574686f72206973206e6f7420612072656769737465726564206d696e657254496e76616c6964426c6f636b566f746550726f6f66000404f4546865206d65726b6c652070726f6f66206f6620766f746520696e636c7573696f6e20696e20746865206e6f7465626f6f6b20697320696e76616c6964604e6f4772616e64706172656e74566f74654d696e696d756d000504ac4e6f20766f7465206d696e696d756d20666f756e64206174206772616e64706172656e7420686569676874684475706c6963617465426c6f636b5365616c50726f766964656400060478546f6f206d616e7920626c6f636b207365616c73207375626d69747465645c496e73756666696369656e74566f74696e67506f776572000704590154686520626c6f636b20766f746520646964206e6f7420726561636820746865206d696e696d756d20766f74696e6720706f7765722061742074696d65206f6620746865206772616e64706172656e7420626c6f636b5c506172656e74566f74696e674b65794e6f74466f756e64000804cc4e6f207265676973746572656420766f74696e67206b657920666f756e6420666f722074686520706172656e7420626c6f636b68496e76616c6964566f74654772616e64706172656e7448617368000904a054686520626c6f636b20766f746520776173206e6f7420666f7220612076616c696420626c6f636b58496e656c696769626c654e6f7465626f6f6b55736564000a04cc546865206e6f7465626f6f6b20666f72207468697320766f746520776173206e6f7420656c696769626c6520746f20766f7465504e6f456c696769626c65566f74696e67526f6f74000b043d01546865206c6f6f6b757020746f20766572696679206120766f746527732061757468656e746963697479206973206e6f7420617661696c61626c6520666f722074686520676976656e20626c6f636b48436f756c644e6f744465636f6465566f7465000c04b4436f756c64206e6f74206465636f646520746865207363616c65206279746573206f662074686520766f746573684d61784e6f7465626f6f6b7341745469636b4578636565646564000d043901546f6f206d616e79206e6f7465626f6f6b732077657265207375626d697474656420666f72207468652063757272656e74207469636b2e2053686f756c64206e6f7420626520706f737369626c65684e6f436c6f736573744d696e6572466f756e64466f72566f7465000e047c4e6f20636c6f73657374206d696e657220666f756e6420666f7220766f746564426c6f636b566f7465496e76616c69645369676e6174757265000f047854686520766f7465207369676e61747572652077617320696e76616c696458496e76616c6964466f726b506f776572506172656e7400100464496e76616c696420666f726b20706f77657220706172656e7450426c6f636b5365616c4465636f64654572726f72001104d04120626c6f636b207365616c20617574686f7269747920636f756c64206e6f742062652070726f7065726c79206465636f6465645c496e76616c6964436f6d70757465426c6f636b5469636b001204dc436f6d7075746520626c6f636b732063616e7420626520616464656420696e207468652073616d65207469636b206173206120766f746558496e76616c69644d696e65724e6f6e636553636f7265001304b0546865206e6f6e63652073636f72652064697374616e636520737570706c69656420697320696e76616c6964604475706c6963617465566f7465426c6f636b41745469636b001404504475706c696361746520766f746520626c6f636b048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017901045300000400750101185665633c543e000091070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400410601185665633c543e000095070000040c1830180099070c5070616c6c65745f626c6f636b5f726577617264731870616c6c6574144572726f72040454000100048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a107045300000400a50701185665633c543e0000a1070000040c30001800a507000002a10700a9070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0130045601180453000004003d06013842547265654d61703c4b2c20563e0000ad070000040810b10700b1070c2c70616c6c65745f6d696e741870616c6c6574284d696e74416374696f6e0404420118000c01306172676f6e5f6275726e6564180104420001306172676f6e5f6d696e74656418010442000138626974636f696e5f6d696e746564180104420000b5070c2c70616c6c65745f6d696e741870616c6c6574144572726f720404540001044c546f6f4d616e7950656e64696e674d696e7473000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb9070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401bd07045300000400c50701185665633c543e0000bd070c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964b50201384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73c107011c526561736f6e730000c1070c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000c507000002bd0700c9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401cd07045300000400d10701185665633c543e0000cd070c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e74696669657201b5021c42616c616e63650118000801086964b5020144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000d107000002cd0700d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d907045300000400dd0701185665633c543e0000d90714346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401a1011c42616c616e63650118000801086964a10101084964000118616d6f756e7418011c42616c616e63650000dd07000002d90700e1070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e507045300000400f10701185665633c543e0000e50714346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401e9071c42616c616e63650118000801086964e90701084964000118616d6f756e7418011c42616c616e63650000e90708346172676f6e5f72756e74696d654c52756e74696d65467265657a65526561736f6e00010430426c6f636b526577617264730400ed07018870616c6c65745f626c6f636b5f726577617264733a3a467265657a65526561736f6e00130000ed070c5070616c6c65745f626c6f636b5f726577617264731870616c6c657430467265657a65526561736f6e000104404d617475726174696f6e506572696f6400000000f107000002e50700f5070c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9070c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd070c3c70616c6c65745f74785f70617573651870616c6c6574144572726f720404540001102049735061757365640000044c5468652063616c6c206973207061757365642e284973556e706175736564000104545468652063616c6c20697320756e7061757365642e28556e7061757361626c65000204b45468652063616c6c2069732077686974656c697374656420616e642063616e6e6f74206265207061757365642e204e6f74466f756e64000300048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0108086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000050810346672616d655f737570706f7274187472616974731c73746f72616765184e6f44726f7004045401090800040009080104540000090818346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6524696d62616c616e636524496d62616c616e63650c04420118184f6e44726f7000384f70706f736974654f6e44726f700000040118616d6f756e741801044200000d080c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e11080c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e15080c2c70616c6c65745f69736d701870616c6c6574144572726f7204045400011838496e76616c69644d65737361676500000450496e76616c69642049534d50206d6573736167653c4d6573736167654e6f74466f756e640001047c526571756573746564206d65737361676520776173206e6f7420666f756e6474436f6e73656e737573436c69656e744372656174696f6e4661696c6564000204e4456e636f756e746572656420616e206572726f72207768696c65206372656174696e672074686520636f6e73656e73757320636c69656e742e6c556e626f6e64696e67506572696f645570646174654661696c656400030480436f756c646e27742075706461746520756e626f6e64696e6720706572696f646c4368616c6c656e6765506572696f645570646174654661696c656400040480436f756c646e277420757064617465206368616c6c656e676520706572696f64404572726f724368617267696e67466565000504484572726f72206368617267696e6720666565043450616c6c6574206572726f727319080c4870616c6c65745f68797065726272696467651870616c6c6574144572726f72040454000100048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d080000040810e1010021080c5070616c6c65745f746f6b656e5f676174657761791870616c6c6574144572726f7204045400012444556e7265676973746572656441737365740000049041206173736574207468617420686173206e6f74206265656e207265676973746572656448417373657454656c65706f72744572726f72000104744572726f72207768696c652074656c65706f7274696e6720617373657460436f70726f636573736f724e6f74436f6e66696775726564000204b4436f70726f636573736f7220776173206e6f7420636f6e6669677572656420696e207468652072756e74696d653444697370617463684572726f72000304784173736574206f7220757064617465204469737061746368204572726f724841737365744372656174696f6e4572726f72000404604173736574204964206372656174696f6e206661696c6564544173736574446563696d616c734e6f74466f756e6400050460417373657420646563696d616c73206e6f7420666f756e64384e6f74496e697469616c697a6564000604a450726f746f636f6c20506172616d732068617665206e6f74206265656e20696e697469616c697a656430556e6b6e6f776e417373657400070434556e6b6e6f776e204173736574344e6f7441737365744f776e6572000804a44f6e6c7920726f6f74206f72206173736574206f776e65722063616e2075706461746520617373657404ac4572726f727320746861742063616e2062652072657475726e656420627920746869732070616c6c65742e25080c3c70616c6c65745f74726561737572791870616c6c6574444672616d655661756c744361706974616c04045400000801206672616d655f69642c011c4672616d6549640001187661756c7473290801f8426f756e64656442547265654d61703c5661756c7449642c205661756c744361706974616c3c543e2c20543a3a4d61785661756c7473506572506f6f6c3e000029080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01100456012d080453000004003d08013842547265654d61703c4b2c20563e00002d080c3c70616c6c65745f74726561737572791870616c6c6574305661756c744361706974616c04045400000c0150626f6e645f6c6f745f616c6c6f636174696f6e73310801e4426f756e6465645665633c426f6e644c6f74416c6c6f636174696f6e2c20543a3a4d61785472656173757279436f6e7472696275746f72733e000138656c696769626c655f626f6e6473d40114426f6e64730001547661756c745f73686172696e675f70657263656e746d03011c5065726d696c6c000031080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013508045300000400390801185665633c543e000035080c3c70616c6c65745f74726561737572791870616c6c657444426f6e644c6f74416c6c6f636174696f6e000008012c626f6e645f6c6f745f69642c0124426f6e644c6f74496400011c70726f72617461e00124466978656455313238000039080000023508003d08042042547265654d617008044b01100456012d0800040041080000004108000002450800450800000408102d080049080c3c70616c6c65745f74726561737572791870616c6c65741c426f6e644c6f7404045400002801146f776e6572000130543a3a4163636f756e7449640001207661756c745f6964d4011c5661756c744964000114626f6e6473d40114426f6e6473000140637265617465645f6672616d655f69642c011c4672616d65496400014c7061727469636970617465645f6672616d6573d4010c7533320001706c6173745f6672616d655f6561726e696e67735f6672616d655f69648d01013c4f7074696f6e3c4672616d6549643e00014c6c6173745f6672616d655f6561726e696e6773850101484f7074696f6e3c543a3a42616c616e63653e00014c63756d756c61746976655f6561726e696e6773c00128543a3a42616c616e636500014072656c656173655f6672616d655f69648d01013c4f7074696f6e3c4672616d6549643e00013872656c656173655f726561736f6e4d0801644f7074696f6e3c426f6e6452656c65617365526561736f6e3e00004d0804184f7074696f6e0404540129020108104e6f6e6500000010536f6d6504002902000001000051080000040800300055080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401300453000004006d0601185665633c543e000059080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d08045300000400610801185665633c543e00005d080c3c70616c6c65745f74726561737572791870616c6c657438426f6e644c6f7453756d6d617279000008012c626f6e645f6c6f745f69642c0124426f6e644c6f744964000114626f6e6473d40114426f6e6473000061080000025d080065080c3c70616c6c65745f74726561737572791870616c6c6574144572726f7204045400012850426f6e64507572636861736552656a6563746564000004dc54686520707572636861736520776f756c64206e6f7420656e74657220746865207661756c742773206163636570746564206c6973742e785661756c744e6f74416363657074696e67426f6e64507572636861736573000104a8546865207661756c74206973206e6f7420616363657074696e6720626f6e64207075726368617365732e60426f6e64507572636861736542656c6f774d696e696d756d000204a45468652070757263686173652069732062656c6f7720746865206d696e696d756d20616d6f756e742e34496e7465726e616c4572726f720003046c416e20696e7465726e616c206572726f72206f636375727265642e6c4d61784163636570746564426f6e644c6f74734578636565646564000404fc546865207661756c7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616363657074656420626f6e64206c6f74732e784d617850656e64696e67426f6e6452656c65617365734578636565646564000504f0546f6f206d616e7920626f6e64206c6f742072656c656173657320617265207363686564756c656420666f72207468652073616d65206672616d652e3c426f6e644c6f744e6f74466f756e640006048054686520626f6e64206c6f7420636f756c64206e6f7420626520666f756e642e3c4e6f74426f6e644c6f744f776e6572000704945468652063616c6c657220646f6573206e6f74206f776e2074686520626f6e64206c6f742e5c426f6e644c6f74416c726561647952656c656173696e67000804b854686520626f6e64206c6f7420697320616c7265616479207363686564756c656420666f722072656c656173652e64426f6e64507572636861736541626f766553656375726974790009043101546865207661756c7420646f65736e2774206861766520656e6f75676820626974636f696e20736563757269747920746f20737570706f7274207468697320626f6e64207075726368617365048054686520604572726f726020656e756d206f6620746869732070616c6c65742e69080c4870616c6c65745f6665655f636f6e74726f6c1870616c6c6574144572726f720404540001044c53706f6e736f726564466565546f6f4869676800000425015468652072657175657374656420746970202b2066656520697320686967686572207468616e20746865206d6178696d756d20616c6c6f776564206279207468652073706f6e736f72048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6d080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004005d0201185665633c543e000071080c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574484f7065726174696f6e616c4163636f756e7404045400004c01347661756c745f6163636f756e74000130543a3a4163636f756e7449640001586d696e696e675f66756e64696e675f6163636f756e74000130543a3a4163636f756e7449640001486d696e696e675f626f745f6163636f756e74000130543a3a4163636f756e744964000144656e6372797074696f6e5f7075626b6579390501584f7061717565456e6372797074696f6e5075626b657900011c73706f6e736f72bc01504f7074696f6e3c543a3a4163636f756e7449643e0001506861735f756e69737761705f7472616e73666572200110626f6f6c0001347661756c745f63726561746564200110626f6f6c00013c626974636f696e5f6163637275616c180128543a3a42616c616e6365000154626974636f696e5f6170706c6965645f746f74616c180128543a3a42616c616e636500017c6861735f74726561737572795f706f6f6c5f70617274696369706174696f6e200110626f6f6c00014c6d696e696e675f736561745f6163637275616cd4010c7533320001646d696e696e675f736561745f6170706c6965645f746f74616cd4010c75333200016c6f7065726174696f6e616c5f726566657272616c735f636f756e74d4010c753332000140726566657272616c5f70656e64696e67200110626f6f6c00014c617661696c61626c655f726566657272616c73d4010c753332000150726577617264735f6561726e65645f636f756e74d4010c753332000154726577617264735f6561726e65645f616d6f756e74180128543a3a42616c616e6365000160726577617264735f636f6c6c65637465645f616d6f756e74180128543a3a42616c616e636500013869735f6f7065726174696f6e616c200110626f6f6c000075080000040830040079080c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c65743452657761726473436f6e666967041c42616c616e636501180008016c6f7065726174696f6e616c5f726566657272616c5f726577617264c0011c42616c616e6365000154726566657272616c5f626f6e75735f726577617264c0011c42616c616e636500007d080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081080c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574144572726f7204045400014444416c726561647952656769737465726564000004d45468652063616c6c657220616c7265616479207265676973746572656420616e206f7065726174696f6e616c206163636f756e742e70496e76616c6964526567697374726174696f6e5375626d69747465720001040d015468652063616c6c6572206973206e6f74206f6e65206f6620746865206163636f756e747320696e636c7564656420696e2074686520726567697374726174696f6e2e504163636f756e74416c72656164794c696e6b656400020425014f6e65206f66207468652070726f7669646564206163636f756e747320697320616c7265616479206c696e6b656420746f20616e206f7065726174696f6e616c206163636f756e742e4c496e76616c69644163636f756e7450726f6f66000304d84f6e65206f6620746865206c696e6b6564206163636f756e74206f776e6572736869702070726f6f667320697320696e76616c69642e544e6f744f7065726174696f6e616c4163636f756e74000404d45468652063616c6c657220686173206e6f74207265676973746572656420616e206f7065726174696f6e616c206163636f756e742e50496e76616c6964526566657272616c50726f6f66000504bc54686520726566657272616c2070726f6f66206f722073706f6e736f722070726f6f6620697320696e76616c69642e50526566657272616c50726f6f66457870697265640006047c54686520726566657272616c2070726f6f662068617320657870697265642e604e6f50726f677265737355706461746550726f7669646564000704e8546865207265717565737465642070726f677265737320706174636820646f6573206e6f7420636f6e7461696e20616e7920757064617465732e58456e63727970746564536572766572546f6f4c6f6e67000804fc54686520656e6372797074656420736572766572207061796c6f616420657863656564732074686520636f6e66696775726564206d6178206c656e6774682e4c4e6f7453706f6e736f724f6653706f6e736565000904dc5468652063616c6c6572206973206e6f74207468652073706f6e736f72206f6620746865207265717565737465642073706f6e7365652e404e6f50656e64696e6752657761726473000a04e0546865206f7065726174696f6e616c206163636f756e7420686173206e6f2070656e64696e67207265776172647320746f20636c61696d2e5c526577617264436c61696d42656c6f774d696e696d756d000b04a452657761726420636c61696d73206d757374206265206174206c65617374206f6e65204172676f6e2e60526577617264436c61696d4e6f7457686f6c654172676f6e000c04b452657761726420636c61696d73206d7573742062652077686f6c65204172676f6e20696e6372656d656e74732e64526577617264436c61696d4578636565647350656e64696e67000d04cc546865207265717565737465642072657761726420636c61696d20657863656564732070656e64696e6720726577617264732e645472656173757279496e73756666696369656e7446756e6473000e04350154686520747265617375727920646f6573206e6f742063757272656e746c79206861766520656e6f75676820617661696c61626c6520726573657276657320666f722074686520636c61696d2e48416c72656164794f7065726174696f6e616c000f048c546865206163636f756e7420697320616c7265616479206f7065726174696f6e616c2e604e6f74456c696769626c65466f7241637469766174696f6e001004ec546865206163636f756e7420686173206e6f7420736174697366696564206f7065726174696f6e616c20726571756972656d656e7473207965742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8508102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730129031043616c6c012103245369676e61747572650139041445787472610189080004003800000089080000042c8d089108950899089d08a108a908ad08b108b508bd08008d0810306672616d655f73797374656d28657874656e73696f6e7338617574686f72697a655f63616c6c34417574686f72697a6543616c6c04045400000000910810306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000950810306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000990810306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e040454000000009d0810306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a10810306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400a508010c4572610000a508102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000a90810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400d40120543a3a4e6f6e63650000ad0810306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b108086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400c0013042616c616e63654f663c543e0000b50808746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465b90801104d6f64650000b90808746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000bd0810306672616d655f73797374656d28657874656e73696f6e73387765696768745f7265636c61696d345765696768745265636c61696d04045400000000c10804184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000c50808346172676f6e5f72756e74696d651c52756e74696d65000000008c1853797374656d011853797374656d4c1c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023461020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000690204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500005902040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500007502040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e6045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e01790201581830426c6f636b576569676874738902fd01c2a0e766000b00a0724e180913ffffffffffffffff2261c91900010bb81711ca5d061332333333333333b3010b00f8d53ad20613ffffffffffffffbf0100002261c91900010bb8bfaddda3081332333333333333f3010b00a0724e180913ffffffffffffffff010b00a89c1346021300000000000000402261c9190000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746899023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874a1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ea502c904146172676f6e146172676f6e01000000970000000a0000005cdf6acb689907609b0500000037e397fc7c91f5e402000000ccd9de6396c899ca0100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000bc9d89904f5b923f01000000ab3c0572291feb8b0100000037c8bb1350a9a2a804000000f3ff14d5ab5270590300000061571683e6d7a7c8010000005e4dc2ce83c23f0901000000e6683faaa563317a0200000011de59f9923f03d80100000051c97e4020145cb001000000bab599c4f0d362c601000000fff0fb031985f8a1020000000090f9d890bb0bb20100000005dd9be92cc17d2802000000ed99c5acb25eedf503000000fbc577b9d747efd6010000000ebc8fd84ae20ada01000000888ea501e380d8a10100000005000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669789c082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01b902001c44696765737473011c44696765737473042c54656d70446967657374730000bd0204000000018000010503012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0109030004344d696e696d756d506572696f6430200100000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0002204d756c746973696701204d756c746973696704244d756c74697369677300010805020d031103040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e011d0301840c2c4465706f736974426173651840a005000000000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f721840a00000000000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e015905031450726f7879011450726f7879081c50726f7869657301010405005d054400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010405006d0544000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e0125030194184050726f78794465706f736974426173651840b004000000000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f721840a500000000000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173651840d804000000000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f7218404a01000000000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e017d0504145469636b7301145469636b73143050726576696f75735469636b010030200000000000000000002c43757272656e745469636b010030200000000000000000002c47656e657369735469636b010030200000000000000000003447656e657369735469636b657201008105080000004c526563656e74426c6f636b7341745469636b7301010405308505040008e820426c6f636b732066726f6d20746865206c61737420313030207469636b732e205472696d6d656420696e206f6e5f696e697469616c697a652ef4204e4f54453a2063616e6e6f7420696e636c756465207468652063757272656e7420626c6f636b206861736820756e74696c206e65787420626c6f636b013503000001890505284d696e696e67536c6f7401284d696e696e67536c6f74505c48617341646465644772616e647061526f746174696f6e010020040000384d696e6572734279436f686f72740101040230a80400045901204d696e6572732074686174206172652061637469766520696e207468652063757272656e7420626c6f636b2028706f737420696e697469616c697a6529206279207468656972207374617274696e67206672616d65444163746976654d696e657273436f756e7401009c08000000644d696e65724e6f6e636553636f72696e674279436f686f727401008d0504000c610120546869732069732061206c6f6f6b7570206f662065616368206d696e65722773206e6f6e636520746f20757365207768656e207069636b696e672061206265737420617574686f7269747920746f207375626d69742061510120626c6f636b2e2049742773206120626c616b6532203235362068617368206f6620746865206d696e6572206163636f756e7420696420616e642074686520626c6f636b20686173682061742074696d65206f66302061637469766174696f6e2e544172676f6e6f74735065724d696e696e6753656174010018400000000000000000000000000000000004c8204172676f6e6f74732074686174206d757374206265206c6f636b656420746f2074616b652061204d696e657220726f6c65484163636f756e74496e6465784c6f6f6b75700001040200ad050400046901204c6f6f6b7570206279206163636f756e7420696420746f2074686520636f72726573706f6e64696e6720696e64657820696e204d696e6572734279436f686f727420616e64204d696e65724e6f6e6365734279436f686f72745442696473466f724e657874536c6f74436f686f72740100a80400080d012054686520636f686f72742073657420746f20676f20696e746f2065666665637420696e20746865206e65787420736c6f742e20546865205665632068617320616c6c882072656769737472616e747320776974682074686569722062696420616d6f756e746452656c65617365644d696e65727342794163636f756e7449640100b105040004150120546865206d696e6572732072656c656173656420696e20746865206c61737420626c6f636b20286f6e6c79206b65707420666f7220612073696e676c6520626c6f636b295449734e657874536c6f7442696464696e674f70656e0100200400049420497320746865206e65787420736c6f74207374696c6c206f70656e20666f72206269647354486973746f726963616c42696473506572536c6f740100c105040004050120546865206e756d626572206f6620626964732070657220736c6f7420666f7220746865206c61737420313020736c6f747320286e6577657374206669727374294c417665726167655072696365506572536561740100cd05040004050120546865206176657261676520707269636520706572207365617420666f7220746865206c617374203130206672616d657320286e657765737420666972737429304d696e696e67436f6e6669670100d5050c00000004b420546865206d696e696e6720736c6f7420636f6e66696775726174696f6e2073657420696e2067656e657369732c4e6578744672616d65496401003020000000000000000008750120546865206e657874206672616d6549642e2041206672616d6520696e206172676f6e2069732074686520323420686f757273206265747765656e20746865207374617274206f662074776f20646966666572656e74206d696e696e672420636f686f7274732e4c4e65776c79537461727465644672616d654964000030040004942049732061206e6577206672616d65207374617274656420696e207468697320626c6f636b384e657874436f686f727453697a65010010100000000004f420546865206e756d626572206f6620616c6c6f77206d696e65727320746f2062696420666f7220746865206e657874206d696e696e6720636f686f7274805363686564756c6564436f686f727453697a654368616e676542794672616d650100d90504000ce420546865207570636f6d696e67206368616e676573207363686564756c656420666f7220636f686f72742073697a65206279206672616d652e5501204361706163697479206f6620313120616c6c6f777320666f72203130206672616d657320776f727468206f66207363686564756c6564206368616e67657320706c7573206f6e6520776f726b696e6720736c6f74d020746f207363686564756c652061206e6577206368616e676520647572696e67206672616d652066696e616c697a6174696f6e2e644672616d655265776172645469636b7352656d61696e696e6701003020000000000000000004c820546865206e756d626572206f6620726577617264207469636b732072656d61696e696e6720696e20746865206672616d65584672616d655374617274426c6f636b4e756d626572730100e505040004a8205468652070726576696f7573203130206672616d6520737461727420626c6f636b206e756d626572733c4672616d6553746172745469636b730100ed0504000488205468652070726576696f7573203130206672616d65207374617274207469636b734c54656d704672616d65496e666f4469676573740000e902040004982054656d706f726172792073746f726520746865206672616d6520696e666f2064696765737401390301a42c4c4672616d65735065724d696e696e675465726d10100a00000004a820546865206e756d626572206f66206672616d65732061206d696e6572206f7065726174657320666f72344d696e436f686f727453697a6510100a00000004a020546865206d696e696d756d206e756d626572206f66206d696e6572732070657220636f686f7274344d6178436f686f727453697a65101090000000085d0120486f77206d616e79206e6577206d696e6572732063616e20626520696e2074686520636f686f727420666f72206561636820736c6f742e205468652061637475616c206d6178696d756d2077696c6c2061646a757374302064796e616d6963616c6c797c4172676f6e6f747350657263656e7441646a7573746d656e7444616d706572e040000014bbf08ac602000000000000000004210120546865206d61782070657263656e74207377696e6720666f7220746865206172676f6e6f74732070657220736c6f74202866726f6d20746865206c6173742070657263656e7429584d696e696d756d4172676f6e6f747350657253656174184010270000000000000000000000000000049420546865206d696e696d756d206172676f6e6f7473206e6565646564207065722073656174704d6178696d756d4172676f6e6f7450726f7261746150657263656e74fd050428082d0120546865206d6178696d756d2070657263656e74206f66206172676f6e6f747320696e20746865206e6574776f726b20746861742073686f756c6420626520726571756972656420666f7234206d696e696e6720736561747360546172676574426964735065725365617450657263656e74e0400000c84e676dc11b000000000000000008590120546865207461726765742070657263656e74206f662062696473207065722061756374696f6e2072656c617469766520746f20746865206d6178206e756d626572206f662073656174732e20546869732077696c6c2d012061646a75737420746865206172676f6e6f7473207065722073656174207570206f7220646f776e20746f20656e73757265206d696e696e6720736c6f7473206172652066696c6c65642e48546172676574507269636550657253656174184000ca9a3b000000000000000000000000046c20546865207461726765742070726963652070657220736561742e7050726963655065725365617441646a7573746d656e7444616d706572e040000014bbf08ac6020000000000000000040901205468652064616d706572206f6e207468652070726963652070657220736561742061646a7573746d656e74202866726f6d20746865206c61737420707269636529504d696e696e67426964506f6f6c4163636f756e7400806d6f646c6c7164506f6f6c730000000000000000000000000000000000000000041501204163636f756e742074686174207265636569766573206d696e696e67206269642066756e6473206265666f726520747265617375727920646973747269627574696f6e2e34426964496e6372656d656e74731840102700000000000000000000000000000419012054686520696e6372656d656e74207468617420626964732063616e206265206f6e2028666f7220696e7374616e63652c206f6e652063656e7420696e6372656d656e7473290101060630426974636f696e5574786f730130426974636f696e5574786f73302c4c6f636b65645574786f7300010402cc050604000c5d01204c6f636b656420426974636f696e205554584f7320746861742068617665206265656e2066756e64656420776974682061205574786f5265662066726f6d2074686520426974636f696e206e6574776f726b20616e645d0120616d6f756e74732077697468696e20746865204d696e696d756d5361746f7368695468726573686f6c64206f66207468652065787065637465642e204966206120426974636f696e205554584f206973206d6f7665643101206265666f7265207468652065787069726174696f6e20626c6f636b2c207468652066756e647320617265206275726e656420616e6420746865205554584f20697320756e6c6f636b65642e585574786f4964546f46756e64696e675574786f5265660001040530cc040004d42041206d617070696e67206f66207574786f20696420746f2074686520636f6e6669726d6564207574786f207265666572656e63654c4c6f636b7350656e64696e6746756e64696e6701000d060400040d0120426974636f696e206c6f636b732074686174206172652070656e64696e672066756c6c2066756e64696e67206f6e2074686520626974636f696e206e6574776f726b544578706972656450656e64696e6746756e64696e6701000d0604000431012050656e64696e672066756e64696e6720656e747269657320746861742068617665206578706972656420616e6420617265206177616974696e6720626f756e64656420636c65616e75702e6443616e6469646174655574786f5265667342795574786f496401010405301d0604000429012043616e646964617465205554584f73206173736f63696174656420776974682061206c6f636b20286d69736d6174636865732c2065787472612066756e64696e672c206574632e292e38426974636f696e4e6574776f726b01002d06040304ec205468652067656e657369732073657420626974636f696e206e6574776f726b2074686174207468697320636861696e206973207469656420746f60436f6e6669726d6564426974636f696e426c6f636b54697000005903040004fc20416e206f7261636c652d70726f766964656420636f6e6669726d656420626974636f696e20626c6f636b202865672c203620626c6f636b73206261636b295c50726576696f7573426974636f696e426c6f636b546970000059030400005854656d70506172656e7448617353796e635374617465010020040004d42053746f72657320696620706172656e7420626c6f636b20686164206120636f6e6669726d656420626974636f696e20626c6f636b4c53796e63686564426974636f696e426c6f636b000059030400047c20546865206c6173742073796e6368656420626974636f696e20626c6f636b544f7261636c654f70657261746f724163636f756e740000000400048020426974636f696e204f7261636c65204f70657261746f72204163636f756e7440496e686572656e74496e636c756465640100200400048c20436865636b2069662074686520696e686572656e742077617320696e636c75646564013d0301c8146c4d617850656e64696e67436f6e6669726d6174696f6e5574786f7310101027000004650120546865206d6178696d756d206e756d626572206f66205554584f7320746861742063616e206265207761746368656420696e206120626c6f636b20616e642f6f72206578706972696e672061742073616d6520626c6f636b904d617850656e64696e6746756e64696e6745787069726174696f6e73506572426c6f636b10106400000004310120546865206d6178696d756d206e756d626572206f6620657870697265642070656e64696e672066756e64696e6720656e747269657320636c65616e656420757020696e206120626c6f636b604d617843616e6469646174655574786f735065724c6f636b10106400000004c8204d6178696d756d206e756d626572206f662063616e646964617465205554584f732073746f72656420706572206c6f636b704d617850656e64696e67436f6e6669726d6174696f6e426c6f636b7330209000000000000000042501204d6178696d756d20626974636f696e20626c6f636b7320746f2077617463682061205574786f20666f7220636f6e6669726d6174696f6e206265666f72652063616e63656c696e678c4d6178696d756d5361746f7368695468726573686f6c6446726f6d45787065637465643020e803000000000000084501204d6178696d756d206e756d626572206f66207361746f73686920646966666572656e636520616c6c6f7765642066726f6d20657870656374656420746f20636f6e73696465722061205554584f206173302022636f6e6669726d65642201310607185661756c747301185661756c7473302c4e6578745661756c744964000010040000285661756c7473427949640001040510350604000434205661756c7473206279206964445661756c74496442794f70657261746f7200010405001004000440205661756c7473206279206f776e6572345661756c74585075624279496400010405105106040004e0205661756c7420426974636f696e205870756220616e642063757272656e74206368696c6420636f756e746572206279205661756c744964644c617374436f6c6c6563744672616d6542795661756c7449640001040510300400049420546865206c61737420636f6c6c656374206672616d65206f662065616368207661756c747c50656e64696e675465726d734d6f64696669636174696f6e7342795469636b0101040530610604000871012050656e64696e67207465726d7320746861742077696c6c20626520636f6d6d69747465642061742074686520676976656e20626c6f636b206e756d62657220286d7573742062652061206d696e696d756d206f66203120736c6f7434206368616e67652061776179295850656e64696e67436f7369676e42795661756c74496401010405106506040004a420426974636f696e204c6f636b732070656e64696e6720636f7369676e206279207661756c74206964744f727068616e65645574786f4163636f756e747342795661756c7449640101080502710610100000000004c8204f727068616e656420426974636f696e205574786f732070656e64696e6720636f7369676e206279207661756c742069646c5661756c7446756e647352656c656173696e67427948656967687401010405307506040004fc20546865207661756c7473207468617420686176652066756e64732072656c656173696e67206174206120676976656e20626974636f696e206865696768749c5661756c747352656c656173696e674f7065726174696f6e616c4d696e696d756d42795469636b010104053075060400043101205661756c74732077686f73652074656d706f72617279206f7065726174696f6e616c206d696e696d756d206d61792062652072656c6561736564206174206120676976656e207469636b2e58526576656e75655065724672616d6542795661756c7401010405107d0604000c710120547261636b7320726576656e75652066726f6d20426974636f696e204c6f636b7320616e6420547265617375727920506f6f6c7320666f722074686520747261696c696e67206672616d657320666f722065616368207661756c747101202861206672616d65206973206120226d696e696e67206461792220696e204172676f6e292e204e6577657374206672616d6573206172652066697273742e204672616d6573206172652072656d6f76656420616674657220746865050120636f6c6c6563742065787069726174696f6e2077696e646f77202860526576656e7565436f6c6c656374696f6e45787069726174696f6e4672616d657360292e68526563656e74436170616369747944726f707342795661756c7401010405108906040004f420526563656e7420726564756374696f6e7320696e2060617661696c61626c655f666f725f6c6f636b602c2067726f75706564206279207661756c742e015d0301dc24884d617850656e64696e675465726d4d6f64696669636174696f6e735065725469636b10106400000004b420546865206d61782070656e64696e67207661756c74207465726d206368616e6765732070657220626c6f636b244d61785661756c747310101027000004b420546865206d6178206e756d626572206f66207661756c747320746861742063616e2062652063726561746564644d617850656e64696e67436f7369676e735065725661756c7410106400000004a4204d617820636f6e63757272656e7420636f7369676e732070656e64696e6720706572207661756c7484526576656e7565436f6c6c656374696f6e45787069726174696f6e4672616d657330200a0000000000000004f020546865206e756d626572206f66206672616d65732077697468696e20776869636820726576656e7565206d75737420626520636f6c6c6563746564944f7065726174696f6e616c4d696e696d756d5661756c7453656375726974697a6174696f6e184000943577000000000000000000000000044901204d696e696d756d207661756c742073656375726974697a6174696f6e207265717569726564207768696c6520746865206f7065726174696f6e616c20666c6f6f72206c6f636b206973206163746976652e804f7065726174696f6e616c4d696e696d756d5661756c744c6f636b5469636b7330202005080000000000045101204475726174696f6e20746f206b65657020746865206f7065726174696f6e616c206d696e696d756d2073656375726974697a6174696f6e206c6f636b65642066726f6d207661756c74206372656174696f6e2e74526563656e74436170616369747944726f70426c6f636b57696e646f77101008000000046101204e756d626572206f66204172676f6e20626c6f636b7320746f206b65657020726563656e742060617661696c61626c655f666f725f6c6f636b602064726f707320666f72207374616c6520696e697420636865636b732e784d6178526563656e74436170616369747944726f70735065725661756c74101040000000042101204d6178696d756d206e756d626572206f6620726563656e742060617661696c61626c655f666f725f6c6f636b602064726f70732072657461696e656420706572207661756c742e5c436170616369747944726f70417474656d7074556e6974184000e1f505000000000000000000000000085901204f6e65206e6f2d666565207374616c652060696e697469616c697a655f666f7260206661696c75726520697320616c6c6f77656420666f72206561636820746869732d6d616e7920756e697473206f66206c6f7374582060617661696c61626c655f666f725f6c6f636b602e0195060830426974636f696e4c6f636b730130426974636f696e4c6f636b732c284e6578745574786f4964000030040000344c6f636b7342795574786f496400010405309906040004e02053746f72657320626974636f696e207574786f73207468617420686176652072657175657374656420746f2062652072656c6561736564405574786f49647342795661756c7449640001080505a106900400048c20496e646578206f6620616374697665205554584f2049447320706572207661756c746c4c6f636b52656c65617365436f7369676e486569676874427949640001040530100400040d012053746f7265732074686520626c6f636b206e756d62657220776865726520612072656c656173652077617320636f7369676e656420627920746865207661756c742e6c4c6f636b52656c65617365526571756573747342795574786f49640001040530a506040004e02053746f72657320626974636f696e206c6f636b73207468617420686176652072657175657374656420746f2062652072656c6561736564584f727068616e65645574786f7342794163636f756e740001080505a906ad060400042501204d69736d617463686564207574786f73207468617420776572652073656e74207769746820696e76616c696420616d6f756e747320746f2061206c6f636b656420626974636f696e3c4d696e696d756d5361746f7368697301003020000000000000000004c820546865206d696e696d756d206e756d626572206f66207361746f7368697320746861742063616e206265206c6f636b6564504c6f636b436f7369676e44756542794672616d650101040530b906040004f0205574786f7320746861742068617665206265656e2072657175657374656420746f20626520636f7369676e656420666f722072656c656173696e67784c6f636b45787069726174696f6e734279426974636f696e4865696768740101040530bd060400085d012045787069726174696f6e206f6620626974636f696e206c6f636b7320627920626974636f696e206865696768742e2046756e647320617265206275726e65642073696e636520746865207573657220646964206e6f749020756e6c6f636b2069742e20426974636f696e2077696c6c20676f20746f207661756c74744f727068616e65645574786f45787069726174696f6e42794672616d650101040530c106040004c42045787069726174696f6e206f66206f727068616e6564207574786f20726566732062792075736572206163636f756e74544d6963726f676f6e506572427463486973746f72790100cd060400047420486973746f7279206f66206d6963726f676f6e73207065722062746301850301e424404172676f6e5469636b735065724461793020a005000000000000044c204172676f6e207469636b2070657220646179744d6178436f6e63757272656e746c7952656c656173696e674c6f636b731010e80300000488204d6178696d756d2072656c656173696e67207574786f7320617420612074696d65484c6f636b4475726174696f6e426c6f636b73302050cd00000000000004d420546865206e756d626572206f6620626974636f696e20626c6f636b73206120626974636f696e206973206c6f636b656420666f72544c6f636b5265636c616d6174696f6e426c6f636b733020e0100000000000000861012054686520626974636f696e20626c6f636b73206166746572206120426974636f696e4c6f636b206578706972657320776869636820746865207661756c742077696c6c20626520616c6c6f77656420746f20636c61696d28206120626974636f696e7c4c6f636b52656c65617365436f7369676e446561646c696e654672616d657330200a0000000000000004fc204e756d626572206f66206672616d65732061207661756c742068617320746f20636f756e7465722d7369676e206120626974636f696e2072656c656173657c4f727068616e65645574786f52656c656173654578706972794672616d657330200a00000000000000084d01204e756d626572206f66206672616d6573206f727068616e6564205554584f2072656c6561736520656e7472696573206172652072657461696e65642061667465722061206c6f636b206c6966656379636c6590207472616e736974696f6e206265666f7265206265696e6720636c65616e65642075702e704d6178436f6e63757272656e746c794578706972696e674c6f636b731010102700000861012050616c6c65742073746f7261676520726571756972657320626f756e64732c20736f207765206861766520746f207365742061206d6178696d756d206e756d62657220746861742063616e2065787069726520696e2061342073696e676c6520626c6f636b505469636b73506572426974636f696e426c6f636b30200a000000000000000488204e756d626572206f66207469636b732070657220626974636f696e20626c6f636b484d617842746350726963655469636b41676510101e00000004c0204d617820616c6c6f776564207469636b2d616765206f66206d6963726f676f6e2d7065722d6274632070726963657301d10609204e6f74617269657301204e6f74617269657318304e6578744e6f7461727949640000100400004050726f706f7365644e6f7461726965730001040200d906040000444578706972696e6750726f706f73616c730101040510dd06040000384163746976654e6f7461726965730100e106040000404e6f746172794b6579486973746f72790101040510e9060400005c5175657565644e6f746172794d6574614368616e6765730101040530f506040004cc204d65746164617461206368616e67657320746f206265206163746976617465642061742074686520676976656e207469636b01a10301f018444d61784163746976654e6f746172696573101019000000049020546865206d6178696d756d20616374697665206e6f74617269657320616c6c6f776564544d617850726f706f73616c486f6c64426c6f636b731010c04e000004c420546865206d6178696d756d20626c6f636b7320612070726f706f73616c2063616e2073697420756e617070726f766564504d617850726f706f73616c73506572426c6f636b10100a00000000504d6574614368616e6765735469636b44656c617930200600000000000000084901204e756d626572206f66207469636b7320746f2064656c6179206368616e67696e672061206e6f74617269657327206d65746120287468697320697320746f20616c6c6f7720612077696e646f7720666f72f4206e6f74617269657320746f2073776974636820746f206e6577206b6579732061667465722061206e6577206b65792069732066696e616c697a656429544d61785469636b73466f724b6579486973746f72791010400b000008e0204e756d626572206f66207469636b7320746f206d61696e7461696e206b657920686973746f727920666f722065616368206e6f74617279a8204e4f54453a206f6e6c79207072756e6564207768656e206e6577206b65797320617265206164646564384d61784e6f74617279486f7374731010040000000488204d6178696d756d20686f7374732061206e6f746172792063616e20737570706c790105070a204e6f7465626f6f6b01204e6f7465626f6f6b1c8c4e6f7465626f6f6b4368616e6765644163636f756e7473526f6f7442794e6f746172790001080205650234040004010120446f75626c652073746f72616765206d6170206f66206e6f74617279206964202b206e6f7465626f6f6b202320746f20746865206368616e676520726f6f74a04163636f756e744f726967696e4c6173744368616e6765644e6f7465626f6f6b42794e6f74617279000108020209071004000c35012053746f72616765206d6170206f66206163636f756e74206f726967696e20286e6f746172795f69642c206e6f7465626f6f6b2c206163636f756e745f7569642920746f20746865206c6173741501206e6f7465626f6f6b20636f6e7461696e696e672074686973206163636f756e7420696e20746865206368616e676564206163636f756e7473206d65726b6c6520726f6f749820284e6f7465626f6f6b4368616e6765644163636f756e7473526f6f7442794e6f74617279296c4c6173744e6f7465626f6f6b44657461696c7342794e6f7461727901010402100d070400086901204c697374206f66206c61737420666577206e6f7465626f6f6b2064657461696c73206279206e6f746172792e2054686520626f6f6c206973207768657468657220746865206e6f7465626f6f6b20697320656c696769626c65d820666f7220766f7465732028726563656976656420617420636f7272656374207469636b20616e64206175646974207061737365642938426c6f636b4e6f7465626f6f6b730100f1020400049420546865206e6f7465626f6f6b7320696e636c7564656420696e207468697320626c6f636b40496e686572656e74496e636c756465640100200400048c20436865636b2069662074686520696e686572656e742077617320696e636c75646564704e6f7461726965734c6f636b6564466f724661696c6564417564697400010402101d070400048c204e6f746172696573206c6f636b656420666f72206661696c696e6720617564697473744c6f636b65644e6f746172795265616479466f72526570726f636573730001040210100400040101204e6f74617269657320726561647920746f20737461727420726570726f63657373696e67206174206120676976656e206e6f7465626f6f6b206e756d62657201a503011501000121070b34436861696e5472616e736665720134436861696e5472616e7366657210384e6578745472616e7366657249640000100400004c50656e64696e675472616e73666572734f757400010402102507040000704578706972696e675472616e73666572734f757442794e6f746172790101080505a106290704001845012045787069726174696f6e20696e64657820666f72206f7574676f696e67207472616e7366657273206b657965642062792060286e6f746172795f69642c2065787069726174696f6e5f7469636b29602e006901204e4f54453a2045787069726174696f6e2070726f63657373696e6720666f6c6c6f7773206e6f7465626f6f6b2070726f6772657373696f6e2028606865616465722e7469636b602920666f722065616368206e6f746172792c5101206e6f742077616c6c2f72756e74696d65207469636b2e2049662061206e6f746172792073746f7073207375626d697474696e67206e6f7465626f6f6b7320696e646566696e6974656c792c2070656e64696e676501207472616e736665727320666f722074686174206e6f746172792072656d61696e2066726f7a656e2062792064657369676e20756e74696c2061206e6f746172792d737769746368207265636f766572792070617468206973282065786563757465642e544879706572627269646765546f6b656e41646d696e000000040004ac205468652061646d696e206f662074686520687970657262726964676520746f6b656e206761746577617901e5030131010c2050616c6c657449642d07207472616e73666572005c5472616e7366657245787069726174696f6e5469636b733020b036000000000000085d0120486f77206c6f6e672061207472616e736665722073686f756c642072656d61696e20696e2073746f72616765206265666f72652072657475726e696e672e204e4f54453a20746865726520697320612032207469636bc820677261636520706572696f642077686572652077652077696c6c207374696c6c20616c6c6f772061207472616e73666572784d617850656e64696e675472616e73666572734f7574506572426c6f636b1010e803000004bc20486f77206d616e79207472616e7366657273206f75742063616e206265207175657565642070657220626c6f636b0131070c34426c6f636b5365616c537065630134426c6f636b5365616c53706563284843757272656e74566f74654d696e696d756d01001840000000000000000000000000000000000c5501205468652063757272656e7420766f7465206d696e696d756d206f662074686520636861696e2e20426c6f636b20766f746573207573652074686973206d696e696d756d20746f2064657465726d696e65207468655d01206d696e696d756d20616d6f756e74206f6620746178206f7220636f6d70757465206e656564656420746f20637265617465206120766f74652e2049742069732061646a7573746564207570206f7220646f776e20746f74207461726765742061206d6178206e756d626572206f6620766f7465736043757272656e74436f6d70757465446966666963756c747901001840000000000000000000000000000000000c5501205468652063757272656e7420766f7465206d696e696d756d206f662074686520636861696e2e20426c6f636b20766f746573207573652074686973206d696e696d756d20746f2064657465726d696e65207468655d01206d696e696d756d20616d6f756e74206f6620746178206f7220636f6d70757465206e656564656420746f20637265617465206120766f74652e2049742069732061646a7573746564207570206f7220646f776e20746f74207461726765742061206d6178206e756d626572206f6620766f7465735843757272656e74436f6d707574654b6579426c6f636b00003404000c650120546865206b6579204b2069732073656c656374656420746f206265207468652068617368206f66206120626c6f636b20696e2074686520626c6f636b636861696e202d207468697320626c6f636b2069732063616c6c656445012074686520276b657920626c6f636b272e20466f72206f7074696d616c206d696e696e6720616e6420766572696669636174696f6e20706572666f726d616e63652c20746865206b65792073686f756c6444206368616e6765206576657279206461795450617374436f6d70757465426c6f636b54696d6573010035070400005850726576696f7573426c6f636b54696d657374616d7000003004000498205468652074696d657374616d702066726f6d207468652070726576696f757320626c6f636b4854656d70426c6f636b54696d657374616d7000003004000048566f74654d696e696d756d486973746f7279010039070400043101204b6565707320746865206c617374203320766f7465206d696e696d756d732e20546865206669727374206f6e65206170706c69657320746f207468652063757272656e7420626c6f636b2e7c54656d7043757272656e745469636b4e6f7465626f6f6b73496e426c6f636b01003d070400043d012054656d706f726172792073746f7265206f6620616e792063757272656e74207469636b206e6f7465626f6f6b7320696e636c7564656420696e207468697320626c6f636b20287673207469636b294c54656d70426c6f636b566f74654469676573740000c102040004802054656d706f726172792073746f72652074686520766f7465206469676573743850617374426c6f636b566f7465730100490704000001e90301350110444d61784163746976654e6f746172696573101019000000049020546865206d6178696d756d20616374697665206e6f74617269657320616c6c6f77656440546172676574426c6f636b566f746573184050c30000000000000000000000000000047020546865206465736972656420766f7465732070657220626c6f636b84486973746f726963616c436f6d70757465426c6f636b73466f724176657261676510100a000000085d0120546865206e756d626572206f6620686973746f726963616c20636f6d707574652074696d657320746f2075736520746f2063616c63756c6174652074686520726f6c6c696e6720636f6d707574652061766572616765442028666f722061646a7573746d656e742978486973746f726963616c566f7465426c6f636b73466f72417665726167651010a005000004490120546865206e756d626572206f6620686973746f726963616c20766f746520626c6f636b7320746f2075736520746f2063616c63756c6174652074686520726f6c6c696e6720766f746520617665726167650155070d1c446f6d61696e73011c446f6d61696e730c4452656769737465726564446f6d61696e7300010402345d010400004c5a6f6e655265636f7264734279446f6d61696e00010402343d01040000584578706972696e67446f6d61696e734279426c6f636b0101040530590704000001ed0301390100015d070e285072696365496e64657801285072696365496e646578101c43757272656e740000f503040004782053746f726573207468652061637469766520707269636520696e646578244c61737456616c69640000f503040004882053746f72657320746865206c6173742076616c696420707269636520696e64657840486973746f7269634172676f6e43504901006107040004ac20547261636b73207468652061766572616765206370692064617461206576657279203630207469636b73204f70657261746f72000000040004842054686520707269636520696e646578206f70657261746f72206163636f756e7401f103016101106c4d6178446f776e74696d655469636b734265666f7265526573657430203c0000000000000004d820546865206d6178696d756d206e756d626572206f66207469636b7320746f207072657365727665206120707269636520696e646578484d61785072696365416765496e5469636b733020a005000000000000046c20546865206f6c6465737420686973746f727920746f206b6565708c4d61784172676f6e4368616e67655065725469636b4177617946726f6d546172676574e0400000c16ff2862300000000000000000008650120546865206d617820707269636520646966666572656e63652064726f7070696e672062656c6f7720746172676574206f722072616973696e672061626f76652074617267657420706572207469636b2e2054686572652773e4206e6f20636f72726573706f6e64696e6720636f6e7374616e7420666f722074696d6520746f207265636f7665727920746f207461726765746c4d61784172676f6e5461726765744368616e67655065725469636be0400000c16ff2862300000000000000000000016d070f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000101c4772616e647061011c4772616e6470611c1453746174650100710704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500007507040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c6564000065020400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f7269746965730100790704000484205468652063757272656e74206c697374206f6620617574686f7269746965732e01f9030165010c384d6178417574686f7269746965731010e8030000045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020020000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e017d071124426c6f636b5365616c0124426c6f636b5365616c1c4c4c617374426c6f636b5365616c6572496e666f000081070400003c506172656e74566f74696e674b65790100cd020400086101205468652063616c63756c6174656420706172656e7420766f74696e67206b657920666f72206120626c6f636b2e2052656665727320746f20746865204e6f7465626f6f6b20426c6f636b566f74652052657665616c6564e020536563726574202b20566f7465734d65726b6c65526f6f74206f662074686520706172656e7420626c6f636b206e6f7465626f6f6b732e38426c6f636b466f726b506f7765720100d502910100000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000008e4205468652063616c63756c6174656420737472656e67746820696e207468652072756e74696d6520736f20746861742069742063616e20626511012075706772616465642c20627574206973207573656420627920746865206e6f646520746f2064657465726d696e6520776869636820666f726b20746f20666f6c6c6f7744566f746573496e50617374335469636b73010085070400049c2054686520636f756e74206f6620766f74657320696e20746865206c6173742033207469636b734054656d705365616c496e686572656e7400002904040004a820456e7375726573206f6e6c7920612073696e676c6520696e686572656e74206973206170706c696564504c6173745469636b57697468566f74655365616c010030200000000000000000004c4973426c6f636b46726f6d566f74655365616c0100200400047c2049732074686520626c6f636b2066726f6d206120766f7465207365616c3f01250400000189071230426c6f636b526577617264730130426c6f636b5265776172647314385061796f7574734279426c6f636b01010402108d070400048c20486973746f726963616c207061796f75747320627920626c6f636b206e756d62657248426c6f636b526577617264735061757365640100200400048420426f6f6c20696620626c6f636b2072657761726473206172652070617573656450426c6f636b526577617264734279436f686f72740100910704000441012054686520636f686f727420626c6f636b2072657761726473206279206d696e696e6720636f686f7274202869652c2077697468207468652073616d65207374617274696e67206672616d6520696429384172676f6e73506572426c6f636b0100184000000000000000000000000000000000087501205468652063757272656e74207363616c656420626c6f636b20726577617264732e2049742077696c6c2061646a757374206261736564206f6e20746865206172676f6e206d6f76656d656e7420617761792066726f6d2070726963651c2074617267657424426c6f636b4665657301001840000000000000000000000000000000000001410401710118585374617274696e674172676f6e73506572426c6f636b184020a107000000000000000000000000000488204e756d626572206f66206172676f6e73206d696e7465642070657220626c6f636b7c5374617274696e674f776e657273686970546f6b656e73506572426c6f636b184020a1070000000000000000000000000004b0204e756d626572206f66206f776e65727368697020746f6b656e73206d696e7465642070657220626c6f636b44496e6372656d656e74616c47726f7774689507a0e8030000000000000000000000000000b400000000000000404b4c0000000000000000000000000004f4205468652067726f777468207061746820666f7220626f7468206f776e65727368697020616e64206172676f6e73206265666f72652068616c76696e673048616c76696e675469636b733020200b20000000000004dc204e756d626572206f66207469636b7320666f722068616c76696e67206f66206f776e65727368697020736861726520726577617264734448616c76696e67426567696e5469636b733020105c0c000000000004050120546865207469636b206e756d626572206174207768696368207468652068616c76696e6720626567696e7320666f72206f776e65727368697020746f6b656e73484d696e65725061796f757450657263656e74e04000008bbd0689680a0000000000000000042d012050657263656e742061732061206e756d626572206f7574206f6620313030206f662074686520626c6f636b20726577617264207468617420676f657320746f20746865206d696e65722e01990713104d696e7401104d696e74144050656e64696e674d696e745574786f7301009d0704000c6d0120426974636f696e205554584f7320746861742068617665206265656e207375626d697474656420666f72206d696e74696e672e2054686973206c697374206973204649464f20666f72206d696e74696e67207768656e657665724020612920435049203e3d203020616e643d012062292074686520616767726567617465206d696e74656420426974636f696e73203c3d2074686520616767726567617465206d696e746564206d6963726f676f6e732066726f6d206d696e696e67544d696e7465644d696e696e674d6963726f676f6e73010018400000000000000000000000000000000004c02054686520746f74616c20616d6f756e74206f66206d6963726f676f6e73206d696e74656420666f72206d696e696e67584d696e746564426974636f696e4d6963726f676f6e7301001840000000000000000000000000000000000455012054686520746f74616c20616d6f756e74206f6620426974636f696e206d6963726f676f6e73206d696e7465642e2043616e6e6f742065786365656420604d696e7465644d696e696e674d6963726f676f6e73602e4c4d696e696e674d696e74506572436f686f72740100a90704000445012054686520616d6f756e74206f66206172676f6e73206d696e74656420706572206d696e696e6720636f686f7274202869652c2067726f75706564206279207374617274696e67206672616d65206964293c426c6f636b4d696e74416374696f6e0100ad07d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000145040189010c4c4d617850656e64696e674d696e745574786f7310101027000004f020546865206d6178696d756d206e756d626572206f66205554584f7320746861742063616e2062652077616974696e6720666f72206d696e74696e67604d61784d696e74486973746f7279546f4d61696e7461696e10100a00000004b420546865206d6178696d756d206e756d626572206f66206d696e7420686973746f7269657320746f206b656570444d6178506f737369626c654d696e6572731010a00500000001b507142042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200b907040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200c90704000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200d5070400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200e1070400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01490401990110484578697374656e7469616c4465706f73697418401027000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100200000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01f50715244f776e65727368697001244f776e6572736869701c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200b907040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200c90704000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200d5070400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200e1070400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01510401bd0110484578697374656e7469616c4465706f73697418401027000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100200000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01f907161c54785061757365011c54785061757365042c50617573656443616c6c7300010402c50190040004b42054686520736574206f662063616c6c73207468617420617265206578706c696369746c79207061757365642e01550401c10104284d61784e616d654c656e1010000100000c2501204d6178696d756d206c656e67746820666f722070616c6c6574206e616d6520616e642063616c6c206e616d65205343414c4520656e636f64656420737472696e67206e616d65732e00a820544f4f204c4f4e47204e414d45532057494c4c2042452054524541544544204153205041555345442e01fd0717485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e740c444e6578744665654d756c7469706c6965720100e040000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010001080400003c54785061796d656e744372656469740000050804000cf02054686520604f6e4368617267655472616e73616374696f6e602073746f726573207468652077697468647261776e2074782066656520686572652e00350120557365206077697468647261775f74786665656020616e64206072656d61696e696e675f74786665656020746f206163636573732066726f6d206f757473696465207468652063726174652e0001cd0104604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00181c5574696c6974790001590401d101044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e010d0819105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01610401d501000111081a1049736d70011049736d7034405374617465436f6d6d69746d656e747300010402e501dd04040008590120486f6c64732061206d6170206f66207374617465206d616368696e65206865696768747320746f20746865697220766572696669656420737461746520636f6d6d69746d656e74732e205468657365207374617465510120636f6d6d69746d656e747320656e642075702068657265206166746572207468657920617265207375636365737366756c6c7920766572696669656420627920612060436f6e73656e737573436c69656e74603c436f6e73656e737573537461746573000104054838040004150120486f6c64732061206d6170206f6620636f6e73656e737573207374617465206964656e7469666965727320746f20746865697220636f6e73656e7375732073746174652e50436f6e73656e7375735374617465436c69656e740001040248480400045d012041206d617070696e67206f6620636f6e73656e737573207374617465206964656e74696669657220746f2069742773206173736f63696174656420636f6e73656e73757320636c69656e74206964656e7469666965723c556e626f6e64696e67506572696f6400010402483004000411012041206d617070696e67206f6620636f6e73656e737573207374617465206964656e7469666965727320746f20746865697220756e626f6e64696e6720706572696f64733c4368616c6c656e6765506572696f6400010402dd0130040004e82041206d617070696e67206f66207374617465206d616368696e652049647320746f207468656972206368616c6c656e676520706572696f64735846726f7a656e436f6e73656e737573436c69656e7473010104024820040008e420486f6c64732061206d6170206f6620636f6e73656e73757320636c69656e74732066726f7a656e2064756520746f2062797a616e74696e6528206265686176696f7572604c617465737453746174654d616368696e6548656967687400010402dd0130040004bc20546865206c61746573742076657269666965642068656967687420666f722061207374617465206d616368696e656850726576696f757353746174654d616368696e6548656967687400010402dd0130040004c4205468652070726576696f75732076657269666965642068656967687420666f722061207374617465206d616368696e6564436f6e73656e737573436c69656e7455706461746554696d65000104054830040008190120486f6c6473207468652074696d657374616d70206174207768696368206120636f6e73656e73757320636c69656e742077617320726563656e746c7920757064617465642efc205573656420696e20656e737572696e6720746861742074686520636f6e66696775726564206368616c6c656e676520706572696f6420656c61707365732e5853746174654d616368696e6555706461746554696d6500010405e50130040008050120486f6c6473207468652074696d657374616d702061742077686963682061207374617465206d616368696e65206865696768742077617320757064617465642efc205573656420696e20656e737572696e6720746861742074686520636f6e66696775726564206368616c6c656e676520706572696f6420656c61707365732e24526573706f6e646564010104063420040008b020547261636b7320726571756573747320746861742068617665206265656e20726573706f6e64656420746f8820546865206b657920697320746865207265717565737420636f6d6d69746d656e74144e6f6e636501003020000000000000000004bc204c6174657374206e6f6e636520666f72206d657373616765732073656e742066726f6d207468697320636861696e344368696c6454726965526f6f74010034800000000000000000000000000000000000000000000000000000000000000000048020546865206368696c64207472696520726f6f74206f66206d6573736167657301650401d901000115081b2c49736d704772616e647061012c49736d704772616e6470610458537570706f7274656453746174654d616368696e657300010405e10130040004ec2052656769737465726564207374617465206d616368696e657320666f7220746865206772616e64706120636f6e73656e73757320636c69656e7401ed0401010200001c2c4879706572627269646765012c48797065726272696467650428486f7374506172616d7301000d02880000000000000000000000000000000000000000000000000000000000000000000004bc2054686520686f737420706172616d6574657273206f66207468652070616c6c65742d68797065726272696467652e00010902000119081d30546f6b656e476174657761790130546f6b656e47617465776179143c537570706f72746564417373657473000104021034040008cc2041737365747320737570706f72746564206279207468697320696e7374616e6365206f6620746f6b656e2067617465776179e82041206d6170206f6620746865206c6f63616c20617373657420696420746f2074686520746f6b656e2067617465776179206173736574206964304e617469766541737365747301010402102004000498204173736574732074686174206f726967696e6174652066726f6d207468697320636861696e2c4c6f63616c417373657473000104063410040008cc2041737365747320737570706f72746564206279207468697320696e7374616e6365206f6620746f6b656e2067617465776179e82041206d6170206f662074686520746f6b656e206761746577617920617373657420696420746f20746865206c6f63616c20617373657420696428507265636973696f6e7300010802021d0808040004dc2054686520646563696d616c732075736564206279207468652045564d20636f756e74657270617274206f66207468697320617373657454546f6b656e4761746577617941646472657373657300010402e10138040004bc2054686520746f6b656e2067617465776179206164726573736573206f6e20646966666572656e7420636861696e7301f9040121020420446563696d616c7308040604902054686520646563696d616c73206f6620746865206e61746976652063757272656e63790121081e205472656173757279012054726561737572791c6043757272656e744672616d655661756c744361706974616c0000250804000cc020546865207661756c74206361706974616c206c6f636b656420666f72207468652063757272656e74206672616d652e004d01205061796f75742075736573207468697320746f20736565207768696368207661756c747320616e6420626f6e64206c6f7473206172652070617274696369706174696e6720696e20746865206672616d652e344e657874426f6e644c6f744964010030200000000000000000045820546865206e65787420626f6e64206c6f742069642e2c426f6e644c6f74427949640001040530490804000490205468652073746f72656420737461746520666f72206561636820626f6e64206c6f742e4c426f6e644c6f7449647342794163636f756e740001080505510890040004b02054686520626f6e64206c6f742069647320746861742062656c6f6e6720746f20616e206163636f756e742e6850656e64696e67426f6e6452656c656173657342794672616d6501010405305508040004a420426f6e64206c6f747320746f2072656c656173652061742074686520676976656e206672616d652e7450656e64696e67426f6e6452656c656173655265747279437572736f72000030040004f820546865206f6c64657374206672616d652074686174207374696c6c2068617320626f6e64206c6f747320746f2072657472792072656c656173696e672e3c426f6e644c6f747342795661756c740101040510590804000c902054686520616363657074656420626f6e64206c6f747320666f722061207661756c742e004501204c6f747320617265206b65707420696e2064657363656e64696e6720626f6e64206f726465722c207468656e206c6f7765722060626f6e645f6c6f745f69646020666972737420666f7220746965732e012905012502205c4d61785472656173757279436f6e7472696275746f727310106400000004390120546865206d6178696d756d206e756d626572206f6620616363657074656420626f6e64206c6f747320696e2061207661756c74277320616363657074656420626f6e642d6c6f74206c6973742e6c4d696e696d756d4172676f6e73506572436f6e7472696275746f72184000e1f50500000000000000000000000004a020546865206d696e696d756d2077686f6c652d626f6e6420707572636861736520616d6f756e742e2050616c6c657449642d07206c7164506f6f6c730401012054726561737572792070616c6c65742069642072657461696e656420696e206d6574616461746120666f72206163636f756e742064657269766174696f6e2e5c547265617375727952657365727665734163636f756e7400806d6f646c6c7164506f6f6c7374726561737572792d7265736572766500000000043101204163636f756e74207468617420686f6c647320747265617375727920726573657276657320666f7220636c61696d7320616e6420726573657276652d66756e646564207061796f7574732e6850657263656e74466f7254726561737572795265736572766573fd05041404e02050657263656e74206f66207468652062696420706f6f6c20726573657276656420666f722074726561737572792072657365727665732e404d61785661756c7473506572506f6f6c101064000000045d0120546865206d6178696d756d206e756d626572206f66207661756c747320746861742063616e20706172746963697061746520696e206f6e65206672616d652773206c6f636b6564207661756c74206361706974616c2e644d617850656e64696e67556e6c6f636b735065724672616d651010e803000004490120546865206d6178696d756d206e756d626572206f6620626f6e64206c6f74732077686f73652072656c656173652064656c6179206d6179206d617475726520696e20612073696e676c65206672616d652e5c54726561737572794578697444656c61794672616d657330200a00000000000000041d0120546865206e756d626572206f66206672616d657320612072656c656173696e6720626f6e64206c6f742072656d61696e732068656c64206265666f72652072656c656173652e0165081f28466565436f6e74726f6c0000012d02000169082048496e626f756e645472616e736665724c6f670148496e626f756e645472616e736665724c6f670c4c496e626f756e6445766d5472616e736665727300010402343d02040004010120496e626f756e642045564d207472616e7366657273207265636f72646564206279207468656972207265717565737420636f6d6d69746d656e74206b65792e74526563656e744172676f6e5472616e736665727342794163636f756e740101040200101000000000100d0120526563656e74207175616c696679696e67204172676f6e207472616e7366657220636f756e74206b6579656420627920726563697069656e74206163636f756e742e00510120546869732069732061207472616e7369656e742072657461696e65642d77696e646f7720696e646578206f7665722060496e626f756e6445766d5472616e7366657273602c206e6f74207065726d616e656e742420686973746f72792e68496e626f756e645472616e73666572734578706972696e67417401010405106d08040004050120496e646578206f6620696e626f756e64207472616e73666572207265636f7264206b657973206578706972696e67206174206120676976656e20626c6f636b2e00013902147c496e626f756e645472616e7366657273526574656e74696f6e426c6f636b7310104038000004d020486f77206d616e7920626c6f636b7320746f2072657461696e20696e626f756e64207472616e73666572207265636f7264732e704d61785472616e7366657273546f52657461696e506572426c6f636b10106400000004e0204d6178696d756d206e756d626572206f66207265636f7264732072657461696e65642066726f6d20612073696e676c6520626c6f636b2e5c4d6178496e626f756e645472616e736665724279746573101000280000045501204d6178696d756d206e756d626572206f6620627974657320616c6c6f77656420696e206120546f6b656e47617465776179207265717565737420626f64792028302064697361626c65732074686520636170292e804d696e696d756d5472616e736665724d6963726f676f6e73546f5265636f7264184000ca9a3b00000000000000000000000004f8204d696e696d756d20616d6f756e742028696e206261736520756e6974732920746f207265636f726420616e20696e626f756e64207472616e736665722e404f776e657273686970417373657449641010010000000490204f776e65727368697020746f6b656e20617373657420696420284172676f6e6f74292e00214c4f7065726174696f6e616c4163636f756e7473014c4f7065726174696f6e616c4163636f756e74731c4c4f7065726174696f6e616c4163636f756e74730001040200710804000405012052656769737465726564206f7065726174696f6e616c206163636f756e7473206b6579656420627920746865207072696d617279206163636f756e742069642e784f7065726174696f6e616c4163636f756e7442795375624163636f756e7400010402000004000411012052657665727365206c6f6f6b7570206f6620616e79206c696e6b6564206163636f756e7420746f20697473206f7065726174696f6e616c206163636f756e742069642e54436f6e73756d6564526566657272616c436f646573000104020430040004550120526566657272616c20636f6465732074686174206861766520616c7265616479206265656e206c696e6b65642c206b6579656420746f2074686569722070726f6f662065787069726174696f6e206672616d652e84436f6e73756d6564526566657272616c436f646573427945787069726174696f6e0001080502750890040004150120526566657272616c20636f64657320746f20636c65617220616674657220746865697220726566657272616c2070726f6f662065787069726174696f6e206672616d652e7c45787069726564526566657272616c436f6465436c65616e75704672616d650000300400042101204f6c6465737420726566657272616c2065787069726174696f6e206672616d652074686174207374696c6c2068617320636c65616e757020776f726b20746f20726573756d652e1c526577617264730100790808000004d020436f6e666967757265642072657761726420616d6f756e747320666f72206f7065726174696f6e616c206163636f756e74732e60456e63727970746564536572766572427953706f6e73656500010402007d080400044901204f706171756520656e637279707465642073706f6e736f7220736572766572207061796c6f6164206b65796564206279207468652073706f6e736565206f7065726174696f6e616c206163636f756e742e012d050151022868426974636f696e4c6f636b53697a65466f72526566657272616c184000f2052a010000000000000000000000043901204164646974696f6e616c206172676f6e20616d6f756e7420286261736520756e697473292072657175697265642070657220726566657272616c206166746572206f7065726174696f6e616c2e644f7065726174696f6e616c526566657272616c52657761726418400065cd1d00000000000000000000000004e42044656661756c74207265776172642070616964207768656e20616e206163636f756e74206265636f6d6573206f7065726174696f6e616c2e784f7065726174696f6e616c526566657272616c426f6e7573526577617264184000f2052a01000000000000000000000004d02044656661756c7420626f6e757320726577617264207061696420657665727920726566657272616c207468726573686f6c642e98526566657272616c426f6e75734576657279584f7065726174696f6e616c53706f6e73656573101005000000040d01204e756d626572206f66206f7065726174696f6e616c2073706f6e736565732072657175697265642070657220726566657272616c20626f6e7573207265776172642e544d6178417661696c61626c65526566657272616c7310100300000004dc204d6178696d756d206e756d626572206f6620617661696c61626c6520726566657272616c7320616c6c6f776564206174206f6e63652e984d617845787069726564526566657272616c436f6465436c65616e757073506572426c6f636b1010e803000004f0204d6178696d756d206e756d626572206f66206578706972656420726566657272616c20636f64657320636c65617265642070657220626c6f636b2e544d6178456e637279707465645365727665724c656e10100001000004f4204d6178696d756d206e756d626572206f6620656e63727970746564207365727665722062797465732073746f726564207065722073706f6e7365652e944f7065726174696f6e616c4d696e696d756d5661756c7453656375726974697a6174696f6e18400094357700000000000000000000000004f4204d696e696d756d207661756c742073656375726974697a6174696f6e20726571756972656420746f206265636f6d65206f7065726174696f6e616c2e644d696e696e675365617473466f724f7065726174696f6e616c10100200000004b4204d696e696e6720736561747320726571756972656420746f206265636f6d65206f7065726174696f6e616c2e584d696e696e675365617473506572526566657272616c10100500000004d8204d696e696e672073656174732072657175697265642070657220726566657272616c206166746572206f7065726174696f6e616c2e018108228508042c34417574686f72697a6543616c6c8d089048436865636b4e6f6e5a65726f53656e64657291089040436865636b5370656356657273696f6e95081038436865636b547856657273696f6e99081030436865636b47656e657369739d083438436865636b4d6f7274616c697479a1083428436865636b4e6f6e6365a908902c436865636b576569676874ad0890604368617267655472616e73616374696f6e5061796d656e74b1089044436865636b4d6574616461746148617368b508c108345765696768745265636c61696dbd0890c508\"\n}\n","{\n \"specName\": \"argon\",\n \"implName\": \"argon\",\n \"authoringVersion\": 1,\n \"specVersion\": 151,\n \"implVersion\": 10,\n \"apis\": [\n [\"0xdf6acb689907609b\", 5],\n [\"0x37e397fc7c91f5e4\", 2],\n [\"0xccd9de6396c899ca\", 1],\n [\"0x40fe3ad401f8959a\", 6],\n [\"0xd2bc9897eed08f15\", 3],\n [\"0xf78b278be53f454c\", 2],\n [\"0xbc9d89904f5b923f\", 1],\n [\"0xab3c0572291feb8b\", 1],\n [\"0x37c8bb1350a9a2a8\", 4],\n [\"0xf3ff14d5ab527059\", 3],\n [\"0x61571683e6d7a7c8\", 1],\n [\"0x5e4dc2ce83c23f09\", 1],\n [\"0xe6683faaa563317a\", 2],\n [\"0x11de59f9923f03d8\", 1],\n [\"0x51c97e4020145cb0\", 1],\n [\"0xbab599c4f0d362c6\", 1],\n [\"0xfff0fb031985f8a1\", 2],\n [\"0x0090f9d890bb0bb2\", 1],\n [\"0x05dd9be92cc17d28\", 2],\n [\"0xed99c5acb25eedf5\", 3],\n [\"0xfbc577b9d747efd6\", 1],\n [\"0x0ebc8fd84ae20ada\", 1],\n [\"0x888ea501e380d8a1\", 1]\n ],\n \"transactionVersion\": 5,\n \"systemVersion\": 1,\n \"stateVersion\": 1\n}\n","{\n \"mainnet\": \"0xee11bf2ff8838fcb0832c09085c5319a08ba6111c225ecd899fe659872d9d45d\",\n \"testnet\": \"0x66dc4e5ff85faddb0311b768eb73a58d9a00c65f06056ffaa370a1b1354d7411\"\n}\n","import { ArgonClient } from './index';\n\nexport interface IArgonCpiSnapshot {\n // The target price of the argon as a fixed point number (18 decimals)\n argonUsdTargetPrice: bigint;\n // The current price of the argon as a fixed point number (18 decimals)\n argonUsdPrice: bigint;\n // The block hash in which the cpi was finalized\n finalizedBlock: Uint8Array;\n tick: bigint;\n}\n\n/**\n * The WageProtector class is used to protect wages from inflation by using the current Argon Price Index to adjust the\n * baseAmount to current conditions. This ensures that the wage is always stable and does not lose or gain value based on\n * demand for the argon or fiat monetary supply changes.\n */\nexport class WageProtector {\n constructor(public latestCpi: IArgonCpiSnapshot) {}\n\n /**\n * Converts the base wage to the current wage using the latest CPI snapshot\n *\n * @param baseWage The base wage to convert\n * @returns The protected wage\n */\n public getProtectedWage(baseWage: bigint): bigint {\n return (baseWage * this.latestCpi.argonUsdTargetPrice) / this.latestCpi.argonUsdPrice;\n }\n\n /**\n * Subscribes to the current CPI and calls the callback function whenever the CPI changes\n * @param client The ArgonClient to use\n * @param callback The callback function to call when the CPI changes\n * @returns An object with an unsubscribe function that can be called to stop the subscription\n */\n public static async subscribe(\n client: ArgonClient,\n callback: (cpi: WageProtector) => void,\n ): Promise<{\n unsubscribe: () => void;\n }> {\n const unsubscribe = await client.query.priceIndex.current(async cpi => {\n if (cpi.isNone) {\n return;\n }\n const finalizedBlock = await client.rpc.chain.getFinalizedHead();\n\n callback(\n new WageProtector({\n argonUsdTargetPrice: cpi.value.argonUsdTargetPrice.toBigInt(),\n argonUsdPrice: cpi.value.argonUsdPrice.toBigInt(),\n finalizedBlock: new Uint8Array(finalizedBlock),\n tick: cpi.value.tick.toBigInt(),\n }),\n );\n });\n return { unsubscribe };\n }\n\n /**\n * Creates a new WageProtector instance by subscribing to the current CPI and waiting for the first value\n * @param client The ArgonClient to use\n */\n public static async create(client: ArgonClient): Promise<WageProtector> {\n return new Promise<WageProtector>(async (resolve, reject) => {\n try {\n const { unsubscribe } = await WageProtector.subscribe(client, x => {\n resolve(x);\n unsubscribe();\n });\n } catch (e) {\n reject(e);\n }\n });\n }\n}\n","import BigNumber, * as BN from 'bignumber.js';\nimport type { ArgonClient } from './index';\nimport type { DispatchError } from '@polkadot/types/interfaces';\nimport { EventRecord } from '@polkadot/types/interfaces/system';\n\nconst { ROUND_FLOOR } = BN;\n\nexport const MICROGONS_PER_ARGON = 1_000_000;\n\nexport function formatArgons(microgons: bigint | number): string {\n if (microgons === undefined || microgons === null) return 'na';\n const isNegative = microgons < 0;\n let format = BigNumber(microgons.toString())\n .abs()\n .div(MICROGONS_PER_ARGON)\n .toFormat(2, ROUND_FLOOR);\n if (format.endsWith('.00')) {\n format = format.slice(0, -3);\n }\n return `${isNegative ? '-' : ''}₳${format}`;\n}\n\nexport async function gettersToObject<T>(obj: T): Promise<T> {\n if (obj === null || obj === undefined || typeof obj !== 'object') return obj;\n\n const keys = [];\n\n for (const key in obj) {\n keys.push(key);\n }\n\n if (Symbol.iterator in obj) {\n const iterableToArray = [];\n // @ts-expect-error - it should iterate by virtue of Symbol.iterator\n for (const item of obj) {\n iterableToArray.push(await gettersToObject(item));\n }\n return iterableToArray as T;\n }\n\n const result = {} as any;\n for (const key of keys) {\n const descriptor = Object.getOwnPropertyDescriptor(obj, key);\n // Skip functions\n if (descriptor && typeof descriptor.value === 'function') {\n continue;\n }\n const value = descriptor && descriptor.get ? descriptor.get.call(obj) : obj[key as keyof T];\n if (typeof value === 'function') continue;\n\n result[key] = await gettersToObject(value);\n }\n return result as T;\n}\n\nexport function dispatchErrorToString(client: ArgonClient, error: DispatchError) {\n let message = error.toString();\n if (error.isModule) {\n const decoded = client.registry.findMetaError(error.asModule);\n const { docs, name, section } = decoded;\n message = `${section}.${name}: ${docs.join(' ')}`;\n }\n return message;\n}\n\n// ExtrinsicError\nexport class ExtrinsicError extends Error {\n constructor(\n public readonly errorCode: string,\n public readonly details?: string,\n public readonly batchInterruptedIndex?: number,\n public readonly txFee: bigint = 0n,\n ) {\n super(errorCode);\n }\n\n public override toString() {\n if (this.batchInterruptedIndex !== undefined) {\n return `${this.errorCode} ${this.details ?? ''} (Batch interrupted at index ${this.batchInterruptedIndex})`;\n }\n return `${this.errorCode} ${this.details ?? ''}`;\n }\n}\n\nexport function dispatchErrorToExtrinsicError(\n client: ArgonClient,\n error: DispatchError,\n batchInterruptedIndex?: number,\n txFee?: bigint,\n) {\n if (error.isModule) {\n const decoded = client.registry.findMetaError(error.asModule);\n const { docs, name, section } = decoded;\n return new ExtrinsicError(`${section}.${name}`, docs.join(' '), batchInterruptedIndex, txFee);\n }\n return new ExtrinsicError(error.toString(), undefined, batchInterruptedIndex, txFee);\n}\n\n/**\n * Check for an extrinsic success event in the given events. Helpful to validate the result of an extrinsic inclusion in a block (it will be included even if it fails)\n * @param events The events to check\n * @param client The client to use\n * @returns A promise that resolves if the extrinsic was successful, and rejects if it failed\n */\nexport function checkForExtrinsicSuccess(\n events: EventRecord[],\n client: ArgonClient,\n): Promise<void> {\n return new Promise((resolve, reject) => {\n for (const { event } of events) {\n if (client.events.system.ExtrinsicSuccess.is(event)) {\n resolve();\n } else if (client.events.system.ExtrinsicFailed.is(event)) {\n // extract the data for this event\n const [dispatchError] = event.data;\n let errorInfo = dispatchError.toString();\n\n if (dispatchError.isModule) {\n const decoded = client.registry.findMetaError(dispatchError.asModule);\n errorInfo = `${decoded.section}.${decoded.name}`;\n }\n\n reject(new Error(`${event.section}.${event.method}:: ExtrinsicFailed:: ${errorInfo}`));\n }\n }\n });\n}\n","import { ArgonClient, GenericEvent, SpRuntimeDispatchError } from './index';\nimport { dispatchErrorToExtrinsicError, ExtrinsicError } from './utils';\nimport type { ISubmittableResult } from '@polkadot/types/types/extrinsic';\nimport { DispatchError } from '@polkadot/types/interfaces';\n\nexport type ITxProgressCallback = (progressToInBlock: number, result?: TxResult) => void;\n\nexport class TxResult {\n #isBroadcast = false;\n #submissionError?: Error;\n\n set isBroadcast(value: boolean) {\n this.#isBroadcast = value;\n this.updateProgress();\n }\n\n get isBroadcast(): boolean {\n return this.#isBroadcast;\n }\n\n set submissionError(value: Error) {\n if (value) {\n this.#submissionError = value;\n this.finalizedReject(value);\n this.inBlockReject(value);\n this.updateProgress();\n }\n }\n\n get submissionError(): Error | undefined {\n return this.#submissionError;\n }\n\n public waitForFinalizedBlock: Promise<Uint8Array>;\n public waitForInFirstBlock: Promise<Uint8Array>;\n public events: GenericEvent[] = [];\n\n public extrinsicError: ExtrinsicError | Error | undefined;\n public extrinsicIndex: number | undefined;\n\n public txProgressCallback?: ITxProgressCallback;\n /**\n * The index of the batch that was interrupted, if any.\n */\n public batchInterruptedIndex?: number;\n public blockHash?: Uint8Array;\n public blockNumber?: number;\n /**\n * The final fee paid for the transaction, including the fee tip.\n */\n public finalFee?: bigint;\n /**\n * The fee tip paid for the transaction.\n */\n public finalFeeTip?: bigint;\n\n public txProgress = 0;\n public isFinalized = false;\n\n protected finalizedResolve!: (block: Uint8Array) => void;\n protected finalizedReject!: (error: ExtrinsicError | Error) => void;\n protected inBlockResolve!: (block: Uint8Array) => void;\n protected inBlockReject!: (error: ExtrinsicError | Error) => void;\n\n constructor(\n protected readonly client: ArgonClient,\n public extrinsic: {\n signedHash: string;\n method: any;\n submittedTime: Date;\n submittedAtBlockNumber: number;\n accountAddress: string;\n nonce: number;\n },\n ) {\n this.waitForFinalizedBlock = new Promise((resolve, reject) => {\n this.finalizedResolve = resolve;\n this.finalizedReject = reject;\n });\n this.waitForInFirstBlock = new Promise((resolve, reject) => {\n this.inBlockResolve = resolve;\n this.inBlockReject = reject;\n });\n // drown reject\n this.waitForFinalizedBlock.catch(() => null);\n this.waitForInFirstBlock.catch(() => null);\n }\n\n public async setSeenInBlock(block: {\n blockHash: Uint8Array;\n blockNumber?: number;\n extrinsicIndex: number;\n events: GenericEvent[];\n }): Promise<void> {\n const { blockHash, blockNumber, events } = block;\n if (blockHash !== this.blockHash) {\n this.parseEvents(events);\n this.blockHash = blockHash;\n this.blockNumber =\n blockNumber ??\n (await this.client.rpc.chain.getHeader(blockHash).then(h => h.number.toNumber()));\n this.extrinsicIndex = block.extrinsicIndex;\n this.updateProgress();\n if (this.extrinsicError) {\n this.inBlockReject(this.extrinsicError);\n } else {\n this.inBlockResolve(blockHash);\n }\n }\n }\n\n public setFinalized() {\n this.isFinalized = true;\n this.updateProgress();\n\n let error = this.extrinsicError ?? this.submissionError;\n if (!error && !this.blockHash) {\n error = new Error('Cannot finalize transaction before it is included in a block');\n }\n\n if (error) {\n this.finalizedReject(error);\n this.inBlockReject(error);\n } else {\n this.finalizedResolve(this.blockHash!);\n this.inBlockResolve(this.blockHash!);\n }\n }\n\n public onSubscriptionResult(result: ISubmittableResult) {\n const { events, status, isFinalized, txIndex } = result;\n const extrinsicEvents = events.map(x => x.event);\n\n if (status.isBroadcast) {\n this.isBroadcast = true;\n if (result.internalError) this.submissionError = result.internalError;\n }\n if (status.isInBlock) {\n void this.setSeenInBlock({\n blockHash: Uint8Array.from(status.asInBlock),\n events: extrinsicEvents,\n extrinsicIndex: txIndex!,\n });\n }\n if (isFinalized) {\n this.setFinalized();\n }\n }\n\n private updateProgress() {\n if (this.isFinalized || this.submissionError) {\n this.txProgress = 100;\n } else if (this.blockNumber) {\n const elapsedBlocks = this.blockNumber - this.extrinsic.submittedAtBlockNumber;\n const FINALIZATION_BLOCKS = 5;\n const remainingPercent = Math.max(0, FINALIZATION_BLOCKS - elapsedBlocks) * 20;\n const percent = 100 - remainingPercent;\n this.txProgress = Math.min(percent, 99);\n } else if (this.extrinsic.submittedAtBlockNumber) {\n this.txProgress = 10;\n }\n this.txProgressCallback?.(this.txProgress);\n }\n\n private parseEvents(events: GenericEvent[]) {\n let encounteredError: SpRuntimeDispatchError | undefined;\n for (const event of events) {\n if (this.client.events.system.ExtrinsicFailed.is(event)) {\n const { dispatchError } = event.data;\n encounteredError ??= dispatchError;\n }\n if (this.client.events.utility.BatchInterrupted.is(event)) {\n const { index, error } = event.data;\n this.batchInterruptedIndex = index.toNumber();\n encounteredError = error;\n }\n if (this.client.events.transactionPayment.TransactionFeePaid.is(event)) {\n const { actualFee, tip } = event.data;\n this.finalFee = actualFee.toBigInt();\n this.finalFeeTip = tip.toBigInt();\n }\n }\n if (encounteredError) {\n this.extrinsicError = dispatchErrorToExtrinsicError(\n this.client,\n encounteredError as unknown as DispatchError,\n this.batchInterruptedIndex,\n this.finalFee,\n );\n } else {\n this.extrinsicError = undefined;\n }\n this.events = events;\n }\n}\n","import { waitForLoad } from './index';\nimport type { ArgonClient } from './index';\nimport type { SubmittableExtrinsic } from '@polkadot/api/promise/types';\nimport type { SignerOptions } from '@polkadot/api/types';\nimport type { KeyringPair } from '@polkadot/keyring/types';\nimport { ITxProgressCallback, TxResult } from './TxResult';\n\nexport type TxSigningAccount =\n | KeyringPair\n | { address: string; signer: NonNullable<SignerOptions['signer']> };\n\nexport type ISubmittableOptions = Partial<Omit<SignerOptions, 'signer'>> & {\n tip?: bigint;\n logResults?: boolean;\n useLatestNonce?: boolean;\n txProgressCallback?: ITxProgressCallback;\n disableAutomaticTxTracking?: boolean;\n};\n\nexport class TxSubmitter {\n public readonly address: string;\n\n constructor(\n public readonly client: ArgonClient,\n public tx: SubmittableExtrinsic,\n public readonly account: TxSigningAccount,\n ) {\n this.address = account.address;\n }\n\n public async feeEstimate(tip?: bigint): Promise<bigint> {\n const { partialFee } = await this.tx.paymentInfo(this.address, { tip });\n return partialFee.toBigInt();\n }\n\n public async canAfford(\n options: {\n tip?: bigint;\n unavailableBalance?: bigint;\n includeExistentialDeposit?: boolean;\n } = {},\n ): Promise<{ canAfford: boolean; availableBalance: bigint; txFee: bigint }> {\n const { tip, unavailableBalance } = options;\n const account = await this.client.query.system.account(this.address);\n let availableBalance = account.data.free.toBigInt();\n const userBalance = availableBalance;\n if (unavailableBalance) {\n availableBalance -= unavailableBalance;\n }\n const existentialDeposit = options.includeExistentialDeposit\n ? this.client.consts.balances.existentialDeposit.toBigInt()\n : 0n;\n const fees = await this.feeEstimate(tip);\n const totalCharge = fees + (tip ?? 0n);\n const canAfford = availableBalance >= totalCharge + existentialDeposit;\n return { canAfford, availableBalance: userBalance, txFee: fees };\n }\n\n public async sign(options: ISubmittableOptions = {}): Promise<SubmittableExtrinsic> {\n const { useLatestNonce, ...apiOptions } = options;\n await waitForLoad();\n if (useLatestNonce && apiOptions.nonce === undefined) {\n apiOptions.nonce = await this.client.rpc.system.accountNextIndex(this.address);\n }\n\n if ('signer' in this.account) {\n return await this.tx.signAsync(this.address, { ...apiOptions, signer: this.account.signer });\n }\n\n return await this.tx.signAsync(this.account, apiOptions);\n }\n\n public async submitSigned(\n signedTx: SubmittableExtrinsic,\n options: ISubmittableOptions = {},\n ): Promise<TxResult> {\n const blockHeight = await this.client.rpc.chain.getHeader().then(h => h.number.toNumber());\n if (options.logResults) {\n this.logRequest();\n }\n const txHash = signedTx.hash.toHex();\n const result = new TxResult(this.client, {\n signedHash: txHash,\n method: signedTx.method.toHuman(),\n accountAddress: this.address,\n submittedTime: new Date(),\n submittedAtBlockNumber: blockHeight,\n nonce: signedTx.nonce.toNumber(),\n });\n result.txProgressCallback = options.txProgressCallback;\n if (options.disableAutomaticTxTracking !== true) {\n await signedTx.send(result.onSubscriptionResult.bind(result));\n } else {\n try {\n await signedTx.send();\n result.isBroadcast = true;\n } catch (error) {\n result.submissionError = error as Error;\n }\n }\n return result;\n }\n\n public async submit(options: ISubmittableOptions = {}): Promise<TxResult> {\n const signedTx = await this.sign(options);\n return await this.submitSigned(signedTx, options);\n }\n\n private logRequest() {\n let toHuman = (this.tx.toHuman() as any).method;\n const txString = [];\n let api = formatCall(toHuman);\n const args: any[] = [];\n if (api === 'proxy.proxy') {\n toHuman = toHuman.args.call;\n txString.push('Proxy');\n api = formatCall(toHuman);\n }\n if (api.startsWith('utility.batch')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n const calls = toHuman.args.calls.map(formatCall).join(', ');\n txString.push(`Batch[${calls}]`);\n } else {\n txString.push(api);\n args.push(toHuman.args);\n }\n args.unshift(txString.join('->'));\n console.log('Submitting transaction from %s:', this.address, ...args);\n }\n}\n\nfunction formatCall(call: any): string {\n return `${call.section}.${call.method}`;\n}\n","import { Keyring, KeyringPair, mnemonicGenerate } from './index';\n\nexport function keyringFromSuri(\n suri: string,\n cryptoType: 'sr25519' | 'ed25519' = 'sr25519',\n): KeyringPair {\n return new Keyring({ type: cryptoType }).createFromUri(suri);\n}\n\nexport function createKeyringPair(opts: { cryptoType?: 'sr25519' | 'ed25519' }): KeyringPair {\n const { cryptoType } = opts;\n const seed = mnemonicGenerate();\n return keyringFromSuri(seed, cryptoType);\n}\n","import { ArgonPrimitivesDigestsFrameInfo, getOfflineRegistry, Header } from './index';\n\nexport function getTickFromHeader(header: Header): number | undefined {\n for (const x of header.digest.logs) {\n if (x.isPreRuntime) {\n const [engineId, data] = x.asPreRuntime;\n if (engineId.toString() === 'aura') {\n return getOfflineRegistry().createType('u64', data).toNumber();\n }\n }\n }\n return undefined;\n}\n\nexport function getAuthorFromHeader(header: Header): string | undefined {\n for (const x of header.digest.logs) {\n if (x.isPreRuntime) {\n const [engineId, data] = x.asPreRuntime;\n if (engineId.toString() === 'pow_') {\n return getOfflineRegistry().createType('AccountId32', data).toHuman();\n }\n }\n }\n return undefined;\n}\n\nexport function getFrameInfoFromHeader(\n header: Header,\n): { isNewFrame: boolean; frameId: number; frameRewardTicksRemaining: number } | undefined {\n for (const x of header.digest.logs) {\n if (x.isConsensus) {\n const [engineId, data] = x.asConsensus;\n if (engineId.toString() === 'fram') {\n const decoded: ArgonPrimitivesDigestsFrameInfo = getOfflineRegistry().createType(\n 'ArgonPrimitivesDigestsFrameInfo',\n data,\n );\n return {\n isNewFrame: decoded.isNewFrame.toPrimitive(),\n frameId: decoded.frameId.toNumber(),\n frameRewardTicksRemaining: decoded.frameRewardTicksRemaining.toNumber(),\n };\n }\n }\n }\n return undefined;\n}\n","import {\n type ArgonClient,\n type ArgonPrimitivesVault,\n FIXED_U128_DECIMALS,\n formatArgons,\n fromFixedNumber,\n PERMILL_DECIMALS,\n toFixedNumber,\n TxSubmitter,\n} from './index';\nimport BigNumber from 'bignumber.js';\nimport bs58check from 'bs58check';\nimport { hexToU8a } from '@polkadot/util';\nimport { TxResult } from './TxResult';\nimport type { ISubmittableOptions, TxSigningAccount } from './TxSubmitter';\nimport { ApiDecoration } from '@polkadot/api/types';\nimport type {\n bool,\n BTreeMap,\n Bytes,\n Compact,\n Option,\n Struct,\n u128,\n u64,\n} from '@polkadot/types-codec';\nimport type { AccountId32 } from '@polkadot/types/interfaces/runtime';\nimport type { ITuple } from '@polkadot/types-codec/types';\nimport { ArgonPrimitivesVaultVaultTerms } from '@polkadot/types/lookup';\n\ninterface ArgonPrimitivesVaultV144 extends Struct {\n readonly operatorAccountId: AccountId32;\n readonly securitization: Compact<u128>;\n readonly argonsLocked: Compact<u128>;\n readonly argonsPendingActivation: Compact<u128>;\n readonly argonsScheduledForRelease: BTreeMap<u64, u128>;\n readonly securitizationRatio: Compact<u128>;\n readonly isClosed: bool;\n readonly terms: ArgonPrimitivesVaultVaultTerms;\n readonly pendingTerms: Option<ITuple<[u64, ArgonPrimitivesVaultVaultTerms]>>;\n readonly openedTick: Compact<u64>;\n}\n\nexport class Vault {\n public securitization!: bigint;\n public securitizationLocked!: bigint;\n public securitizationPendingActivation!: bigint;\n /**\n * Map of bitcoin height to amount of securitization released at that height\n */\n public securitizationReleaseSchedule: Map<number, bigint>;\n public terms!: ITerms;\n public operatorAccountId!: string;\n public isClosed!: boolean;\n public vaultId: number;\n public pendingTerms?: ITerms;\n public pendingTermsChangeTick?: number;\n public openedDate: Date;\n public openedTick: number;\n public securitizationRatio!: number;\n\n public lockedSatoshis!: number;\n public securitizedSatoshis!: number;\n public name?: string;\n public lastNameChangeTick?: number;\n public bitcoinLockDelegateAccount?: string;\n\n constructor(\n id: number,\n vault: ArgonPrimitivesVault,\n public tickDuration: number,\n ) {\n this.vaultId = id;\n this.openedTick = vault.openedTick.toNumber();\n this.openedDate = new Date(this.openedTick * this.tickDuration);\n this.securitizationReleaseSchedule = new Map();\n this.load(vault);\n }\n\n public load(vault: ArgonPrimitivesVault | ArgonPrimitivesVaultV144): void {\n this.securitization = vault.securitization.toBigInt();\n this.securitizationRatio = fromFixedNumber(\n vault.securitizationRatio.toBigInt(),\n FIXED_U128_DECIMALS,\n ).toNumber();\n this.securitizationReleaseSchedule.clear();\n let schedule: BTreeMap<u64, u128>;\n if ('argonsLocked' in vault) {\n // spec 143 compatibility - don't bother with ratio as it was forced to 1:1\n this.securitizationLocked = vault.argonsLocked.toBigInt();\n this.securitizationPendingActivation = vault.argonsPendingActivation.toBigInt();\n schedule = vault.argonsScheduledForRelease;\n } else {\n this.securitizationLocked = vault.securitizationLocked.toBigInt();\n this.securitizationPendingActivation = vault.securitizationPendingActivation.toBigInt();\n schedule = vault.securitizationReleaseSchedule;\n }\n if (schedule.size > 0) {\n for (const [bitcoinHeight, amount] of schedule.entries()) {\n this.securitizationReleaseSchedule.set(bitcoinHeight.toNumber(), amount.toBigInt());\n }\n }\n this.terms = {\n bitcoinAnnualPercentRate: fromFixedNumber(\n vault.terms.bitcoinAnnualPercentRate.toBigInt(),\n FIXED_U128_DECIMALS,\n ),\n bitcoinBaseFee: vault.terms.bitcoinBaseFee.toBigInt(),\n treasuryProfitSharing: fromFixedNumber(\n vault.terms.treasuryProfitSharing.toBigInt(),\n PERMILL_DECIMALS,\n ),\n };\n if ('lockedSatoshis' in vault) {\n this.lockedSatoshis = vault.lockedSatoshis.toNumber();\n this.securitizedSatoshis = vault.securitizedSatoshis.toNumber();\n } else {\n this.lockedSatoshis = 0;\n this.securitizedSatoshis = 0;\n }\n\n this.operatorAccountId = vault.operatorAccountId.toString();\n this.isClosed = vault.isClosed.valueOf();\n this.pendingTerms = undefined;\n this.pendingTermsChangeTick = undefined;\n this.name = undefined;\n this.lastNameChangeTick = undefined;\n this.bitcoinLockDelegateAccount = undefined;\n if (vault.pendingTerms.isSome) {\n const [tickApply, terms] = vault.pendingTerms.value;\n this.pendingTermsChangeTick = tickApply.toNumber();\n this.pendingTerms = {\n bitcoinAnnualPercentRate: fromFixedNumber(\n terms.bitcoinAnnualPercentRate.toBigInt(),\n FIXED_U128_DECIMALS,\n ),\n bitcoinBaseFee: terms.bitcoinBaseFee.toBigInt(),\n treasuryProfitSharing: fromFixedNumber(\n vault.terms.treasuryProfitSharing.toBigInt(),\n PERMILL_DECIMALS,\n ),\n };\n }\n if ('name' in vault && vault.name.isSome) {\n this.name = decodeVaultName(vault.name.unwrap());\n }\n if ('lastNameChangeTick' in vault && vault.lastNameChangeTick.isSome) {\n this.lastNameChangeTick = vault.lastNameChangeTick.unwrap().toNumber();\n }\n if ('bitcoinLockDelegateAccount' in vault && vault.bitcoinLockDelegateAccount.isSome) {\n this.bitcoinLockDelegateAccount = vault.bitcoinLockDelegateAccount.unwrap().toHuman();\n }\n }\n\n public availableBitcoinSpace(): bigint {\n const availableSecuritization = this.availableSecuritization();\n const microgons = BigNumber(availableSecuritization).div(this.securitizationRatioBN());\n return bigNumberToBigInt(microgons);\n }\n\n public availableSecuritization(): bigint {\n return this.securitization - this.securitizationLocked;\n }\n\n public getRelockCapacity(): bigint {\n return [...this.securitizationReleaseSchedule.values()].reduce((acc, val) => acc + val, 0n);\n }\n\n public securitizationRatioBN(): BigNumber {\n return new BigNumber(this.securitizationRatio);\n }\n\n public activatedSecuritization(): bigint {\n return this.securitizationLocked - this.securitizationPendingActivation;\n }\n\n /**\n * Returns the amount of securitization available to match per treasury pool\n */\n public activatedSecuritizationPerSlot(): bigint {\n const activated = this.activatedSecuritization();\n return activated / 10n;\n }\n\n public calculateBitcoinFee(amount: bigint): bigint {\n const fee = this.terms.bitcoinAnnualPercentRate\n .multipliedBy(Number(amount))\n .integerValue(BigNumber.ROUND_CEIL);\n return BigInt(fee.toString()) + this.terms.bitcoinBaseFee;\n }\n\n public static async get(\n client: ArgonClient | ApiDecoration<'promise'>,\n vaultId: number,\n tickDurationMillis?: number,\n ): Promise<Vault> {\n const rawVault = await client.query.vaults.vaultsById(vaultId);\n if (rawVault.isNone) {\n throw new Error(`Vault with id ${vaultId} not found`);\n }\n const tickDuration =\n tickDurationMillis ??\n (await client.query.ticks.genesisTicker().then(x => x.tickDurationMillis.toNumber()))!;\n return new Vault(vaultId, rawVault.unwrap(), tickDuration);\n }\n\n public static async create(\n client: ArgonClient,\n txSigner: TxSigningAccount,\n args: {\n securitization: bigint | number;\n securitizationRatio: number;\n annualPercentRate: number;\n baseFee: bigint | number;\n bitcoinXpub: string;\n name?: string;\n treasuryProfitSharing: number;\n doNotExceedBalance?: bigint;\n } & ISubmittableOptions,\n config: { tickDurationMillis?: number } = {},\n ): Promise<{ getVault(): Promise<Vault>; txResult: TxResult }> {\n const {\n securitization,\n securitizationRatio,\n annualPercentRate,\n baseFee,\n bitcoinXpub,\n name,\n tip,\n doNotExceedBalance,\n } = args;\n let xpubBytes = hexToU8a(bitcoinXpub);\n if (xpubBytes.length !== 78) {\n if (\n bitcoinXpub.startsWith('xpub') ||\n bitcoinXpub.startsWith('tpub') ||\n bitcoinXpub.startsWith('zpub')\n ) {\n const bytes = bs58check.decode(bitcoinXpub);\n if (bytes.length !== 78) {\n throw new Error('Invalid Bitcoin xpub key length, must be 78 bytes');\n }\n xpubBytes = bytes;\n }\n }\n if (securitizationRatio < 1 || securitizationRatio > 2) {\n throw new Error('Securitization ratio must be between 1 and 2');\n }\n const encodedName = encodeVaultName(name);\n const vaultParams = {\n terms: {\n // convert to fixed u128\n bitcoinAnnualPercentRate: toFixedNumber(annualPercentRate, FIXED_U128_DECIMALS),\n bitcoinBaseFee: BigInt(baseFee),\n treasuryProfitSharing: toFixedNumber(args.treasuryProfitSharing, PERMILL_DECIMALS),\n },\n securitizationRatio: toFixedNumber(securitizationRatio, FIXED_U128_DECIMALS),\n securitization: BigInt(securitization),\n bitcoinXpubkey: xpubBytes,\n name: encodedName,\n };\n const tx = new TxSubmitter(client, client.tx.vaults.create(vaultParams), txSigner);\n if (doNotExceedBalance) {\n const finalTip = tip ?? 0n;\n let txFee = await tx.feeEstimate(finalTip);\n while (txFee + finalTip + vaultParams.securitization > doNotExceedBalance) {\n vaultParams.securitization = doNotExceedBalance - txFee - finalTip;\n tx.tx = client.tx.vaults.create(vaultParams);\n txFee = await tx.feeEstimate(finalTip);\n }\n }\n const canAfford = await tx.canAfford({ tip, unavailableBalance: BigInt(securitization) });\n if (!canAfford.canAfford) {\n throw new Error(\n `Insufficient balance to create vault. Required: ${formatArgons(securitization)}, Available: ${formatArgons(canAfford.availableBalance)}`,\n );\n }\n\n const result = await tx.submit({\n ...args,\n useLatestNonce: true,\n });\n\n async function getVault(): Promise<Vault> {\n await result.waitForFinalizedBlock;\n let vaultId: number | undefined;\n for (const event of result.events) {\n if (client.events.vaults.VaultCreated.is(event)) {\n vaultId = event.data.vaultId.toNumber();\n break;\n }\n }\n if (vaultId === undefined) {\n throw new Error('Vault creation failed, no VaultCreated event found');\n }\n return Vault.get(client, vaultId, config.tickDurationMillis);\n }\n return { getVault, txResult: result };\n }\n\n public static async setName(\n client: ArgonClient,\n txSigner: TxSigningAccount,\n args: {\n name?: string | null;\n } & ISubmittableOptions,\n ): Promise<TxResult> {\n const tx = new TxSubmitter(\n client,\n client.tx.vaults.setName(encodeVaultName(args.name)),\n txSigner,\n );\n\n return tx.submit({\n ...args,\n useLatestNonce: true,\n });\n }\n}\n\nexport interface ITerms {\n readonly bitcoinAnnualPercentRate: BigNumber;\n readonly bitcoinBaseFee: bigint;\n readonly treasuryProfitSharing: BigNumber;\n}\nfunction bigNumberToBigInt(bn: BigNumber): bigint {\n return BigInt(bn.integerValue(BigNumber.ROUND_DOWN).toString());\n}\n\nfunction decodeVaultName(name: Bytes): string {\n return new TextDecoder().decode(Uint8Array.from(name));\n}\n\nfunction encodeVaultName(name?: string | null): string | null {\n if (name === undefined || name === null) {\n return null;\n }\n if (!/^[A-Z][A-Za-z0-9]{0,17}$/.test(name)) {\n throw new Error(\n 'Vault name must start with a capital letter and contain at most 18 alphanumeric characters',\n );\n }\n return name;\n}\n","import BigNumber from 'bignumber.js';\n\nexport function toFixedNumber(\n value: string | number | BigNumber, // accept string to avoid early precision loss\n decimals: number,\n): bigint {\n const factor = new BigNumber(10).pow(decimals);\n const bn = new BigNumber(value);\n // truncate toward 0; use ROUND_FLOOR if you really need floor for positives\n const int = bn.times(factor).integerValue(BigNumber.ROUND_DOWN);\n return BigInt(int.toFixed(0));\n}\n\nexport function fromFixedNumber(value: bigint, decimals: number = FIXED_U128_DECIMALS): BigNumber {\n const factor = new BigNumber(10).pow(decimals);\n const bn = new BigNumber(value.toString());\n return bn.div(factor);\n}\n\nexport const FIXED_U128_DECIMALS = 18;\nexport const PERMILL_DECIMALS = 6;\n","import {\n type ArgonClient,\n type ArgonPrimitivesBitcoinBitcoinNetwork,\n type ArgonPrimitivesBitcoinUtxoRef,\n formatArgons,\n MICROGONS_PER_ARGON,\n type SubmittableExtrinsic,\n TxSubmitter,\n type Vault,\n} from './index';\nimport { GenericEvent } from '@polkadot/types';\nimport type { ISubmittableOptions, TxSigningAccount } from './TxSubmitter';\nimport { TxResult } from './TxResult';\nimport { u8aToHex } from '@polkadot/util';\nimport { ApiDecoration } from '@polkadot/api/types';\nimport { PriceIndex } from './PriceIndex';\nimport { bool, Option, u128 } from '@polkadot/types-codec';\n\nexport const SATS_PER_BTC = 100_000_000n;\n\ntype IQueryableClient = ArgonClient | ApiDecoration<'promise'>;\ntype UtxoRefLike =\n | ArgonPrimitivesBitcoinUtxoRef\n | { txid: string | Uint8Array; outputIndex: number };\n\ntype UtxoRefOption = { unwrap: () => ArgonPrimitivesBitcoinUtxoRef };\n\nfunction normalizeUtxoRef(utxoRef: UtxoRefLike): {\n txid: string;\n outputIndex: number;\n} {\n let txid = utxoRef.txid;\n if (typeof txid === 'object' && 'toHex' in txid) {\n txid = txid.toHex();\n } else if (typeof txid !== 'string') {\n txid = u8aToHex(txid);\n }\n let outputIndex = utxoRef.outputIndex;\n if (typeof outputIndex !== 'number') {\n outputIndex = outputIndex.toNumber();\n }\n return { txid, outputIndex };\n}\n\nexport class BitcoinLock implements IBitcoinLock {\n public utxoId: number;\n public p2wshScriptHashHex: string;\n public vaultId: number;\n public lockedMarketRate: bigint;\n public liquidityPromised: bigint;\n public ownerAccount: string;\n public satoshis: bigint;\n public utxoSatoshis?: bigint;\n public vaultPubkey: string;\n public securityFees: bigint;\n public vaultClaimPubkey: string;\n public ownerPubkey: string;\n public vaultXpubSources: {\n parentFingerprint: Uint8Array;\n cosignHdIndex: number;\n claimHdIndex: number;\n };\n public vaultClaimHeight: number;\n public openClaimHeight: number;\n public createdAtHeight: number;\n public isFunded: boolean;\n public createdAtArgonBlock: number;\n public fundHoldExtensionsByBitcoinExpirationHeight: Record<number, bigint>;\n\n constructor(data: IBitcoinLock) {\n this.utxoId = data.utxoId;\n this.p2wshScriptHashHex = data.p2wshScriptHashHex;\n this.vaultId = data.vaultId;\n this.lockedMarketRate = data.lockedMarketRate;\n this.liquidityPromised = data.liquidityPromised;\n this.ownerAccount = data.ownerAccount;\n this.satoshis = data.satoshis;\n this.utxoSatoshis = data.utxoSatoshis;\n this.vaultPubkey = data.vaultPubkey;\n this.securityFees = data.securityFees;\n this.vaultClaimPubkey = data.vaultClaimPubkey;\n this.ownerPubkey = data.ownerPubkey;\n this.vaultXpubSources = data.vaultXpubSources;\n this.vaultClaimHeight = data.vaultClaimHeight;\n this.openClaimHeight = data.openClaimHeight;\n this.createdAtHeight = data.createdAtHeight;\n this.isFunded = data.isFunded;\n this.fundHoldExtensionsByBitcoinExpirationHeight =\n data.fundHoldExtensionsByBitcoinExpirationHeight;\n this.createdAtArgonBlock = data.createdAtArgonBlock;\n }\n\n /**\n * Gets the UTXO reference by ID.\n * @param client - client at the block height to query the UTXO reference at a specific point in time.\n * @return An object containing the transaction ID and output index, or undefined if not found.\n * @return.txid - The Bitcoin transaction ID of the UTXO.\n * @return.vout - The output index of the UTXO in the transaction.\n * @return.bitcoinTxid - The Bitcoin transaction ID of the UTXO formatted in little endian\n */\n public async getFundingUtxoRef(\n client: IQueryableClient,\n ): Promise<{ txid: string; vout: number; bitcoinTxid: string } | undefined> {\n let refRaw: Option<ArgonPrimitivesBitcoinUtxoRef>;\n if (\n 'utxoIdToRef' in client.query.bitcoinUtxos &&\n typeof client.query.bitcoinUtxos.utxoIdToRef === 'function'\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n refRaw = await client.query.bitcoinUtxos.utxoIdToRef(this.utxoId);\n } else {\n refRaw = await client.query.bitcoinUtxos.utxoIdToFundingUtxoRef(this.utxoId);\n }\n if (!refRaw || refRaw.isNone) {\n return;\n }\n const ref = refRaw.unwrap();\n\n const txid = u8aToHex(ref.txid);\n const bitcoinTxid = u8aToHex(ref.txid.slice().reverse());\n const vout = ref.outputIndex.toNumber();\n return { txid, vout, bitcoinTxid };\n }\n\n public async findPendingMints(client: IQueryableClient): Promise<bigint[]> {\n const pendingMint = await client.query.mint.pendingMintUtxos();\n const mintsPending: bigint[] = [];\n for (const [utxoIdRaw, _accountId, mintAmountRaw] of pendingMint) {\n if (utxoIdRaw.toNumber() === this.utxoId) {\n mintsPending.push(mintAmountRaw.toBigInt());\n }\n }\n return mintsPending;\n }\n\n public async getRatchetPrice(\n client: IQueryableClient,\n priceIndex: PriceIndex,\n vault: Vault,\n ): Promise<{ burnAmount: bigint; ratchetingFee: bigint; marketRate: bigint }> {\n const { createdAtHeight, vaultClaimHeight, lockedMarketRate, satoshis } = this;\n const marketRate = await BitcoinLock.getMarketRate(priceIndex, BigInt(satoshis));\n\n let ratchetingFee = vault.terms.bitcoinBaseFee;\n let burnAmount = 0n;\n // ratchet up\n if (marketRate > lockedMarketRate) {\n const lockFee = vault.calculateBitcoinFee(marketRate);\n const currentBitcoinHeight = await client.query.bitcoinUtxos\n .confirmedBitcoinBlockTip()\n .then(x => x.unwrap().blockHeight.toNumber());\n const blockLength = vaultClaimHeight - createdAtHeight;\n const elapsed = (currentBitcoinHeight - createdAtHeight) / blockLength;\n const remainingDuration = 1 - elapsed;\n ratchetingFee = BigInt(remainingDuration * Number(lockFee));\n } else {\n burnAmount = await this.releasePrice(priceIndex);\n }\n\n return {\n ratchetingFee,\n burnAmount,\n marketRate,\n };\n }\n\n public async ratchet(\n args: {\n client: ArgonClient;\n priceIndex: PriceIndex;\n txSigner: TxSigningAccount;\n vault: Vault;\n microgonsPerBtc?: bigint;\n } & ISubmittableOptions,\n ): Promise<{\n txResult: TxResult;\n getRatchetResult: () => Promise<{\n securityFee: bigint;\n txFee: bigint;\n newLockedMarketRate: bigint;\n liquidityPromised: bigint;\n pendingMint: bigint;\n burned: bigint;\n blockHeight: number;\n bitcoinBlockHeight: number;\n }>;\n }> {\n const { priceIndex, txSigner, tip = 0n, vault, client, microgonsPerBtc = null } = args;\n\n const ratchetPrice = await this.getRatchetPrice(client, priceIndex, vault);\n const tx = client.tx.bitcoinLocks.ratchet(this.utxoId, { V1: { microgonsPerBtc } });\n const txSubmitter = new TxSubmitter(client, tx, txSigner);\n const canAfford = await txSubmitter.canAfford({\n tip,\n unavailableBalance: BigInt(ratchetPrice.burnAmount + ratchetPrice.ratchetingFee),\n });\n if (!canAfford.canAfford) {\n throw new Error(\n `Insufficient funds to ratchet lock. Available: ${formatArgons(canAfford.availableBalance)}, Required: ${formatArgons(\n ratchetPrice.burnAmount + ratchetPrice.ratchetingFee,\n )}`,\n );\n }\n\n const txResult = await txSubmitter.submit(args);\n const getRatchetResult = async () => {\n const blockHash = await txResult.waitForFinalizedBlock;\n const ratchetEvent = txResult.events.find(x =>\n client.events.bitcoinLocks.BitcoinLockRatcheted.is(x),\n );\n if (!ratchetEvent) {\n throw new Error(`Ratchet event not found in transaction events`);\n }\n const api = await client.at(blockHash);\n const bitcoinBlockHeight = await api.query.bitcoinUtxos\n .confirmedBitcoinBlockTip()\n .then(x => x.unwrap().blockHeight.toNumber());\n const {\n amountBurned,\n liquidityPromised: liquidityPromisedRaw,\n newLockedMarketRate,\n originalMarketRate,\n securityFee,\n } = ratchetEvent.data;\n const liquidityPromised = liquidityPromisedRaw.toBigInt();\n let mintAmount = liquidityPromised;\n if (liquidityPromised > originalMarketRate.toBigInt()) {\n mintAmount -= originalMarketRate.toBigInt();\n }\n return {\n txFee: txResult.finalFee ?? 0n,\n blockHeight: txResult.blockNumber!,\n bitcoinBlockHeight,\n pendingMint: mintAmount,\n liquidityPromised,\n newLockedMarketRate: newLockedMarketRate.toBigInt(),\n burned: amountBurned.toBigInt(),\n securityFee: securityFee.toBigInt(),\n };\n };\n return {\n txResult,\n getRatchetResult,\n };\n }\n\n public async releasePrice(priceIndex: PriceIndex): Promise<bigint> {\n return await BitcoinLock.getRedemptionRate(priceIndex, this);\n }\n\n public async requestRelease(\n args: {\n client: ArgonClient;\n priceIndex: PriceIndex;\n releaseRequest: IReleaseRequest;\n txSigner: TxSigningAccount;\n } & ISubmittableOptions,\n ): Promise<TxResult> {\n const {\n priceIndex,\n releaseRequest: { bitcoinNetworkFee, toScriptPubkey },\n txSigner,\n tip = 0n,\n client,\n } = args;\n\n if (!toScriptPubkey.startsWith('0x')) {\n throw new Error('toScriptPubkey must be a hex string starting with 0x');\n }\n\n const submitter = new TxSubmitter(\n client,\n client.tx.bitcoinLocks.requestRelease(this.utxoId, toScriptPubkey, bitcoinNetworkFee),\n txSigner,\n );\n\n const redemptionPrice = await BitcoinLock.getRedemptionRate(priceIndex, this);\n\n const canAfford = await submitter.canAfford({\n tip,\n unavailableBalance: BigInt(redemptionPrice),\n });\n\n if (!canAfford.canAfford) {\n throw new Error(\n `Insufficient funds to release lock. Available: ${formatArgons(canAfford.availableBalance)}, Required: ${formatArgons(redemptionPrice + canAfford.txFee + tip)}`,\n );\n }\n return submitter.submit({\n logResults: true,\n ...args,\n });\n }\n\n public async getReleaseRequest(\n client: IQueryableClient,\n ): Promise<IReleaseRequestDetails | undefined> {\n const requestMaybe = await client.query.bitcoinLocks.lockReleaseRequestsByUtxoId(this.utxoId);\n if (!requestMaybe.isSome) {\n return undefined;\n }\n const request = requestMaybe.unwrap();\n return {\n toScriptPubkey: request.toScriptPubkey.toHex(),\n bitcoinNetworkFee: request.bitcoinNetworkFee.toBigInt(),\n dueFrame: request.cosignDueFrame.toNumber(),\n vaultId: request.vaultId.toNumber(),\n redemptionPrice: request.redemptionPrice.toBigInt(),\n };\n }\n\n /**\n * Finds the cosign signature for a vault lock by UTXO ID. Optionally waits for the signature\n * @param client - The Argon client with rpc access\n * @param finalizedStateOnly - If true, only checks finalized state\n * @param waitForSignatureMillis - Optional timeout in milliseconds to wait for the signature. If -1, waits indefinitely.\n */\n public async findVaultCosignSignature(\n client: ArgonClient,\n finalizedStateOnly = false,\n waitForSignatureMillis?: number,\n ): Promise<{ blockHeight: number; signature: Uint8Array } | undefined> {\n let queryClient = client as IQueryableClient;\n if (finalizedStateOnly) {\n const finalizedHead = await client.rpc.chain.getFinalizedHead();\n queryClient = await client.at(finalizedHead);\n }\n const releaseHeight = await queryClient.query.bitcoinLocks.lockReleaseCosignHeightById(\n this.utxoId,\n );\n if (releaseHeight.isSome) {\n const releaseHeightValue = releaseHeight.unwrap().toNumber();\n const signature = await this.getVaultCosignSignature(client, releaseHeightValue);\n if (signature) {\n return { blockHeight: releaseHeightValue, signature };\n }\n }\n\n if (!waitForSignatureMillis) {\n return undefined;\n }\n\n return await new Promise(async (resolve, reject) => {\n let timeout: NodeJS.Timeout | undefined;\n const unsub = await client.rpc.chain.subscribeNewHeads(header => {\n const atHeight = header.number.toNumber();\n this.getVaultCosignSignature(client, atHeight)\n .then(signature => {\n if (signature) {\n unsub?.();\n clearTimeout(timeout);\n resolve({ signature, blockHeight: atHeight });\n }\n })\n .catch(err => {\n console.error(`Error checking for cosign signature at height ${atHeight}:`, err);\n });\n });\n if (waitForSignatureMillis !== -1) {\n timeout = setTimeout(() => {\n unsub?.();\n reject(new Error(`Timeout waiting for cosign signature for UTXO ID ${this.utxoId}`));\n }, waitForSignatureMillis);\n }\n });\n }\n\n public async getVaultCosignSignature(\n client: ArgonClient,\n atHeight: number,\n ): Promise<Uint8Array | undefined> {\n const blockHash = await BitcoinLock.blockHashAtHeight(client, atHeight);\n if (!blockHash) {\n console.warn(`Block hash not found for height ${atHeight}`);\n return undefined;\n }\n\n const blockEvents = await client.at(blockHash).then(api => api.query.system.events());\n for (const event of blockEvents) {\n if (client.events.bitcoinLocks.BitcoinUtxoCosigned.is(event.event)) {\n const { utxoId: id, signature } = event.event.data;\n if (id.toNumber() === this.utxoId) {\n return new Uint8Array(signature);\n }\n }\n }\n return undefined;\n }\n\n public static async getUtxoIdFromEvents(client: IQueryableClient, events: GenericEvent[]) {\n for (const event of events) {\n if (client.events.bitcoinLocks.BitcoinLockCreated.is(event)) {\n return event.data.utxoId.toNumber();\n }\n }\n return undefined;\n }\n\n public static async getMarketRate(\n priceIndex: PriceIndex,\n satoshis: number | bigint,\n ): Promise<bigint> {\n return priceIndex.getBtcMicrogonPrice(satoshis);\n }\n\n public static async getRedemptionRate(\n priceIndex: PriceIndex,\n details: { satoshis: bigint; lockedMarketRate?: bigint },\n ): Promise<bigint> {\n const { satoshis, lockedMarketRate } = details;\n // scale inputs\n const satsPerArgon = Number(SATS_PER_BTC) / MICROGONS_PER_ARGON;\n let price = Number(priceIndex.btcUsdPrice);\n price = (price / satsPerArgon) * Number(satoshis);\n\n if (lockedMarketRate !== undefined && lockedMarketRate < price) {\n price = Number(lockedMarketRate);\n }\n\n const r = Number(priceIndex.rValue);\n\n let multiplier: number;\n\n if (r >= 1) {\n // Case 1: no penalty\n multiplier = 1;\n } else if (r >= 0.9) {\n // Case 2: quadratic curve\n // Formula: 20r² - 38r + 19\n multiplier = 20 * (r * r) - 38 * r + 19;\n } else if (r >= 0.01) {\n // Case 3: rational linear formula\n // Formula: (0.5618r + 0.3944) / r\n multiplier = (0.5618 * r + 0.3944) / r;\n } else {\n // Case 4: extreme deviation\n // Formula: (1 / r) * (0.576r + 0.4)\n multiplier = (1 / r) * (0.576 * r + 0.4);\n }\n\n return BigInt(Math.floor(price * multiplier));\n }\n\n public static async getConfig(client: IQueryableClient): Promise<IBitcoinLockConfig> {\n const bitcoinNetwork = await client.query.bitcoinUtxos.bitcoinNetwork();\n return {\n lockReleaseCosignDeadlineFrames:\n client.consts.bitcoinLocks.lockReleaseCosignDeadlineFrames.toNumber(),\n pendingConfirmationExpirationBlocks:\n client.consts.bitcoinUtxos.maxPendingConfirmationBlocks.toNumber(),\n tickDurationMillis: await client.query.ticks\n .genesisTicker()\n .then(x => x.tickDurationMillis.toNumber()),\n bitcoinNetwork,\n lockSatoshiAllowedVariance:\n client.consts.bitcoinUtxos.maximumSatoshiThresholdFromExpected?.toNumber() ?? 10_000,\n };\n }\n\n public static async getBitcoinConfirmedBlockHeight(client: IQueryableClient): Promise<number> {\n return await client.query.bitcoinUtxos\n .confirmedBitcoinBlockTip()\n .then(x => x.value?.blockHeight.toNumber() ?? 0);\n }\n\n public static async submitVaultSignature(\n args: {\n client: ArgonClient;\n utxoId: number;\n vaultSignature: Uint8Array;\n txSigner: TxSigningAccount;\n } & ISubmittableOptions,\n ): Promise<TxResult> {\n const { utxoId, vaultSignature, txSigner, client } = args;\n if (!vaultSignature || vaultSignature.byteLength < 70 || vaultSignature.byteLength > 73) {\n throw new Error(\n `Invalid vault signature length: ${vaultSignature.byteLength}. Must be 70-73 bytes.`,\n );\n }\n const signature = u8aToHex(vaultSignature);\n const tx = client.tx.bitcoinLocks.cosignRelease(utxoId, signature);\n const submitter = new TxSubmitter(client, tx, txSigner);\n\n return await submitter.submit(args);\n }\n\n public static async createIncreaseSecuritizationTx(\n args: {\n utxoId: number;\n client: ArgonClient;\n newSatoshis: bigint;\n } & ISubmittableOptions,\n ): Promise<SubmittableExtrinsic | undefined> {\n const { client, newSatoshis, utxoId } = args;\n const txBuilder = client.tx.bitcoinLocks.increaseSecuritization;\n if (!txBuilder?.meta) {\n return undefined;\n }\n return txBuilder(utxoId, newSatoshis);\n }\n\n public static async createFundWithUtxoCandidateTx(\n args: {\n client: ArgonClient;\n utxoId: number;\n utxoRef: UtxoRefLike;\n } & ISubmittableOptions,\n ): Promise<SubmittableExtrinsic | undefined> {\n const { client, utxoId, utxoRef } = args;\n const txBuilder = client.tx.bitcoinUtxos?.fundWithUtxoCandidate;\n if (!txBuilder?.meta) {\n return undefined;\n }\n return txBuilder(utxoId, normalizeUtxoRef(utxoRef));\n }\n\n public static async createOrphanedUtxoReleaseRequestTx(\n args: {\n client: ArgonClient;\n utxoRef: UtxoRefLike;\n releaseRequest: IReleaseRequest;\n } & ISubmittableOptions,\n ): Promise<SubmittableExtrinsic | undefined> {\n const {\n client,\n utxoRef,\n releaseRequest: { bitcoinNetworkFee, toScriptPubkey },\n } = args;\n\n if (!toScriptPubkey.startsWith('0x')) {\n throw new Error('toScriptPubkey must be a hex string starting with 0x');\n }\n\n const txBuilder = client.tx.bitcoinLocks.requestOrphanedUtxoRelease;\n if (!txBuilder?.meta) {\n return undefined;\n }\n\n return txBuilder(normalizeUtxoRef(utxoRef), toScriptPubkey, bitcoinNetworkFee);\n }\n\n public static async createOrphanedUtxoCosignTx(\n args: {\n client: ArgonClient;\n orphanOwner: string;\n utxoRef: UtxoRefLike;\n vaultSignature: Uint8Array;\n } & ISubmittableOptions,\n ): Promise<SubmittableExtrinsic | undefined> {\n const { client, orphanOwner, utxoRef, vaultSignature } = args;\n if (!vaultSignature || vaultSignature.byteLength < 70 || vaultSignature.byteLength > 73) {\n throw new Error(\n `Invalid vault signature length: ${vaultSignature.byteLength}. Must be 70-73 bytes.`,\n );\n }\n if (!client.tx.bitcoinLocks.cosignOrphanedUtxoRelease?.meta) {\n return undefined;\n }\n const signature = u8aToHex(vaultSignature);\n return client.tx.bitcoinLocks.cosignOrphanedUtxoRelease(\n orphanOwner,\n normalizeUtxoRef(utxoRef),\n signature,\n );\n }\n\n public static async get(\n client: IQueryableClient,\n utxoId: number,\n ): Promise<BitcoinLock | undefined> {\n const utxoRaw = await client.query.bitcoinLocks.locksByUtxoId(utxoId);\n if (!utxoRaw.isSome) {\n return;\n }\n const utxo = utxoRaw.unwrap();\n const p2shBytesPrefix = '0020';\n const wscriptHash = utxo.utxoScriptPubkey.asP2wsh.wscriptHash.toHex().replace('0x', '');\n const p2wshScriptHashHex = `0x${p2shBytesPrefix}${wscriptHash}`;\n const vaultId = utxo.vaultId.toNumber();\n const lockedMarketRate =\n utxo.lockedMarketRate?.toBigInt() ??\n (utxo as { peggedPrice?: u128 }).peggedPrice?.toBigInt() ??\n 0n;\n const liquidityPromised = utxo.liquidityPromised.toBigInt();\n const ownerAccount = utxo.ownerAccount.toHuman();\n const satoshis = utxo.satoshis.toBigInt();\n const utxoSatoshis = utxo.utxoSatoshis?.isSome ? utxo.utxoSatoshis.value.toBigInt() : undefined;\n const vaultPubkey = utxo.vaultPubkey.toHex();\n const vaultClaimPubkey = utxo.vaultClaimPubkey.toHex();\n const ownerPubkey = utxo.ownerPubkey.toHex();\n const [fingerprint, cosign_hd_index, claim_hd_index] = utxo.vaultXpubSources;\n const vaultXpubSources = {\n parentFingerprint: new Uint8Array(fingerprint),\n cosignHdIndex: cosign_hd_index.toNumber(),\n claimHdIndex: claim_hd_index.toNumber(),\n };\n\n const createdAtArgonBlock = utxo.createdAtArgonBlock?.toNumber() ?? 0;\n const securityFees = utxo.securityFees.toBigInt();\n const vaultClaimHeight = utxo.vaultClaimHeight.toNumber();\n const openClaimHeight = utxo.openClaimHeight.toNumber();\n const createdAtHeight = utxo.createdAtHeight.toNumber();\n const isFunded = ((utxo as { isVerified?: bool })?.isVerified ?? utxo.isFunded).toJSON();\n const fundHoldExtensionsByBitcoinExpirationHeight = Object.fromEntries(\n [...utxo.fundHoldExtensions.entries()].map(([x, y]) => [x.toNumber(), y.toBigInt()]),\n );\n return new BitcoinLock({\n utxoId,\n p2wshScriptHashHex,\n vaultId,\n lockedMarketRate,\n liquidityPromised,\n ownerAccount,\n satoshis,\n utxoSatoshis,\n vaultPubkey,\n vaultClaimPubkey,\n ownerPubkey,\n vaultXpubSources,\n vaultClaimHeight,\n openClaimHeight,\n createdAtHeight,\n securityFees,\n isFunded,\n fundHoldExtensionsByBitcoinExpirationHeight,\n createdAtArgonBlock,\n });\n }\n\n public static async blockHashAtHeight(\n client: ArgonClient,\n atHeight: number,\n ): Promise<string | undefined> {\n for (let i = 0; i < 10; i++) {\n const currentHeight = await client.query.system.number().then(x => x.toNumber());\n if (atHeight > currentHeight) {\n console.warn(\n `Requested block height ${atHeight} is greater than current height ${currentHeight}. Retrying...`,\n );\n await new Promise(resolve => setTimeout(resolve, 1000)); // wait 1 second before retrying\n continue;\n }\n const hash = await client.rpc.chain.getBlockHash(atHeight).then(x => x.toHex());\n if (hash === '0x0000000000000000000000000000000000000000000000000000000000000000') {\n console.warn(`Block hash not found for height ${atHeight}. Retrying...`);\n await new Promise(resolve => setTimeout(resolve, 1000)); // wait 1 second before retrying\n continue;\n }\n return hash;\n }\n return undefined;\n }\n\n public static async createInitializeTx(args: {\n client: ArgonClient;\n vault: Vault;\n priceIndex: PriceIndex;\n ownerBitcoinPubkey: Uint8Array;\n satoshis: bigint;\n txSigner: TxSigningAccount;\n reducedBalanceBy?: bigint;\n microgonsPerBtc?: bigint;\n tip?: bigint;\n initializeForAccountId?: string;\n }) {\n const {\n vault,\n priceIndex,\n txSigner,\n satoshis,\n tip = 0n,\n ownerBitcoinPubkey,\n client,\n microgonsPerBtc = null,\n initializeForAccountId,\n } = args;\n if (ownerBitcoinPubkey.length !== 33) {\n throw new Error(\n `Invalid Bitcoin key length: ${ownerBitcoinPubkey.length}. Must be a compressed pukey (33 bytes).`,\n );\n }\n\n let tx: SubmittableExtrinsic;\n if (initializeForAccountId) {\n tx = client.tx.bitcoinLocks.initializeFor(\n initializeForAccountId,\n vault.vaultId,\n satoshis,\n ownerBitcoinPubkey,\n {\n V1: {\n microgonsPerBtc,\n },\n },\n );\n } else {\n tx = client.tx.bitcoinLocks.initialize(vault.vaultId, satoshis, ownerBitcoinPubkey, {\n V1: {\n microgonsPerBtc,\n },\n });\n }\n const submitter = new TxSubmitter(client, tx, txSigner);\n const marketPrice = await this.getMarketRate(priceIndex, satoshis);\n const isVaultOwner = txSigner.address === vault.operatorAccountId;\n const securityFee = isVaultOwner ? 0n : vault.calculateBitcoinFee(marketPrice);\n\n const { canAfford, availableBalance, txFee } = await submitter.canAfford({\n tip,\n unavailableBalance: securityFee + (args.reducedBalanceBy ?? 0n),\n includeExistentialDeposit: true,\n });\n return {\n tx,\n securityFee,\n txFee,\n canAfford,\n availableBalance,\n txFeePlusTip: txFee + tip,\n };\n }\n\n public static async initialize(\n args: {\n client: ArgonClient;\n vault: Vault;\n priceIndex: PriceIndex;\n ownerBitcoinPubkey: Uint8Array;\n txSigner: TxSigningAccount;\n satoshis: bigint;\n } & ISubmittableOptions,\n ): Promise<{\n getLock(): Promise<{ lock: BitcoinLock; createdAtHeight: number }>;\n txResult: TxResult;\n securityFee: bigint;\n }> {\n const { txSigner, client } = args;\n\n const { tx, securityFee, canAfford, txFeePlusTip } = await this.createInitializeTx(args);\n if (!canAfford) {\n throw new Error(\n `Insufficient funds to initialize bitcoin lock. Required security fee: ${formatArgons(securityFee)}, Tx fee plus tip: ${formatArgons(txFeePlusTip)}`,\n );\n }\n const submitter = new TxSubmitter(client, tx, txSigner);\n const txResult = await submitter.submit({ logResults: true, ...args });\n\n return {\n getLock: () => this.getBitcoinLockFromTxResult(client, txResult),\n txResult,\n securityFee,\n };\n }\n\n public static async getBitcoinLockFromTxResult(\n client: IQueryableClient,\n txResult: TxResult,\n ): Promise<{\n lock: BitcoinLock;\n createdAtHeight: number;\n txResult: TxResult;\n }> {\n await txResult.waitForFinalizedBlock;\n const blockHeight = txResult.blockNumber!;\n const utxoId = (await this.getUtxoIdFromEvents(client, txResult.events)) ?? 0;\n if (utxoId === 0) {\n throw new Error('Bitcoin lock creation failed, no UTXO ID found in transaction events');\n }\n const lock = await this.get(client, utxoId);\n if (!lock) {\n throw new Error(`Lock with ID ${utxoId} not found after initialization`);\n }\n return { lock, createdAtHeight: blockHeight, txResult };\n }\n\n public static async requiredSatoshisForArgonLiquidity(\n priceIndex: PriceIndex,\n argonAmount: bigint,\n ): Promise<bigint> {\n /**\n * If 1_000_000 microgons are available, and the market rate is 100 microgons per satoshi, then\n * 1_000_000 / 100 = 10_000 satoshis needed\n */\n const marketRatePerBitcoin = priceIndex.getBtcMicrogonPrice(SATS_PER_BTC);\n return (argonAmount * SATS_PER_BTC) / marketRatePerBitcoin;\n }\n}\n\nexport interface IBitcoinLockConfig {\n lockReleaseCosignDeadlineFrames: number;\n pendingConfirmationExpirationBlocks: number;\n tickDurationMillis: number;\n bitcoinNetwork: ArgonPrimitivesBitcoinBitcoinNetwork;\n lockSatoshiAllowedVariance: number;\n}\nexport interface IReleaseRequest {\n toScriptPubkey: string;\n bitcoinNetworkFee: bigint;\n}\n\nexport interface IReleaseRequestDetails extends IReleaseRequest {\n dueFrame: number;\n vaultId: number;\n redemptionPrice: bigint;\n}\n\nexport interface IBitcoinLock {\n utxoId: number;\n p2wshScriptHashHex: string;\n vaultId: number;\n lockedMarketRate: bigint;\n liquidityPromised: bigint;\n ownerAccount: string;\n satoshis: bigint;\n utxoSatoshis?: bigint;\n vaultPubkey: string;\n securityFees: bigint;\n vaultClaimPubkey: string;\n ownerPubkey: string;\n vaultXpubSources: {\n parentFingerprint: Uint8Array;\n cosignHdIndex: number;\n claimHdIndex: number;\n };\n vaultClaimHeight: number;\n openClaimHeight: number;\n createdAtHeight: number;\n isFunded: boolean;\n createdAtArgonBlock: number;\n fundHoldExtensionsByBitcoinExpirationHeight: Record<number, bigint>;\n}\n","import {\n ArgonClient,\n FIXED_U128_DECIMALS,\n fromFixedNumber,\n MICROGONS_PER_ARGON,\n SATS_PER_BTC,\n} from './index';\nimport BigNumber from 'bignumber.js';\nimport { ApiDecoration } from '@polkadot/api/types';\n\nexport class PriceIndex {\n btcUsdPrice?: BigNumber;\n argonotUsdPrice?: BigNumber;\n argonUsdPrice?: BigNumber;\n argonUsdTargetPrice?: BigNumber;\n argonTimeWeightedAverageLiquidity?: BigNumber;\n lastUpdatedTick?: number;\n\n async load(client: ArgonClient | ApiDecoration<'promise'>): Promise<this> {\n const current = await client.query.priceIndex.current();\n if (!current.isSome) {\n this.argonUsdPrice = undefined;\n this.argonotUsdPrice = undefined;\n this.btcUsdPrice = undefined;\n this.argonUsdTargetPrice = undefined;\n this.argonTimeWeightedAverageLiquidity = undefined;\n this.lastUpdatedTick = undefined;\n return this;\n }\n const value = current.unwrap();\n\n this.btcUsdPrice = fromFixedNumber(value.btcUsdPrice.toBigInt(), FIXED_U128_DECIMALS);\n this.argonotUsdPrice = fromFixedNumber(value.argonotUsdPrice.toBigInt(), FIXED_U128_DECIMALS);\n this.argonUsdPrice = fromFixedNumber(value.argonUsdPrice.toBigInt(), FIXED_U128_DECIMALS);\n this.argonUsdTargetPrice = fromFixedNumber(\n value.argonUsdTargetPrice.toBigInt(),\n FIXED_U128_DECIMALS,\n );\n this.argonTimeWeightedAverageLiquidity = fromFixedNumber(\n value.argonTimeWeightedAverageLiquidity.toBigInt(),\n FIXED_U128_DECIMALS,\n );\n this.lastUpdatedTick = value.tick.toNumber();\n return this;\n }\n\n getBtcMicrogonPrice(satoshis: bigint | number): bigint {\n if (this.btcUsdPrice === undefined || this.argonUsdPrice === undefined) {\n throw new Error('PriceIndex not loaded');\n }\n\n const satoshiCents = this.btcUsdPrice.multipliedBy(satoshis).dividedBy(SATS_PER_BTC);\n\n const microgons = satoshiCents.multipliedBy(MICROGONS_PER_ARGON).dividedBy(this.argonUsdPrice);\n return BigInt(microgons.integerValue(BigNumber.ROUND_DOWN).toString());\n }\n\n get rValue(): BigNumber {\n if (this.argonUsdTargetPrice === undefined || this.argonUsdPrice === undefined) {\n throw new Error('PriceIndex not loaded');\n }\n return this.argonUsdPrice.div(this.argonUsdTargetPrice);\n }\n\n get argonCpi(): BigNumber {\n if (this.argonUsdTargetPrice === undefined || this.argonUsdPrice === undefined) {\n throw new Error('PriceIndex not loaded');\n }\n const ratio = this.argonUsdTargetPrice.div(this.argonUsdPrice);\n return ratio.minus(1);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/mainchain/mainchain/client/nodejs/lib/index.cjs","../src/index.ts","../metadata.json","../runtime_version.json","../genesis.json","../src/WageProtector.ts","../src/utils.ts","../src/TxResult.ts","../src/TxSubmitter.ts","../src/keyringUtils.ts","../src/header.ts","../src/Vault.ts","../src/convert.ts","../src/BitcoinLock.ts","../src/PriceIndex.ts","../../../chains/ethereum/contracts/artifacts/contracts/MintingGateway.sol/MintingGateway.json","../../../chains/ethereum/contracts/index.ts","../src/EthereumProof.ts","../src/EthereumBeaconSync.ts"],"names":["result","BigNumber","SATS_PER_BTC"],"mappings":"AAAA;ACIA,oCAA8D;AAC9D;AACE;AACA;AACA;AACA;AACA;AAAA,mDACK;AAKP,wCAAuC;ADNvC;AACA;AERE,IAAA,OAAA,EAAU,079VAAA;AFUZ;AACA;AGVE,IAAA,YAAA,EAAe,GAAA;AHYjB;AACA;AIjBA,IAAA,gBAAA,EAAA;AAAA,EACE,OAAA,EAAW,oEAAA;AAAA,EACX,OAAA,EAAW;AACb,CAAA;AJmBA;AACA;AKNO,IAAM,cAAA,EAAN,MAAM,eAAc;AAAA,EACzB,WAAA,CAAmB,SAAA,EAA8B;AAA9B,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AAAA,EAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3C,gBAAA,CAAiB,QAAA,EAA0B;AAChD,IAAA,OAAQ,SAAA,EAAW,IAAA,CAAK,SAAA,CAAU,oBAAA,EAAuB,IAAA,CAAK,SAAA,CAAU,aAAA;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAA,MAAoB,SAAA,CAClB,MAAA,EACA,QAAA,EAGC;AACD,IAAA,MAAM,YAAA,EAAc,MAAM,MAAA,CAAO,KAAA,CAAM,UAAA,CAAW,OAAA,CAAQ,MAAA,CAAM,GAAA,EAAA,GAAO;AACrE,MAAA,GAAA,CAAI,GAAA,CAAI,MAAA,EAAQ;AACd,QAAA,MAAA;AAAA,MACF;AACA,MAAA,MAAM,eAAA,EAAiB,MAAM,MAAA,CAAO,GAAA,CAAI,KAAA,CAAM,gBAAA,CAAiB,CAAA;AAE/D,MAAA,QAAA;AAAA,QACE,IAAI,cAAA,CAAc;AAAA,UAChB,mBAAA,EAAqB,GAAA,CAAI,KAAA,CAAM,mBAAA,CAAoB,QAAA,CAAS,CAAA;AAAA,UAC5D,aAAA,EAAe,GAAA,CAAI,KAAA,CAAM,aAAA,CAAc,QAAA,CAAS,CAAA;AAAA,UAChD,cAAA,EAAgB,IAAI,UAAA,CAAW,cAAc,CAAA;AAAA,UAC7C,IAAA,EAAM,GAAA,CAAI,KAAA,CAAM,IAAA,CAAK,QAAA,CAAS;AAAA,QAChC,CAAC;AAAA,MACH,CAAA;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO,EAAE,YAAY,CAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAA,MAAoB,MAAA,CAAO,MAAA,EAA6C;AACtE,IAAA,OAAO,IAAI,OAAA,CAAuB,MAAA,CAAO,OAAA,EAAS,MAAA,EAAA,GAAW;AAC3D,MAAA,IAAI;AACF,QAAA,MAAM,EAAE,YAAY,EAAA,EAAI,MAAM,cAAA,CAAc,SAAA,CAAU,MAAA,EAAQ,CAAA,CAAA,EAAA,GAAK;AACjE,UAAA,OAAA,CAAQ,CAAC,CAAA;AACT,UAAA,WAAA,CAAY,CAAA;AAAA,QACd,CAAC,CAAA;AAAA,MACH,EAAA,MAAA,CAAS,CAAA,EAAG;AACV,QAAA,MAAA,CAAO,CAAC,CAAA;AAAA,MACV;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;ALCA;AACA;AM9EA,2FAA+B;AAK/B,IAAM,EAAE,YAAY,EAAA,EAAI,EAAA;AAEjB,IAAM,oBAAA,EAAsB,GAAA;AAO5B,SAAS,YAAA,CAAa,SAAA,EAAoC;AAC/D,EAAA,GAAA,CAAI,UAAA,IAAc,KAAA,EAAA,GAAa,UAAA,IAAc,IAAA,EAAM,OAAO,IAAA;AAC1D,EAAA,MAAM,WAAA,EAAa,UAAA,EAAY,CAAA;AAC/B,EAAA,IAAI,OAAA,EAAS,wBAAA,SAAU,CAAU,QAAA,CAAS,CAAC,CAAA,CACxC,GAAA,CAAI,CAAA,CACJ,GAAA,CAAI,mBAAmB,CAAA,CACvB,QAAA,CAAS,CAAA,EAAG,WAAW,CAAA;AAC1B,EAAA,GAAA,CAAI,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC1B,IAAA,OAAA,EAAS,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAA,CAAE,CAAA;AAAA,EAC7B;AACA,EAAA,OAAO,CAAA,EAAA;AACT;AAEA;AACM,EAAA;AAEE,EAAA;AAEN,EAAA;AACO,IAAA;AACP,EAAA;AAEI,EAAA;AACI,IAAA;AAEN,IAAA;AACE,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEMA,EAAAA;AACN,EAAA;AACQ,IAAA;AAEF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACF,IAAA;AAEJA,IAAAA;AACF,EAAA;AACOA,EAAAA;AACT;AAEgB;AACV,EAAA;AACA,EAAA;AACI,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEgB;AACR,EAAA;AAEJ,EAAA;AAGJ;AAGa;AACX,EAAA;AAMQ,IAAA;AALU,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAGlB,EAAA;AAEgB,EAAA;AACV,IAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAEgB;AAMV,EAAA;AACI,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAQgB;AAIP,EAAA;AACL,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AAEE,QAAA;AACA,QAAA;AAEA,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AAEA,QAAA;AACF,MAAA;AACF,IAAA;AACD,EAAA;AACH;AAWgB;AAMV,EAAA;AACA,EAAA;AAEE,EAAA;AAEN,EAAA;AACQ,IAAA;AACF,IAAA;AACA,IAAA;AACN,EAAA;AAEO,EAAA;AACT;ANYU;AACA;AO9KG;AAyDX,EAAA;AACqB,IAAA;AACZ,IAAA;AASF,IAAA;AACH,MAAA;AACA,MAAA;AACD,IAAA;AACI,IAAA;AACH,MAAA;AACA,MAAA;AACD,IAAA;AAEI,IAAA;AACA,IAAA;AACP,EAAA;AA9EA,EAAA;AACA,EAAA;AAEI,EAAA;AACG,IAAA;AACA,IAAA;AACP,EAAA;AAEI,EAAA;AACF,IAAA;AACF,EAAA;AAEI,EAAA;AACE,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEI,EAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACA,EAAA;AACA,iBAAA;AAEA,EAAA;AACA,EAAA;AAEA,EAAA;AAAA;AAAA;AAAA;AAIA,EAAA;AACA,EAAA;AACA,EAAA;AAAA;AAAA;AAAA;AAIA,EAAA;AAAA;AAAA;AAAA;AAIA,EAAA;AAEA,kBAAA;AACA,kBAAA;AAEG,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AA0BG,EAAA;AAML,IAAA;AACF,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AAGA,MAAA;AACA,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACA,IAAA;AACA,IAAA;AAED,IAAA;AACC,IAAA;AACH,MAAA;AACF,IAAA;AAEI,IAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACC,IAAA;AACA,IAAA;AAEF,IAAA;AACF,MAAA;AACIA,MAAAA;AACN,IAAA;AACI,IAAA;AACF,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACD,MAAA;AACH,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAEQ,EAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACF,IAAA;AACK,oBAAA;AACP,EAAA;AAEQ,EAAA;AACF,IAAA;AACJ,IAAA;AACM,MAAA;AACF,QAAA;AACA,QAAA;AACF,MAAA;AACI,MAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACI,MAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACE,MAAA;AACF,IAAA;AACK,IAAA;AACP,EAAA;AACF;AP8IU;AACA;AQ9TG;AAGX,EAAA;AACkB,IAAA;AACT,IAAA;AACS,IAAA;AAEX,IAAA;AACP,EAAA;AARgB,EAAA;AAUH,EAAA;AACL,IAAA;AACN,IAAA;AACF,EAAA;AAEa,EAAA;AAOL,IAAA;AACA,IAAA;AACF,IAAA;AACE,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AAGA,IAAA;AACA,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AAEa,EAAA;AACL,IAAA;AACA,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AAEI,IAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA;AACF,EAAA;AAEa,EAAA;AAIL,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACAA,IAAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACDA,IAAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACM,MAAA;AACF,QAAA;AACAA,QAAAA;AACF,MAAA;AACEA,QAAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEa,EAAA;AACL,IAAA;AACN,IAAA;AACF,EAAA;AAEQ,EAAA;AACF,IAAA;AACE,IAAA;AACF,IAAA;AACE,IAAA;AACF,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACI,IAAA;AAEF,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACK,IAAA;AACL,IAAA;AACF,EAAA;AACF;AAES;AACA,EAAA;AACT;ARySU;AACA;AS7aM;AAIP,EAAA;AACT;AAEgB;AACN,EAAA;AACF,EAAA;AACC,EAAA;AACT;AT2aU;AACA;AUvbM;AACd,EAAA;AACQ,IAAA;AACJ,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEgB;AACd,EAAA;AACQ,IAAA;AACJ,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEgB;AAGd,EAAA;AACQ,IAAA;AACJ,MAAA;AACI,MAAA;AACF,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AVqbU;AACA;AWzdHC;AACA;AACE;AAgCI;AAwBX,EAAA;AAGS,IAAA;AAEF,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACP,EAAA;AAjCO,EAAA;AACA,EAAA;AACA,EAAA;AAAA;AAAA;AAAA;AAIA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAcK,EAAA;AACL,IAAA;AACA,IAAA;AACH,MAAA;AACA,MAAA;AACA,IAAA;AACG,IAAA;AACD,IAAA;AACA,IAAA;AAEF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACK,IAAA;AACH,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AAEK,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACD,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACC,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACF,EAAA;AAEO,EAAA;AAKD,IAAA;AAEE,IAAA;AACA,IAAA;AACJ,MAAA;AACF,IAAA;AACM,IAAA;AAGA,IAAA;AACA,IAAA;AACH,MAAA;AACD,MAAA;AACF,IAAA;AACM,IAAA;AAEN,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAKO,EAAA;AACC,IAAA;AACN,IAAA;AACF,EAAA;AAEO,EAAA;AACC,IAAA;AAGN,IAAA;AACF,EAAA;AAEA,EAAA;AAKQ,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AAGN,IAAA;AACF,EAAA;AAEA,EAAA;AAeQ,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACE,IAAA;AACA,IAAA;AACA,IAAA;AAEA,MAAA;AAIA,QAAA;AACA,QAAA;AACE,UAAA;AACF,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AACJ,MAAA;AAAO;AAEL,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACM,IAAA;AACF,IAAA;AACF,MAAA;AACI,MAAA;AACJ,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACD,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AAEMD,IAAAA;AACD,MAAA;AACH,MAAA;AACD,IAAA;AAED,IAAA;AACE,MAAA;AACI,MAAA;AACJ,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAOQ,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AAEA,IAAA;AACK,MAAA;AACH,MAAA;AACD,IAAA;AACH,EAAA;AACF;AAOS;AACA,EAAA;AACT;AAES;AACA,EAAA;AACT;AAES;AACH,EAAA;AACF,IAAA;AACF,EAAA;AACK,EAAA;AACG,IAAA;AACJ,MAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AXsXU;AACA;AYxuBHC;AAES;AAIR,EAAA;AACA,EAAA;AAEA,EAAA;AACC,EAAA;AACT;AAEgB;AACR,EAAA;AACA,EAAA;AACC,EAAA;AACT;AAEa;AACA;AZmuBH;AACA;Aa7uBD;AAMFA;AAEM;AASJ;AAIH,EAAA;AACA,EAAA;AACF,IAAA;AACF,EAAA;AACE,IAAA;AACF,EAAA;AACI,EAAA;AACA,EAAA;AACF,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEa;AACJ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAKA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEP,EAAA;AACO,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAEA,IAAA;AACP,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUa,EAAA;AAGP,IAAA;AAEF,IAAA;AAIA,MAAA;AACF,IAAA;AACE,MAAA;AACF,IAAA;AACK,IAAA;AACH,MAAA;AACF,IAAA;AACM,IAAA;AAEA,IAAA;AACA,IAAA;AACA,IAAA;AACN,IAAA;AACF,EAAA;AAEa,EAAA;AACL,IAAA;AACA,IAAA;AACN,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEa,EAAA;AAML,IAAA;AACA,IAAA;AAKF,IAAA;AACA,IAAA;AAGA,IAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AAEA,MAAA;AAGA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACE,MAAA;AACF,IAAA;AAEA,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEa,EAAA;AAqBL,IAAA;AAEA,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AACA,IAAA;AACJ,MAAA;AACA,MAAA;AACD,IAAA;AACI,IAAA;AACH,MAAA;AACE,QAAA;AACE,UAAA;AACD,QAAA;AACH,MAAA;AACF,IAAA;AAEM,IAAA;AAEA,IAAA;AACJ,MAAA;AACA,MAAA;AAA0C,QAAA;AAE1C,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AAGA,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACE,MAAA;AAEJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AAKA,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEa,EAAA;AAQL,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACE,IAAA;AAEC,IAAA;AACH,MAAA;AACF,IAAA;AAEM,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AAEM,IAAA;AAEA,IAAA;AACJ,MAAA;AACA,MAAA;AACD,IAAA;AAEI,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACG,MAAA;AACJ,IAAA;AACH,EAAA;AAEa,EAAA;AAGL,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACM,IAAA;AACN,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQa,EAAA;AAKP,IAAA;AACA,IAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACM,IAAA;AACJ,MAAA;AACF,IAAA;AACI,IAAA;AACF,MAAA;AACA,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AAEK,IAAA;AACH,MAAA;AACF,IAAA;AAEA,IAAA;AACM,MAAA;AACJ,MAAA;AACE,QAAA;AACA,QAAA;AAEI,UAAA;AACE,4BAAA;AACA,YAAA;AACA,YAAA;AACF,UAAA;AACD,QAAA;AAEC,UAAA;AACD,QAAA;AACJ,MAAA;AACG,MAAA;AACF,QAAA;AACE,0BAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACD,IAAA;AACH,EAAA;AAEa,EAAA;AAIL,IAAA;AACD,IAAA;AACH,MAAA;AACA,MAAA;AACF,IAAA;AAEM,IAAA;AACN,IAAA;AACM,MAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AACE,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEc,EAAA;AAKN,IAAA;AACN,IAAA;AACF,EAAA;AAEc,EAAA;AAKR,IAAA;AACA,IAAA;AACF,MAAA;AACF,IAAA;AAEM,IAAA;AAEN,IAAA;AACMA,MAAAA;AAIN,IAAA;AACF,EAAA;AAEe,EAAA;AACP,IAAA;AAEA,IAAA;AAEJ,MAAA;AACF,IAAA;AAGE,MAAA;AACF,IAAA;AAGE,MAAA;AACF,IAAA;AAGE,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA;AACQ,IAAA;AACN,IAAA;AACE,MAAA;AAEA,MAAA;AAEA,MAAA;AAGA,MAAA;AACA,MAAA;AAEF,IAAA;AACF,EAAA;AAEA,EAAA;AACE,IAAA;AAGF,EAAA;AAEA,EAAA;AAQQ,IAAA;AACD,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AACA,IAAA;AAEN,IAAA;AACF,EAAA;AAEA,EAAA;AAOQ,IAAA;AACA,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAOQ,IAAA;AACA,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAOQ,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACE,IAAA;AAEC,IAAA;AACH,MAAA;AACF,IAAA;AAEM,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AAEA,IAAA;AACF,EAAA;AAEA,EAAA;AAQQ,IAAA;AACD,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACK,IAAA;AACH,MAAA;AACF,IAAA;AACM,IAAA;AACN,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA;AAIQ,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACJ,MAAA;AACA,MAAA;AACD,IAAA;AACK,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AAEM,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACN,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACH,EAAA;AAEA,EAAA;AAIE,IAAA;AACE,MAAA;AACI,MAAA;AACF,QAAA;AACE,UAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACI,MAAA;AACF,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEA,EAAA;AAYQ,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACE,IAAA;AACA,IAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AAEI,IAAA;AACA,IAAA;AACF,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACE,UAAA;AAAI,YAAA;AAEJ,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACF,QAAA;AACD,MAAA;AACH,IAAA;AACM,IAAA;AACA,IAAA;AAIA,IAAA;AACA,IAAA;AACA,IAAA;AAEA,IAAA;AACJ,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACD,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA;AAcQ,IAAA;AAEA,IAAA;AACD,IAAA;AACH,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACA,IAAA;AAEN,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA;AAQQ,IAAA;AACA,IAAA;AACA,IAAA;AACF,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACD,IAAA;AACH,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEc,EAAA;AAIR,IAAA;AAEE,IAAA;AACA,IAAA;AACF,IAAA;AACEA,MAAAA;AAIN,IAAA;AAEA,IAAA;AACE,MAAA;AACF,IAAA;AAEI,IAAA;AACEA,MAAAA;AAKN,IAAA;AAIA,IAAA;AACE,MAAA;AACF,IAAA;AACA,IAAA;AAIE,MAAA;AACF,IAAA;AAEA,IAAA;AACF,EAAA;AACF;Ab6eU;AACA;Ac7zCHA;AAGDC;AAEO;AACX,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEM,EAAA;AACE,IAAA;AACD,IAAA;AACH,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACM,IAAA;AAED,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACH,MAAA;AACA,MAAA;AACF,IAAA;AACK,IAAA;AACH,MAAA;AACA,MAAA;AACF,IAAA;AACK,IAAA;AACL,IAAA;AACF,EAAA;AAEA,EAAA;AACM,IAAA;AACF,MAAA;AACF,IAAA;AAEM,IAAA;AAEA,IAAA;AACN,IAAA;AACF,EAAA;AAEA,EAAA;AACM,IAAA;AACF,MAAA;AACF,IAAA;AAEM,IAAA;AAEA,IAAA;AAGN,IAAA;AACF,EAAA;AAEI,EAAA;AACE,IAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEI,EAAA;AACE,IAAA;AACF,MAAA;AACF,IAAA;AACM,IAAA;AACN,IAAA;AACF,EAAA;AACF;AdgzCU;AACA;Aen4CV;AACE,EAAA;AACA,EAAA;AACA,EAAA;AACO,EAAA;AACL,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACE,IAAA;AACE,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACA,EAAA;AACA,EAAA;AACF;Afq4CU;AACA;AgB/5DG;AACA;AACA;AACA;AhBi6DH;AACA;AiBr6DD;AACA;AAMT;AACE;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACK;AA4DD;AACC,EAAA;AACL,EAAA;AACK;AAES;AACP,EAAA;AACT;AAEgB;AACR,EAAA;AACJ,IAAA;AACE,uBAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AAEQ,EAAA;AACD,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACG,IAAA;AACH,MAAA;AACF,IAAA;AACE,MAAA;AACJ,EAAA;AACF;AAEA;AAIQ,EAAA;AACA,EAAA;AACA,EAAA;AAED,EAAA;AAEE,EAAA;AACL,IAAA;AACA,IAAA;AACD,EAAA;AAEG,EAAA;AACI,IAAA;AACJ,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACD,EAAA;AAEK,EAAA;AACJ,IAAA;AACA,IAAA;AACM,IAAA;AACR,EAAA;AACM,EAAA;AACJ,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AAIR,EAAA;AAEA,EAAA;AACJ,IAAA;AAID,EAAA;AAEG,EAAA;AACI,IAAA;AACJ,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEA;AAGQ,EAAA;AACA,EAAA;AAEF,EAAA;AACI,IAAA;AACJ,MAAA;AACF,IAAA;AACF,EAAA;AAEM,EAAA;AACA,EAAA;AAEF,EAAA;AACI,IAAA;AACR,EAAA;AAEO,EAAA;AACL,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAEA;AAKQ,EAAA;AACA,EAAA;AACA,EAAA;AACF,EAAA;AAEG,EAAA;AACD,IAAA;AACF,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACF,IAAA;AAEM,IAAA;AACR,EAAA;AAGE,EAAA;AAEE,IAAA;AACF,EAAA;AAEJ;AAES;AAGH,EAAA;AACF,IAAA;AACF,EAAA;AACI,EAAA;AACF,IAAA;AACF,EAAA;AAEM,EAAA;AACR;AAEA;AAMI,EAAA;AAGJ;AAEA;AAIQ,EAAA;AACJ,IAAA;AAEM,MAAA;AACA,MAAA;AAEF,IAAA;AACE,MAAA;AACA,MAAA;AACD,IAAA;AACP,EAAA;AACM,EAAA;AAGJ,EAAA;AAGM,IAAA;AACR,EAAA;AAEO,EAAA;AACT;AAEA;AAKQ,EAAA;AAEN,EAAA;AACQ,IAAA;AACN,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEA;AAMQ,EAAA;AACA,EAAA;AACE,IAAA;AAAiB,MAAA;AAEvB,IAAA;AACF,EAAA;AAEM,EAAA;AAEN,EAAA;AACQ,IAAA;AACJ,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEI,EAAA;AACI,IAAA;AACR,EAAA;AAEM,EAAA;AACA,EAAA;AACA,EAAA;AAED,EAAA;AACG,IAAA;AACR,EAAA;AAEO,EAAA;AACT;AACA;AACQ,EAAA;AACF,EAAA;AAEG,EAAA;AACD,IAAA;AACF,MAAA;AACF,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEM,EAAA;AACR;AjBgxDU;AACA;AkB7nEH;AAYY;AA0Bb;AACA;AACA;AACA;AAEN;AAIQ,EAAA;AACC,EAAA;AACL,IAAA;AACA,IAAA;AACA,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACD,EAAA;AACK,EAAA;AACJ,IAAA;AACA,IAAA;AACF,EAAA;AACM,EAAA;AACN,EAAA;AAEO,EAAA;AACL,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACE,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AACF;AAEA;AAIQ,EAAA;AAED,EAAA;AACH,IAAA;AACF,EAAA;AAEM,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF,EAAA;AACE,EAAA;AAEC,EAAA;AACC,IAAA;AAEF,MAAA;AACA,MAAA;AAEF,IAAA;AAEI,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAEA,IAAA;AACA,IAAA;AAGA,IAAA;AAGF,IAAA;AAEA,IAAA;AACF,MAAA;AACE,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACA,MAAA;AAGI,MAAA;AACF,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACF,IAAA;AAIE,IAAA;AAGA,MAAA;AACA,MAAA;AACF,IAAA;AAEI,IAAA;AACF,MAAA;AACA,MAAA;AAEA,MAAA;AACA,MAAA;AAEA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AAEA,MAAA;AAGI,MAAA;AACF,QAAA;AAEM,UAAA;AAAyB,YAAA;AAC2C,YAAA;AAEpE,UAAA;AACF,QAAA;AAEJ,QAAA;AACE,UAAA;AAAkC,YAAA;AACiC,YAAA;AACT,YAAA;AAC5B,YAAA;AACzB,YAAA;AACgE,YAAA;AAErE,UAAA;AACF,QAAA;AACF,MAAA;AAEI,MAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA;AACF,EAAA;AAEA,EAAA;AAEI,EAAA;AACI,IAAA;AACF,IAAA;AACE,MAAA;AACN,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEA;AAGQ,EAAA;AAGA,EAAA;AAEA,EAAA;AAGA,EAAA;AACA,EAAA;AAIF,EAAA;AACF,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAEM,EAAA;AAEC,EAAA;AACL,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAES;AACA,EAAA;AACL,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAEA;AAIQ,EAAA;AACA,EAAA;AACA,EAAA;AAIA,EAAA;AAED,EAAA;AACH,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEA;AAIQ,EAAA;AACJ,IAAA;AACA,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAES;AACD,EAAA;AACA,EAAA;AAED,EAAA;AACA,EAAA;AAEE,EAAA;AACL,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAES;AAGC,EAAA;AACV;AAES;AACD,EAAA;AACJ,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AAEI,EAAA;AACF,IAAA;AACE,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAES;AACA,EAAA;AACT;AAEA;AAIM,EAAA;AAEC,EAAA;AACH,IAAA;AACE,MAAA;AACA,MAAA;AACA,IAAA;AACF,IAAA;AACF,EAAA;AAEM,EAAA;AAEF,EAAA;AACI,IAAA;AACJ,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAES;AAID,EAAA;AACA,EAAA;AAED,EAAA;AACG,IAAA;AACR,EAAA;AACK,EAAA;AACG,IAAA;AACR,EAAA;AAEM,EAAA;AAEF,EAAA;AACI,IAAA;AACJ,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACL,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAEA;AACM,EAAA;AAEC,EAAA;AACG,IAAA;AAUD,IAAA;AACH,MAAA;AACF,IAAA;AAEA,IAAA;AACM,MAAA;AACF,QAAA;AACF,MAAA;AACI,MAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA;AACD,IAAA;AACD,IAAA;AACF,EAAA;AAEI,EAAA;AACF,IAAA;AACF,EAAA;AACE,IAAA;AACM,IAAA;AACR,EAAA;AACF;AAES;AAEL,EAAA;AAEJ;AAES;AACD,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AAEJ,IAAA;AACE,MAAA;AACF,IAAA;AAEA,IAAA;AACE,EAAA;AAEG,EAAA;AACT;AAEA;AACQ,EAAA;AACA,IAAA;AACN,EAAA;AAEK,EAAA;AACG,IAAA;AACJ,MAAA;AACF,IAAA;AACF,EAAA;AAEQ,EAAA;AACV;AlBo+DU;AACA;ACp3ED;AAGA;AACT;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACK;AA+BP;AACQ,EAAA;AACR;AAQA;AACM,EAAA;AACA,EAAA;AACF,IAAA;AACK,EAAA;AACL,IAAA;AACF,EAAA;AAEA,EAAA;AACQ,EAAA;AAER,EAAA;AACE,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAEM;AACG;AACH,EAAA;AACJ,EAAA;AACA,EAAA;AACA,EAAA;AACF;AAEgB;AACP,EAAA;AACT;AD20EU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/mainchain/mainchain/client/nodejs/lib/index.cjs","sourcesContent":[null,"import './interfaces/augment-api';\nimport './interfaces/augment-types';\nimport './interfaces/types-lookup';\nimport type { KeyringPair, KeyringPair$Json } from '@polkadot/keyring/types';\nimport { ApiPromise, HttpProvider, Keyring, WsProvider } from '@polkadot/api';\nimport {\n cryptoWaitReady,\n decodeAddress,\n encodeAddress,\n isAddress,\n mnemonicGenerate,\n} from '@polkadot/util-crypto';\nimport type { InterfaceTypes } from '@polkadot/types/types/registry';\nimport type { KeypairType } from '@polkadot/util-crypto/types';\nimport type { ProviderInterface } from '@polkadot/rpc-provider/types';\nimport type { ApiDecoration, ApiOptions } from '@polkadot/api/types';\nimport { Metadata, TypeRegistry } from '@polkadot/types';\nimport { result as metadataBytes } from '../metadata.json';\nimport { specVersion } from '../runtime_version.json';\nimport Genesis from '../genesis.json';\nimport { HexString } from '@polkadot/util/types';\n\nexport type { SubmittableExtrinsic } from '@polkadot/api/promise/types';\nexport { ApiDecoration };\nexport { WageProtector } from './WageProtector';\nexport { TxSubmitter, type ISubmittableOptions, type TxSigningAccount } from './TxSubmitter';\nexport { TxResult, type ITxProgressCallback } from './TxResult';\nexport * from './utils';\nexport * from './keyringUtils';\nexport * from './header';\nexport * from './Vault';\nexport * from './convert';\nexport * from './BitcoinLock';\nexport * from './PriceIndex';\nexport {\n MINTING_GATEWAY_BURN_FOR_TRANSFER_EVENT_NAME,\n MINTING_GATEWAY_RUNTIME_DECIMALS,\n MINTING_GATEWAY_RUNTIME_TO_ERC20_SCALE,\n MINTING_GATEWAY_TOKEN_DECIMALS,\n mintingGatewayArtifact,\n} from '@argonprotocol/ethereum-contracts';\nexport {\n buildEthereumEventProof,\n findEthereumBurnForTransferLogIndex,\n getLatestRetainedAnchor,\n waitForRetainedExecutionAnchor,\n type EthereumEventLocator,\n type EthereumEventProof,\n type EthereumExecutionClient,\n type EthereumReceipt,\n type RetainedExecutionAnchor,\n type EthereumVerifyEventLogResult,\n} from './EthereumProof';\nexport {\n getEthereumBeaconSyncBootstrapTx,\n getEthereumBeaconSyncState,\n getNextEthereumBeaconSyncTxs,\n} from './EthereumBeaconSync';\nexport {\n Keyring,\n KeyringPair,\n KeyringPair$Json,\n KeypairType,\n mnemonicGenerate,\n decodeAddress,\n isAddress,\n encodeAddress,\n};\n\nexport { u8aToHex, hexToU8a, u8aEq } from '@polkadot/util';\n\nexport * from '@polkadot/types/lookup';\nexport { GenericEvent, GenericBlock, GenericAddress } from '@polkadot/types/generic';\nexport {\n BTreeMap,\n Bytes,\n Compact,\n Enum,\n Null,\n Option,\n Result,\n Bool,\n Tuple,\n Range,\n Struct,\n Text,\n U256,\n U8aFixed,\n Vec,\n bool,\n i128,\n u128,\n u16,\n u32,\n u64,\n u8,\n} from '@polkadot/types-codec';\nexport type {\n ISubmittableResult,\n IExtrinsic,\n SignerResult,\n Signer,\n ISignerPayload,\n} from '@polkadot/types/types/extrinsic';\nexport { type ITuple, type Codec } from '@polkadot/types-codec/types';\nexport {\n type AccountId32,\n type Call,\n type H160,\n type H256,\n type MultiAddress,\n type Permill,\n type AccountId,\n type Header,\n type Block,\n type SignedBlock,\n} from '@polkadot/types/interfaces/runtime';\nexport type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';\nexport { type BlockHash } from '@polkadot/types/interfaces/chain';\nexport { InterfaceTypes as interfaces };\n\nexport type ArgonClient = ApiPromise;\nexport type IArgonQueryable = ArgonClient | ApiDecoration<'promise'>;\n\n/**\n * Wait for the crypto library to be ready (requires wasm, which needs async loading in commonjs)\n */\nexport async function waitForLoad(): Promise<void> {\n await cryptoWaitReady();\n}\n\n/**\n * Get a client for the given host\n * @param host The host to connect to\n * @param options Additional options for the API\n * @returns The client\n */\nexport async function getClient(host: string, options?: ApiOptions): Promise<ArgonClient> {\n let provider: ProviderInterface;\n if (host.startsWith('http')) {\n provider = new HttpProvider(host);\n } else {\n provider = new WsProvider(host);\n }\n\n options ??= {};\n options.metadata ??= {};\n\n for (const genesisHash of Object.values(Genesis)) {\n options.metadata[`${genesisHash}-${specVersion}`] = metadataBytes as HexString;\n }\n return await ApiPromise.create({ provider, noInitWarn: true, ...options });\n}\n\nconst registry = new TypeRegistry();\nregistry.setMetadata(\n new Metadata(registry, metadataBytes as HexString),\n undefined,\n undefined,\n true,\n);\n\nexport function getOfflineRegistry() {\n return registry;\n}\n","{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"result\": \"0x6d6574610e8108000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173651502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e00005408346172676f6e5f72756e74696d653052756e74696d654576656e740001701853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c44696765737473040080017870616c6c65745f646967657374733a3a4576656e743c52756e74696d653e000100204d756c7469736967040084017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0003001450726f7879040094017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e000400284d696e696e67536c6f740400a4018870616c6c65745f6d696e696e675f736c6f743a3a4576656e743c52756e74696d653e00060030426974636f696e5574786f730400c8019070616c6c65745f626974636f696e5f7574786f733a3a4576656e743c52756e74696d653e000700185661756c74730400dc017470616c6c65745f7661756c74733a3a4576656e743c52756e74696d653e00080030426974636f696e4c6f636b730400e4019070616c6c65745f626974636f696e5f6c6f636b733a3a4576656e743c52756e74696d653e000900204e6f7461726965730400f0017c70616c6c65745f6e6f7461726965733a3a4576656e743c52756e74696d653e000a00204e6f7465626f6f6b04001501017c70616c6c65745f6e6f7465626f6f6b3a3a4576656e743c52756e74696d653e000b00484c6f63616c636861696e5472616e736665720400310101a870616c6c65745f6c6f63616c636861696e5f7472616e736665723a3a4576656e743c52756e74696d653e000c0034426c6f636b5365616c5370656304003501019870616c6c65745f626c6f636b5f7365616c5f737065633a3a4576656e743c52756e74696d653e000d001c446f6d61696e7304003901017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000e00285072696365496e64657804006101018870616c6c65745f70726963655f696e6465783a3a4576656e743c52756e74696d653e000f001c4772616e64706104006501015470616c6c65745f6772616e6470613a3a4576656e7400110030426c6f636b5265776172647304007101019070616c6c65745f626c6f636b5f726577617264733a3a4576656e743c52756e74696d653e001300104d696e7404008901016c70616c6c65745f6d696e743a3a4576656e743c52756e74696d653e0014002042616c616e6365730400990101ec70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d652c2070616c6c65745f62616c616e6365733a3a496e7374616e6365313e001500244f776e6572736869700400bd0101ec70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d652c2070616c6c65745f62616c616e6365733a3a496e7374616e6365323e0016001c547850617573650400c101017c70616c6c65745f74785f70617573653a3a4576656e743c52756e74696d653e001700485472616e73616374696f6e5061796d656e740400cd0101a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0018001c5574696c6974790400d101015470616c6c65745f7574696c6974793a3a4576656e74001900105375646f0400d501016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e001a002054726561737572790400d901017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e001f0028466565436f6e74726f6c0400e101018870616c6c65745f6665655f636f6e74726f6c3a3a4576656e743c52756e74696d653e0020004c4f7065726174696f6e616c4163636f756e74730400ed0101ac70616c6c65745f6f7065726174696f6e616c5f6163636f756e74733a3a4576656e743c52756e74696d653e00220040457468657265756d56657269666965720400f50101a070616c6c65745f657468657265756d5f76657269666965723a3a4576656e743c52756e74696d653e0023004843726f7373636861696e5472616e736665720400fd0101a870616c6c65745f63726f7373636861696e5f7472616e736665723a3a4576656e743c52756e74696d653e00240000580c306672616d655f73797374656d1870616c6c6574144576656e740404540001204045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f720007041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c08306672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c2873705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d0000800c3870616c6c65745f646967657374731870616c6c6574144576656e74040454000100047c54686520604576656e746020656e756d206f6620746869732070616c6c6574840c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e7488017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e7488017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748c01384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e7488017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657488083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200008c0418526573756c740804540190044501680108084f6b040090000000000c4572720400680000010000900000040000940c3070616c6c65745f70726f78791870616c6c6574144576656e7404045400011c3450726f78794578656375746564040118726573756c748c01384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656418011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789c010c7531360001086174100144426c6f636b4e756d626572466f723c543e00013c65787472696e7369635f696e64657810010c753332000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e28507572654b696c6c656410011070757265000130543a3a4163636f756e74496400011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789c010c7531360002049c4120707572652070726f787920776173206b696c6c65642062792069747320737061776e65722e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000304e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00050450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e64a0012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000604090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749808346172676f6e5f72756e74696d652450726f7879547970650001200c416e790000002c4e6f6e5472616e73666572000100285072696365496e646578000200244d696e696e67426964000300504d696e696e674269645265616c506179734665650004001c426974636f696e000500285661756c7441646d696e00060050426974636f696e496e697469616c697a65466f72000700009c0000050400a0083070616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e747300010000a40c4870616c6c65745f6d696e696e675f736c6f741870616c6c6574144576656e7404045400011c244e65774d696e6572730c01286e65775f6d696e657273a801b4426f756e6465645665633c526567697374726174696f6e3c543e2c20543a3a4d6178436f686f727453697a653e00013c72656c65617365645f6d696e65727310010c7533320001206672616d655f696430011c4672616d6549640000003c536c6f7442696464657241646465640c01286163636f756e745f6964000130543a3a4163636f756e7449640001286269645f616d6f756e74180128543a3a42616c616e6365000114696e64657810010c75333200010044536c6f7442696464657244726f707065640801286163636f756e745f6964000130543a3a4163636f756e7449640001587072657365727665645f6172676f6e6f745f686f6c64200110626f6f6c0002005452656c656173654d696e6572536561744572726f720801286163636f756e745f6964000130543a3a4163636f756e7449640001146572726f7268013444697370617463684572726f72000300684d696e696e67436f6e66696775726174696f6e557064617465640c01887469636b735f6265666f72655f6269645f656e645f666f725f7672665f636c6f73653001105469636b00014c7469636b735f6265747765656e5f736c6f74733001105469636b000178736c6f745f62696464696e675f73746172745f61667465725f7469636b733001105469636b000400404d696e696e6742696473436c6f7365640401206672616d655f696430011c4672616d654964000504f4426964732061726520636c6f7365642064756520746f20746865205652462072616e646f6d697a65642066756e6374696f6e2074726967676572696e673c52656c656173654269644572726f720801286163636f756e745f6964000130543a3a4163636f756e7449640001146572726f7268013444697370617463684572726f72000600047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a80c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ac045300000400c401185665633c543e0000ac0c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c484d696e696e67526567697374726174696f6e0c244163636f756e74496401001c42616c616e63650118104b65797301b0001c01286163636f756e745f69640001244163636f756e74496400016065787465726e616c5f66756e64696e675f6163636f756e74bc01444f7074696f6e3c4163636f756e7449643e00010c626964c0011c42616c616e63650001206172676f6e6f7473c0011c42616c616e6365000138617574686f726974795f6b657973b001104b6579730001447374617274696e675f6672616d655f69642c011c4672616d65496400012c6269645f61745f7469636b2c01105469636b0000b008346172676f6e5f72756e74696d652c53657373696f6e4b657973000008011c6772616e647061b401d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000150626c6f636b5f7365616c5f617574686f72697479b801dc3c4d696e696e67536c6f74206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630000b40c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c69630000b810406172676f6e5f7072696d69746976657328626c6f636b5f7365616c0c617070185075626c69630000040004013c656432353531393a3a5075626c69630000bc04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000c00000061800c4000002ac00c80c5070616c6c65745f626974636f696e5f7574786f731870616c6c6574144576656e7404045400011c305574786f566572696669656408011c7574786f5f69643001185574786f49640001447361746f736869735f72656365697665643001205361746f73686973000000305574786f52656a656374656410011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f52656600013c72656a65637465645f726561736f6ed80154426974636f696e52656a6563746564526561736f6e0001447361746f736869735f72656365697665643001205361746f73686973000100245574786f5370656e7408011c7574786f5f69643001185574786f4964000130626c6f636b5f686569676874300134426974636f696e486569676874000200345574786f556e7761746368656404011c7574786f5f69643001185574786f4964000300385574786f5370656e744572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f72000400445574786f56657269666965644572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f72000500445574786f52656a65637465644572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f72000600047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc0c406172676f6e5f7072696d6974697665731c626974636f696e1c5574786f526566000008011074786964d00118483235364c650001306f75747075745f696e646578d4010c7533320000d00c406172676f6e5f7072696d6974697665731c626974636f696e18483235364c65000004000401205b75383b2033325d0000d40000061000d80c406172676f6e5f7072696d6974697665731c626974636f696e54426974636f696e52656a6563746564526561736f6e000110705361746f736869734f757473696465416363657074656452616e6765000000145370656e740001004c566572696669636174696f6e457870697265640002003c416c7265616479566572696669656400030000dc0c3470616c6c65745f7661756c74731870616c6c6574144576656e7404045400013c305661756c74437265617465641401207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e636500015073656375726974697a6174696f6e5f726174696fe0012446697865645531323800014c6f70657261746f725f6163636f756e745f6964000130543a3a4163636f756e74496400012c6f70656e65645f7469636b3001105469636b000000345661756c744d6f6469666965641001207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e636504c0546865206e65772073656375726974697a6174696f6e20616d6f756e74206166746572206d6f64696669636174696f6e015473656375726974697a6174696f6e5f746172676574180128543a3a42616c616e63650449015468652073656375726974697a6174696f6e2074617267657420616d6f756e74206166746572206d6f64696669636174696f6e20287468697320697320746865206c6f6e67207465726d2074617267657429015073656375726974697a6174696f6e5f726174696fe00124466978656455313238000100645661756c745465726d734368616e67655363686564756c65640801207661756c745f696410011c5661756c74496400012c6368616e67655f7469636b3001105469636b000200445661756c745465726d734368616e6765640401207661756c745f696410011c5661756c7449640003002c5661756c74436c6f7365640c01207661756c745f696410011c5661756c74496400016073656375726974697a6174696f6e5f72656d61696e696e67180128543a3a42616c616e636500015c73656375726974697a6174696f6e5f72656c6561736564180128543a3a42616c616e6365000400585661756c74426974636f696e587075624368616e67650401207661756c745f696410011c5661756c7449640005005c5661756c74526576656e7565556e636f6c6c65637465640c01207661756c745f696410011c5661756c7449640001206672616d655f696430011c4672616d654964000118616d6f756e74180128543a3a42616c616e636500060439015661756c7420726576656e756520776173206e6f7420636f6c6c65637465642077697468696e207468652072657175697265642077696e646f772c20736f20686173206265656e206275726e6564385661756c74436f6c6c65637465640801207661756c745f696410011c5661756c74496400011c726576656e7565180128543a3a42616c616e63650007040901546865207661756c7420636f6c6c656374656420726576656e756520616e6420636f7369676e656420616c6c2070656e64696e6720626974636f696e206c6f636b732c46756e64734c6f636b65641801207661756c745f696410011c5661756c7449640001186c6f636b6572000130543a3a4163636f756e7449640001486c69717569646974795f70726f6d69736564180128543a3a42616c616e636500012869735f72617463686574200110626f6f6c00012c6665655f726576656e7565180128543a3a42616c616e63650001486469645f7573655f6665655f636f75706f6e200110626f6f6c0008004046756e644c6f636b43616e63656c65640801207661756c745f696410011c5661756c744964000118616d6f756e74180128543a3a42616c616e63650009006046756e64735363686564756c6564466f7252656c656173650c01207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e636500013872656c656173655f686569676874300134426974636f696e486569676874000a00584c6f7374426974636f696e436f6d70656e73617465641001207661756c745f696410011c5661756c74496400012c62656e6566696369617279000130543a3a4163636f756e744964000138746f5f62656e6566696369617279180128543a3a42616c616e63650001186275726e6564180128543a3a42616c616e6365000b003446756e647352656c65617365640801207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e6365000c004846756e647352656c65617365644572726f720801207661756c745f696410011c5661756c7449640001146572726f7268013444697370617463684572726f72000d005854726561737572795265636f7264696e674572726f721001207661756c745f696410011c5661756c7449640001206672616d655f696430011c4672616d6549640001387661756c745f6561726e696e6773180128543a3a42616c616e63650001146572726f7268013444697370617463684572726f72000e00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e00c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000e40c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574144576656e7404045400013848426974636f696e4c6f636b437265617465641c011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001486c69717569646974795f70726f6d69736564180128543a3a42616c616e636500013873656375726974697a6174696f6e180128543a3a42616c616e636500014c6c6f636b65645f7461726765745f7072696365180128543a3a42616c616e63650001286163636f756e745f6964000130543a3a4163636f756e74496400013073656375726974795f666565180128543a3a42616c616e636500000050426974636f696e4c6f636b52617463686574656420011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001486c69717569646974795f70726f6d69736564180128543a3a42616c616e63650001406f6c645f7461726765745f7072696365180128543a3a42616c616e636500013073656375726974795f666565180128543a3a42616c616e63650001406e65775f7461726765745f7072696365180128543a3a42616c616e6365000134616d6f756e745f6275726e6564180128543a3a42616c616e63650001286163636f756e745f6964000130543a3a4163636f756e74496400010044426974636f696e4c6f636b4275726e65640c011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001387761735f7574786f5f7370656e74200110626f6f6c00020068426974636f696e5574786f436f7369676e52657175657374656408011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640003004c426974636f696e5574786f436f7369676e65640c011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001247369676e6174757265e80140426974636f696e5369676e617475726500040060426974636f696e5370656e74416674657252656c6561736508011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c74496400050050426974636f696e436f7369676e5061737444756510011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c74496400014c636f6d70656e736174696f6e5f616d6f756e74180128543a3a42616c616e6365000158636f6d70656e73617465645f6163636f756e745f6964000130543a3a4163636f756e74496400060048436f7369676e4f7665726475654572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f720007040901416e206572726f72206f63637572726564207768696c6520726566756e64696e6720616e206f76657264756520636f7369676e656420626974636f696e206c6f636b4c4c6f636b45787069726174696f6e4572726f7208011c7574786f5f69643001185574786f49640001146572726f7268013444697370617463684572726f72000804a4416e206572726f72206f63637572726564207768696c6520636f6d706c6574696e672061206c6f636b504f727068616e65645574786f526563656976656410011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f5265660001207661756c745f696410011c5661756c7449640001207361746f736869733001205361746f73686973000900704f727068616e65645574786f52656c6561736552657175657374656410011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f5265660001207661756c745f696410011c5661756c7449640001286163636f756e745f6964000130543a3a4163636f756e744964000a00504f727068616e65645574786f436f7369676e656414011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f5265660001207661756c745f696410011c5661756c7449640001286163636f756e745f6964000130543a3a4163636f756e7449640001247369676e6174757265e80140426974636f696e5369676e6174757265000b005c5574786f46756e64656446726f6d43616e64696461746510011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f5265660001207661756c745f696410011c5661756c7449640001286163636f756e745f6964000130543a3a4163636f756e744964000c005c53656375726974697a6174696f6e496e6372656173656410011c7574786f5f69643001185574786f49640001207661756c745f696410011c5661756c7449640001306e65775f7361746f736869733001205361746f736869730001286163636f756e745f6964000130543a3a4163636f756e744964000d00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e80c406172676f6e5f7072696d6974697665731c626974636f696e40426974636f696e5369676e617475726500000400ec0170426f756e6465645665633c75382c20436f6e73745533323c37343e3e0000ec0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f00c3c70616c6c65745f6e6f7461726965731870616c6c6574144576656e74040454000114384e6f7461727950726f706f7365640c01406f70657261746f725f6163636f756e74000130543a3a4163636f756e7449640001106d657461f4013c4e6f746172794d6574614f663c543e00011c65787069726573100144426c6f636b4e756d626572466f723c543e000004a4412075736572206861732070726f706f736564206f7065726174696e672061732061206e6f746172793c4e6f746172794163746976617465640401186e6f74617279110101444e6f746172795265636f72644f663c543e0001048c41206e6f746172792070726f706f73616c20686173206265656e206163636570746564584e6f746172794d6574615570646174655175657565640c01246e6f746172795f69641001204e6f7461727949640001106d657461f4013c4e6f746172794d6574614f663c543e0001386566666563746976655f7469636b3001105469636b000204844e6f74617279206d657461646174612071756575656420666f7220757064617465444e6f746172794d657461557064617465640801246e6f746172795f69641001204e6f7461727949640001106d657461f4013c4e6f746172794d6574614f663c543e0003045c4e6f74617279206d657461646174612075706461746564544e6f746172794d6574615570646174654572726f720c01246e6f746172795f69641001204e6f7461727949640001146572726f7268013444697370617463684572726f720001106d657461f4013c4e6f746172794d6574614f663c543e000404844572726f72207570646174696e6720717565756564206e6f7461727920696e666f047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f40c406172676f6e5f7072696d697469766573186e6f74617279284e6f746172794d65746104204d6178486f73747300000c01106e616d65f801284e6f746172794e616d650001187075626c69630401304e6f746172795075626c6963000114686f73747301010168426f756e6465645665633c486f73742c204d6178486f7374733e0000f80c406172676f6e5f7072696d697469766573186e6f74617279284e6f746172794e616d6500000400fc0170426f756e6465645665633c75382c20436f6e73745533323c35353e3e0000fc0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000001010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540105010453000004000d0101185665633c543e000005010c406172676f6e5f7072696d69746976657310686f737410486f73740000040009010174426f756e6465645665633c75382c20436f6e73745533323c3235333e3e000009010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d0100000205010011010c406172676f6e5f7072696d697469766573186e6f74617279304e6f746172795265636f72640c244163636f756e74496401002c426c6f636b4e756d6265720110204d6178486f73747300001801246e6f746172795f6964d401204e6f74617279496400014c6f70657261746f725f6163636f756e745f69640001244163636f756e74496400013c6163746976617465645f626c6f636bd4012c426c6f636b4e756d6265720001486d6574615f757064617465645f626c6f636bd4012c426c6f636b4e756d6265720001446d6574615f757064617465645f7469636b2c01105469636b0001106d657461f401504e6f746172794d6574613c4d6178486f7374733e000015010c3c70616c6c65745f6e6f7465626f6f6b1870616c6c6574144576656e7404045400010c444e6f7465626f6f6b5375626d69747465640801246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d626572000000504e6f7465626f6f6b41756469744661696c7572651001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d6265720001346e6f7465626f6f6b5f686173683401104832353600015066697273745f6661696c7572655f726561736f6e1901014c4e6f7465626f6f6b5665726966794572726f72000100644e6f7465626f6f6b5265616479466f72526570726f636573730801246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d626572000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657419010c486172676f6e5f6e6f746172795f6175646974146572726f722c5665726966794572726f720001ec504d697373696e674163636f756e744f726967696e0801286163636f756e745f696400012c4163636f756e74496433320001306163636f756e745f747970651d01012c4163636f756e745479706500000048486973746f72794c6f6f6b75704572726f72040118736f75726365210101644163636f756e74486973746f72794c6f6f6b75704572726f7200010060496e76616c69644163636f756e744368616e67656c69737400020064496e76616c6964436861696e5472616e73666572734c69737400030060496e76616c696442616c616e63654368616e6765526f6f7400040060496e76616c69644865616465725461785265636f7264656400050050496e76616c696450726576696f75734e6f6e636500060058496e76616c696450726576696f757342616c616e636500070070496e76616c696450726576696f75734163636f756e744f726967696e00080090496e76616c696450726576696f757342616c616e63654368616e67654e6f7465626f6f6b00090050496e76616c696442616c616e63654368616e6765000a0074496e76616c696442616c616e63654368616e67655369676e61747572650401306368616e67655f696e6465789c010c753136000b0054496e76616c69644e6f7465526563697069656e7473000c004842616c616e63654368616e67654572726f720c01306368616e67655f696e6465789c010c7531360001286e6f74655f696e6465789c010c75313600011c6d6573736167652501013c4d61784c656e677468537472696e67000d0068496e76616c69644e657442616c616e63654368616e6765736574000e004c496e73756666696369656e7442616c616e636510011c62616c616e636518011075313238000118616d6f756e74180110753132380001286e6f74655f696e6465789c010c7531360001306368616e67655f696e6465789c010c753136000f004845786365656465644d617842616c616e636510011c62616c616e636518011075313238000118616d6f756e74180110753132380001286e6f74655f696e6465789c010c7531360001306368616e67655f696e6465789c010c7531360010005442616c616e63654368616e67654d69736d617463680c01306368616e67655f696e6465789c010c75313600014070726f76696465645f62616c616e63651801107531323800014863616c63756c617465645f62616c616e63652d010110693132380011005c42616c616e63654368616e67654e6f744e65745a65726f08011073656e741801107531323800011c636c61696d65641801107531323800120070496e76616c6964446f6d61696e4c65617365416c6c6f636174696f6e0013006854617842616c616e63654368616e67654e6f744e65745a65726f08011073656e741801107531323800011c636c61696d6564180110753132380014004c4d697373696e6742616c616e636550726f6f660015006c496e76616c696450726576696f757342616c616e636550726f6f660016004c496e76616c69644e6f7465626f6f6b4861736800170064496e76616c69644e6f7465626f6f6b4865616465724861736800180058496e76616c69644e6f7465626f6f6b56657273696f6e001900584475706c6963617465436861696e5472616e73666572001a00684475706c6963617465644163636f756e744f726967696e556964001b0058496e76616c69644e6f746172795369676e6174757265001c0054496e76616c696453656372657450726f7669646564001d00384e6f7465626f6f6b546f6f4f6c64001e005c436174636875704e6f7465626f6f6b734d697373696e67001f002c4465636f64654572726f72002000744163636f756e744368616e6e656c486f6c64446f65736e744578697374002100704163636f756e74416c72656164794861734368616e6e656c486f6c640022006c4368616e6e656c486f6c644e6f745265616479466f72436c61696d08013063757272656e745f7469636b3001105469636b000128636c61696d5f7469636b3001105469636b002300344163636f756e744c6f636b6564002400584d697373696e674368616e6e656c486f6c644e6f746500250058496e76616c69644368616e6e656c486f6c644e6f746500260068496e76616c69644368616e6e656c486f6c64436c61696d6572730027006c4368616e6e656c486f6c644e6f746542656c6f774d696e696d756d00280054496e76616c69645461784e6f74654163636f756e740029004c496e76616c69645461784f7065726174696f6e002a005c496e73756666696369656e74546178496e636c756465640c01207461785f73656e74180110753132380001207461785f6f776564180110753132380001286163636f756e745f696400012c4163636f756e7449643332002b0060496e73756666696369656e74426c6f636b566f7465546178002c0048496e656c696769626c65546178566f746572002d0064426c6f636b566f7465496e76616c69645369676e6174757265002e0068496e76616c6964426c6f636b566f7465416c6c6f636174696f6e002f0050496e76616c6964426c6f636b566f7465526f6f7400300058496e76616c6964426c6f636b566f746573436f756e740031005c496e76616c6964426c6f636b566f74696e67506f77657200320050496e76616c6964426c6f636b566f74654c6973740033004c496e76616c6964436f6d7075746550726f6f6600340058496e76616c6964426c6f636b566f7465536f7572636500350070496e73756666696369656e74426c6f636b566f74654d696e696d756d00360050496e76616c6964426c6f636b566f74655469636b0801107469636b3001105469636b0001346e6f7465626f6f6b5f7469636b3001105469636b0037005c496e76616c696444656661756c74426c6f636b566f746500380074496e76616c696444656661756c74426c6f636b566f7465417574686f72080118617574686f7200012c4163636f756e7449643332000120657870656374656400012c4163636f756e7449643332003900484e6f44656661756c74426c6f636b566f7465003a00001d010c406172676f6e5f7072696d6974697665731c6163636f756e742c4163636f756e74547970650001080c5461780000001c4465706f73697400010000210108486172676f6e5f6e6f746172795f6175646974644163636f756e74486973746f72794c6f6f6b75704572726f7200011030526f6f744e6f74466f756e64000000484c6173744368616e67654e6f74466f756e640001006c496e76616c69645472616e73666572546f4c6f63616c636861696e00020068426c6f636b53706563696669636174696f6e4e6f74466f756e640003000025010c486172676f6e5f6e6f746172795f6175646974146572726f723c4d61784c656e677468537472696e670000040029010174426f756e6465645665633c75382c20436f6e73745533323c3130303e3e000029010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00002d010000050d0031010c6870616c6c65745f6c6f63616c636861696e5f7472616e736665721870616c6c6574144576656e7404045400011c505472616e73666572546f4c6f63616c636861696e1401286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e741801583c5420617320436f6e6669673e3a3a42616c616e636500012c7472616e736665725f69641001585472616e73666572546f4c6f63616c636861696e49640001246e6f746172795f69641001204e6f74617279496400013c65787069726174696f6e5f7469636b3001105469636b0000046846756e64732073656e7420746f2061206c6f63616c636861696e6c5472616e73666572546f4c6f63616c636861696e457870697265640c01286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400012c7472616e736665725f69641001585472616e73666572546f4c6f63616c636861696e49640001246e6f746172795f69641001204e6f746172794964000104b85472616e7366657220746f206c6f63616c636861696e206578706972656420616e6420726f6c6c6564206261636b585472616e7366657246726f6d4c6f63616c636861696e0c01286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e741801583c5420617320436f6e6669673e3a3a42616c616e63650001246e6f746172795f69641001204e6f746172794964000204945472616e736665722066726f6d204c6f63616c636861696e20746f204d61696e636861696e6c5472616e7366657246726f6d4c6f63616c636861696e4572726f721401286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e741801583c5420617320436f6e6669673e3a3a42616c616e63650001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d6265720001146572726f7268013444697370617463684572726f720003049041207472616e7366657220696e746f20746865206d61696e636861696e206661696c65647c5472616e73666572546f4c6f63616c636861696e526566756e644572726f721401286163636f756e745f69640001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400012c7472616e736665725f69641001585472616e73666572546f4c6f63616c636861696e49640001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d6265720001146572726f7268013444697370617463684572726f72000404dc416e2065787069726564207472616e7366657220746f206c6f63616c636861696e206661696c656420746f20626520726566756e646564a0506f737369626c65496e76616c69644c6f63616c636861696e5472616e73666572416c6c6f7765640c012c7472616e736665725f69641001585472616e73666572546f4c6f63616c636861696e49640001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d626572000508450141206c6f63616c636861696e207472616e7366657220636f756c64206e6f7420626520636c65616e65642075702070726f7065726c792e20506f737369626c6520696e76616c6964207472616e73666572586e656564696e6720696e7665737469676174696f6e2e345461786174696f6e4572726f721001246e6f746172795f69641001204e6f74617279496400013c6e6f7465626f6f6b5f6e756d6265721001384e6f7465626f6f6b4e756d62657200010c7461781801583c5420617320436f6e6669673e3a3a42616c616e63650001146572726f7268013444697370617463684572726f720006043c5461786174696f6e206661696c6564047c54686520604576656e746020656e756d206f6620746869732070616c6c657435010c5870616c6c65745f626c6f636b5f7365616c5f737065631870616c6c6574144576656e740404540001084c566f74654d696e696d756d41646a757374656410015065787065637465645f626c6f636b5f766f7465731801107531323800014861637475616c5f626c6f636b5f766f7465731801107531323800014873746172745f766f74655f6d696e696d756d18012c566f74654d696e696d756d0001406e65775f766f74655f6d696e696d756d18012c566f74654d696e696d756d00000064436f6d70757465446966666963756c747941646a757374656410014c65787065637465645f626c6f636b5f74696d6530010c75363400014461637475616c5f626c6f636b5f74696d6530010c75363400014073746172745f646966666963756c7479180144436f6d70757465446966666963756c74790001386e65775f646966666963756c7479180144436f6d70757465446966666963756c7479000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657439010c3870616c6c65745f646f6d61696e731870616c6c6574144576656e74040454000118445a6f6e655265636f72645570646174656408012c646f6d61696e5f68617368340128446f6d61696e4861736800012c7a6f6e655f7265636f72643d0101605a6f6e655265636f72643c543a3a4163636f756e7449643e000004804120646f6d61696e207a6f6e65207265636f726420776173207570646174656440446f6d61696e5265676973746572656408012c646f6d61696e5f68617368340128446f6d61696e48617368000130726567697374726174696f6e5d010180446f6d61696e526567697374726174696f6e3c543a3a4163636f756e7449643e0001045c4120646f6d61696e20776173207265676973746572656434446f6d61696e52656e6577656404012c646f6d61696e5f68617368340128446f6d61696e486173680002045c4120646f6d61696e20776173207265676973746572656434446f6d61696e4578706972656404012c646f6d61696e5f68617368340128446f6d61696e48617368000304504120646f6d61696e20776173206578706972656468446f6d61696e526567697374726174696f6e43616e63656c656408012c646f6d61696e5f68617368340128446f6d61696e48617368000130726567697374726174696f6e5d010180446f6d61696e526567697374726174696f6e3c543a3a4163636f756e7449643e00040841014120646f6d61696e20726567697374726174696f6e207761732063616e63656c65642064756520746f206120636f6e666c696374696e6720726567697374726174696f6e20696e207468652073616d65107469636b5c446f6d61696e526567697374726174696f6e4572726f720c012c646f6d61696e5f68617368340128446f6d61696e486173680001286163636f756e745f696400012c4163636f756e74496433320001146572726f7268013444697370617463684572726f72000504b04120646f6d61696e20726567697374726174696f6e206661696c65642064756520746f20616e206572726f72047c54686520604576656e746020656e756d206f6620746869732070616c6c65743d010c406172676f6e5f7072696d69746976657318646f6d61696e285a6f6e655265636f726404244163636f756e7449640100000c013c7061796d656e745f6163636f756e740001244163636f756e7449640001246e6f746172795f69641001204e6f74617279496400012076657273696f6e73410101cc426f756e64656442547265654d61703c53656d7665722c2056657273696f6e486f73742c20436f6e73745533323c3530303e3e000041010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01450104560149010453000004005101013842547265654d61703c4b2c20563e000045010c406172676f6e5f7072696d69746976657318646f6d61696e1853656d76657200000c01146d616a6f7210010c7533320001146d696e6f7210010c753332000114706174636810010c753332000049010c406172676f6e5f7072696d69746976657318646f6d61696e2c56657273696f6e486f737400000801306461746173746f72655f69644d010170426f756e6465645665633c75382c20436f6e73745533323c35303e3e000110686f737405010110486f737400004d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005101042042547265654d617008044b01450104560149010004005501000000550100000259010059010000040845014901005d01083870616c6c65745f646f6d61696e7348446f6d61696e526567697374726174696f6e04244163636f756e7449640100000801286163636f756e745f69640001244163636f756e744964000148726567697374657265645f61745f7469636b3001105469636b000061010c4870616c6c65745f70726963655f696e6465781870616c6c6574144576656e74040454000108204e6577496e646578000004c44576656e7420656d6974746564207768656e2061206e657720707269636520696e646578206973207375626d69747465643c4f70657261746f724368616e67656404012c6f70657261746f725f6964000130543a3a4163636f756e744964000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657465010c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f73657469010134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469010000026d01006d0100000408b4300071010c5070616c6c65745f626c6f636b5f726577617264731870616c6c6574144576656e74040454000108345265776172644372656174656404011c72657761726473750101a85665633c426c6f636b5061796f75743c543a3a4163636f756e7449642c20543a3a42616c616e63653e3e000000445265776172644372656174654572726f721001286163636f756e745f6964000130543a3a4163636f756e7449640001186172676f6e73850101484f7074696f6e3c543a3a42616c616e63653e0001246f776e657273686970850101484f7074696f6e3c543a3a42616c616e63653e0001146572726f7268013444697370617463684572726f72000100047c54686520604576656e746020656e756d206f6620746869732070616c6c6574750100000279010079010c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c2c426c6f636b5061796f757408244163636f756e74496401001c42616c616e63650118001401286163636f756e745f69640001244163636f756e7449640001246f776e657273686970c0011c42616c616e63650001186172676f6e73c0011c42616c616e636500012c7265776172645f747970657d01013c426c6f636b52657761726454797065000150626c6f636b5f7365616c5f617574686f72697479810101704f7074696f6e3c426c6f636b5365616c417574686f7269747949643e00007d010c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c3c426c6f636b5265776172645479706500010c144d696e657200000014566f7465720001002c50726f666974536861726500020000810104184f7074696f6e04045401b80108104e6f6e6500000010536f6d650400b80000010000850104184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000089010c2c70616c6c65745f6d696e741870616c6c6574144576656e7404045400010c2c426974636f696e4d696e740c01286163636f756e745f6964000130543a3a4163636f756e74496400011c7574786f5f69648d0101384f7074696f6e3c5574786f49643e000118616d6f756e74180128543a3a42616c616e63650000044c416e7920626974636f696e73206d696e746564284d696e696e674d696e74100118616d6f756e74180128543a3a42616c616e63650001247065725f6d696e6572180128543a3a42616c616e63650001246172676f6e5f637069910101204172676f6e4350490001246c6971756964697479180128543a3a42616c616e63650001084d0154686520616d6f756e74206f66206d6963726f676f6e73206d696e74656420666f72206d696e696e672e204e4f54453a206163636f756e74732062656c6f77204578697374656e7469616c204465706f7369746077696c6c206e6f742062652061626c6520746f206d696e74244d696e744572726f721401246d696e745f74797065950101204d696e74547970650001286163636f756e745f6964000130543a3a4163636f756e74496400011c7574786f5f69648d0101384f7074696f6e3c5574786f49643e000118616d6f756e74180128543a3a42616c616e63650001146572726f7268013444697370617463684572726f720002085d014572726f727320656e636f756e7465726564207768696c65206d696e74696e672e204d6f7374206f6674656e2064756520746f206d696e7420616d6f756e74207374696c6c2062656c6f77204578697374656e7469616c1c4465706f736974047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d0104184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000091010c3473705f61726974686d657469632c66697865645f706f696e7424466978656449313238000004002d01011069313238000095010c2c70616c6c65745f6d696e741870616c6c6574204d696e74547970650001081c426974636f696e000000184d696e696e670001000099010c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001781c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739d0101185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e304d696e746564437265646974040118616d6f756e74180128543a3a42616c616e6365000b04e0536f6d6520637265646974207761732062616c616e63656420616e6420616464656420746f2074686520546f74616c49737375616e63652e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e284275726e656444656274040118616d6f756e74180128543a3a42616c616e6365000d04cc536f6d65206465627420686173206265656e2064726f707065642066726f6d2074686520546f74616c2049737375616e63652e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000e041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000f04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e74496400100460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e63650011042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650012042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500150460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500160460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001704ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e1048656c640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500180480536f6d652062616c616e63652077617320706c61636564206f6e20686f6c642e284275726e656448656c640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001904a048656c642062616c616e636520776173206275726e65642066726f6d20616e206163636f756e742e385472616e736665724f6e486f6c64100118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001a04150141207472616e73666572206f662060616d6f756e7460206f6e20686f6c642066726f6d2060736f757263656020746f206064657374602077617320696e697469617465642e3c5472616e73666572416e64486f6c64100118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e74496400012c7472616e73666572726564180128543a3a42616c616e6365001b04090154686520607472616e73666572726564602062616c616e636520697320706c61636564206f6e20686f6c642061742074686520606465737460206163636f756e742e2052656c65617365640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001c0490536f6d652062616c616e6365207761732072656c65617365642066726f6d20686f6c642e28556e65787065637465640400b9010138556e65787065637465644b696e64001d04b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d0114346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000a10108346172676f6e5f72756e74696d654452756e74696d65486f6c64526561736f6e000114284d696e696e67536c6f740400a501017870616c6c65745f6d696e696e675f736c6f743a3a486f6c64526561736f6e000600185661756c74730400a901016470616c6c65745f7661756c74733a3a486f6c64526561736f6e00080030426974636f696e4c6f636b730400ad01018070616c6c65745f626974636f696e5f6c6f636b733a3a486f6c64526561736f6e00090030426c6f636b526577617264730400b101018070616c6c65745f626c6f636b5f726577617264733a3a486f6c64526561736f6e0013002054726561737572790400b501016c70616c6c65745f74726561737572793a3a486f6c64526561736f6e001f0000a5010c4870616c6c65745f6d696e696e675f736c6f741870616c6c657428486f6c64526561736f6e0001043c526567697374657241734d696e657200000000a9010c3470616c6c65745f7661756c74731870616c6c657428486f6c64526561736f6e00010c28456e7465725661756c74000000344f626c69676174696f6e4665650001003850656e64696e67436f6c6c65637400020000ad010c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c657428486f6c64526561736f6e0001044852656c65617365426974636f696e4c6f636b00000000b1010c5070616c6c65745f626c6f636b5f726577617264731870616c6c657428486f6c64526561736f6e000104404d617475726174696f6e506572696f6400000000b5010c3c70616c6c65745f74726561737572791870616c6c657428486f6c64526561736f6e00010454436f6e7472696275746564546f547265617375727900000000b9010c3c70616c6c65745f62616c616e6365731870616c6c657438556e65787065637465644b696e640001083842616c616e636555706461746564000000544661696c6564546f4d75746174654163636f756e7400010000bd010c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001781c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739d0101185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e304d696e746564437265646974040118616d6f756e74180128543a3a42616c616e6365000b04e0536f6d6520637265646974207761732062616c616e63656420616e6420616464656420746f2074686520546f74616c49737375616e63652e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e284275726e656444656274040118616d6f756e74180128543a3a42616c616e6365000d04cc536f6d65206465627420686173206265656e2064726f707065642066726f6d2074686520546f74616c2049737375616e63652e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000e041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000f04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e74496400100460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e63650011042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650012042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500150460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500160460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001704ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e1048656c640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500180480536f6d652062616c616e63652077617320706c61636564206f6e20686f6c642e284275726e656448656c640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001904a048656c642062616c616e636520776173206275726e65642066726f6d20616e206163636f756e742e385472616e736665724f6e486f6c64100118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001a04150141207472616e73666572206f662060616d6f756e7460206f6e20686f6c642066726f6d2060736f757263656020746f206064657374602077617320696e697469617465642e3c5472616e73666572416e64486f6c64100118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e74496400012c7472616e73666572726564180128543a3a42616c616e6365001b04090154686520607472616e73666572726564602062616c616e636520697320706c61636564206f6e20686f6c642061742074686520606465737460206163636f756e742e2052656c65617365640c0118726561736f6ea1010150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001c0490536f6d652062616c616e6365207761732072656c65617365642066726f6d20686f6c642e28556e65787065637465640400b9010138556e65787065637465644b696e64001d04b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c1010c3c70616c6c65745f74785f70617573651870616c6c6574144576656e740404540001082843616c6c50617573656404012466756c6c5f6e616d65c501015052756e74696d6543616c6c4e616d654f663c543e000004b8546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f77207061757365642e3043616c6c556e70617573656404012466756c6c5f6e616d65c501015052756e74696d6543616c6c4e616d654f663c543e000104c0546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f7720756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c50100000408c901c90100c9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000cd010c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d1010c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748c01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d5010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c748c01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64bc01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c748c01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d9010c3c70616c6c65745f74726561737572791870616c6c6574144576656e740404540001208c436f756c644e6f74446973747269627574654561726e696e6773546f426f6e644c6f741801206672616d655f696430011c4672616d6549640001207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f7449640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500013864697370617463685f6572726f7268013444697370617463684572726f72000004f4416e206572726f72206f63637572726564207768696c6520706179696e67206672616d65206561726e696e677320666f72206120626f6e64206c6f742e88436f756c644e6f745472616e73666572546f547265617375727952657365727665730c01206672616d655f696430011c4672616d654964000118616d6f756e74180128543a3a42616c616e636500013864697370617463685f6572726f7268013444697370617463684572726f720001041501416e206572726f72206f63637572726564207768696c65206d6f76696e67206269642d706f6f6c2066756e647320696e746f2074726561737572792072657365727665732e604672616d654561726e696e677344697374726962757465641001206672616d655f696430011c4672616d6549640001506269645f706f6f6c5f6469737472696275746564180128543a3a42616c616e636500014474726561737572795f7265736572766573180128543a3a42616c616e636500015070617274696369706174696e675f7661756c747310010c753332000204804672616d65206561726e696e677320776572652064697374726962757465642e5c4672616d655661756c744361706974616c4c6f636b65640c01206672616d655f696430011c4672616d654964000150746f74616c5f656c696769626c655f626f6e64731801107531323800015070617274696369706174696e675f7661756c747310010c753332000304c05468652063757272656e74206672616d652773207661756c74206361706974616c20776173206c6f636b656420696e2e58436f756c644e6f7452656c65617365426f6e644c6f741801206672616d655f696430011c4672616d6549640001207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f744964000118616d6f756e74180128543a3a42616c616e63650001286163636f756e745f6964000130543a3a4163636f756e74496400013864697370617463685f6572726f7268013444697370617463684572726f72000404b4416e206572726f72206f63637572726564207768696c652072656c656173696e67206120626f6e64206c6f742e40426f6e644c6f745075726368617365641001207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f7449640001286163636f756e745f6964000130543a3a4163636f756e744964000114626f6e6473100114426f6e6473000504c04120626f6e6420707572636861736520656e74657265642061207661756c742773206163636570746564206c6973742e5c426f6e644c6f7452656c656173655363686564756c65641801207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f7449640001286163636f756e745f6964000130543a3a4163636f756e744964000114626f6e6473100114426f6e647300014072656c656173655f6672616d655f696430011c4672616d654964000118726561736f6edd010144426f6e6452656c65617365526561736f6e00060411014120626f6e64206c6f74207761732072656d6f7665642066726f6d20667574757265206672616d657320616e64207363686564756c656420666f722072656c656173652e3c426f6e644c6f7452656c65617365641401206672616d655f696430011c4672616d6549640001207661756c745f696410011c5661756c74496400012c626f6e645f6c6f745f6964300124426f6e644c6f7449640001286163636f756e745f6964000130543a3a4163636f756e744964000114626f6e6473100114426f6e6473000704604120626f6e64206c6f74207761732072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dd010c3c70616c6c65745f74726561737572791870616c6c657444426f6e6452656c65617365526561736f6e00010c3c557365724c69717569646174696f6e0000001842756d7065640001002c5661756c74436c6f73656400020000e1010c4870616c6c65745f6665655f636f6e74726f6c1870616c6c6574144576656e7404045400010828466565536b69707065640401186f726967696ee50101c03c543a3a52756e74696d654f726967696e206173204f726967696e54726169743e3a3a50616c6c6574734f726967696e0000047841207472616e73616374696f6e206665652077617320736b69707065642e3046656544656c6567617465640c01186f726967696ee50101c03c543a3a52756e74696d654f726967696e206173204f726967696e54726169743e3a3a50616c6c6574734f726967696e00011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e7449640001047c41207472616e73616374696f6e20666565207761732064656c656761746564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e50108346172676f6e5f72756e74696d65304f726967696e43616c6c65720001041873797374656d0400e90101746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000000e9010c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100011010526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020028417574686f72697a656400030000ed010c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574144576656e7404045400011c704f7065726174696f6e616c4163636f756e745265676973746572656414014c6f7065726174696f6e616c5f6163636f756e74000130543a3a4163636f756e7449640001347661756c745f6163636f756e74000130543a3a4163636f756e7449640001586d696e696e675f66756e64696e675f6163636f756e74000130543a3a4163636f756e7449640001486d696e696e675f626f745f6163636f756e74000130543a3a4163636f756e74496400011c73706f6e736f72bc01504f7074696f6e3c543a3a4163636f756e7449643e000004fc416e206f7065726174696f6e616c206163636f756e74207761732072656769737465726564207769746820697473206c696e6b6564206163636f756e74732e584163636f756e7457656e744f7065726174696f6e616c04011c6163636f756e74000130543a3a4163636f756e7449640001047c4163636f756e7420686173206265636f6d65206f7065726174696f6e616c2e5c4f7065726174696f6e616c5265776172644561726e65640c011c6163636f756e74000130543a3a4163636f756e74496400012c7265776172645f6b696e64f10101544f7065726174696f6e616c5265776172644b696e64000118616d6f756e74180128543a3a42616c616e63650002040d014120726577617264206973206561726e656420666f7220616e206f7065726174696f6e616c206163636f756e742c20627574206e6f742079657420636c61696d65642e644f7065726174696f6e616c52657761726473436c61696d656410014c6f7065726174696f6e616c5f6163636f756e74000130543a3a4163636f756e744964000120636c61696d616e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014472656d61696e696e675f70656e64696e67180128543a3a42616c616e6365000304f4436c61696d61626c65206f7065726174696f6e616c20726577617264732077657265207061696420746f2061206d616e61676564206163636f756e742e5052657761726473436f6e6669675570646174656408016c6f7065726174696f6e616c5f726566657272616c5f726577617264180128543a3a42616c616e6365000154726566657272616c5f626f6e75735f726577617264180128543a3a42616c616e63650004048852657761726420636f6e6669672076616c756573207765726520757064617465642e644f7065726174696f6e616c50726f6772657373466f726365641c011c6163636f756e74000130543a3a4163636f756e74496400016c7570646174655f6f7065726174696f6e616c5f70726f6772657373200110626f6f6c0001506861735f756e69737761705f7472616e73666572200110626f6f6c0001347661756c745f63726561746564200110626f6f6c00017c6861735f74726561737572795f706f6f6c5f70617274696369706174696f6e200110626f6f6c0001586f627365727665645f626974636f696e5f746f74616c180128543a3a42616c616e63650001686f627365727665645f6d696e696e675f736561745f746f74616c10010c753332000504a04f7065726174696f6e616c2070726f67726573732077617320666f7263656420627920726f6f742e58456e637279707465645365727665725570646174656408011c73706f6e736f72000130543a3a4163636f756e74496400011c73706f6e736565000130543a3a4163636f756e744964000604f4412073706f6e736f7220757064617465642074686520656e6372797074656420736572766572207061796c6f616420666f7220612073706f6e7365652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1010c406172676f6e5f7072696d6974697665732470726f766964657273544f7065726174696f6e616c5265776172644b696e640001082841637469766174696f6e00000034526566657272616c426f6e757300010000f5010c6070616c6c65745f657468657265756d5f76657269666965721870616c6c6574144576656e7404045400011050426561636f6e486561646572496d706f72746564080128626c6f636b5f6861736834011048323536000110736c6f7430010c75363400000074457865637574696f6e486561646572416e63686f72496d706f72746564080128626c6f636b5f68617368340148457865637574696f6e426c6f636b48617368000130626c6f636b5f6e756d626572300150457865637574696f6e426c6f636b4e756d6265720001005053796e63436f6d6d697474656555706461746564040118706572696f6430010c753634000200504f7065726174696e674d6f64654368616e6765640401106d6f6465f901014842617369634f7065726174696e674d6f646500030444536574204f7065726174696e674d6f6465047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f9010c6070616c6c65745f657468657265756d5f76657269666965721474797065734842617369634f7065726174696e674d6f6465000108184e6f726d616c0000001848616c74656400010000fd010c6870616c6c65745f63726f7373636861696e5f7472616e736665721870616c6c6574144576656e74040454000104484275726e4e6f746963654163636570746564080130736f757263655f636861696e0102012c536f75726365436861696e0001186e6f74696365050201344275726e4e6f746963653c543e000004e0416e20696e626f756e64206275726e206e6f746963652077617320616363657074656420616e6420736574746c6564206c6f63616c6c792e047c54686520604576656e746020656e756d206f6620746869732070616c6c657401020c6870616c6c65745f63726f7373636861696e5f7472616e736665721870616c6c65742c536f75726365436861696e00010420457468657265756d0000000005020c6870616c6c65745f63726f7373636861696e5f7472616e736665721870616c6c6574284275726e4e6f74696365040454000014011066726f6d0902011048313630000108746f000130543a3a4163636f756e74496400012861737365745f6b696e641102012441737365744b696e64000118616d6f756e74180128543a3a42616c616e63650001346163636f756e745f6e6f6e63652c010c75363400000902083c7072696d69746976655f74797065731048313630000004000d0201205b75383b2032305d00000d0200000314000000080011020c6870616c6c65745f63726f7373636861696e5f7472616e736665721870616c6c65742441737365744b696e64000108144172676f6e0000001c4172676f6e6f7400010000150208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000190200000234001d02000002210200210200000408101000250208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ed4014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d6529020144436f773c277374617469632c207374723e00002902040c436f77040454012d020004002d020000002d020000050200310208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000035020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73390201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973410201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39020000023d02003d02000004083838004102000002380045020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373490201845065724469737061746368436c6173733c57656967687473506572436c6173733e000049020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014d02000c01186e6f726d616c4d0201045400012c6f7065726174696f6e616c4d020104540001246d616e6461746f72794d0201045400004d020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963510201384f7074696f6e3c5765696768743e0001246d61785f746f74616c510201384f7074696f6e3c5765696768743e0001207265736572766564510201384f7074696f6e3c5765696768743e0000510204184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000055020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000008010c6d6178590201545065724469737061746368436c6173733c7533323e00013c6d61785f6865616465725f73697a655d02012c4f7074696f6e3c7533323e000059020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100006102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400006502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d6529020144436f773c277374617469632c207374723e000124696d706c5f6e616d6529020144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e080108753800006902040c436f77040454016d020004006d020000006d0200000271020071020000040875021000750200000308000000080079020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c65747d020c406172676f6e5f7072696d6974697665731c6469676573747324446967657374736574084c4e6f7465626f6f6b5665726966794572726f72011901244163636f756e7449640100001c0118617574686f720001244163636f756e744964000128626c6f636b5f766f74658102013c426c6f636b566f7465446967657374000128766f74696e675f6b6579850201744f7074696f6e3c506172656e74566f74696e674b65794469676573743e000128666f726b5f706f776572910201444f7074696f6e3c466f726b506f7765723e0001286672616d655f696e666fa50201444f7074696f6e3c4672616d65496e666f3e0001107469636bad0201285469636b4469676573740001246e6f7465626f6f6b73b102018c4e6f7465626f6f6b4469676573743c4e6f7465626f6f6b5665726966794572726f723e000081020c406172676f6e5f7072696d6974697665731c646967657374733c426c6f636b566f74654469676573740000080130766f74696e675f706f776572c00140426c6f636b566f74696e67506f77657200012c766f7465735f636f756e74d4010c7533320000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c406172676f6e5f7072696d6974697665731c6469676573747354506172656e74566f74696e674b65794469676573740000040144706172656e745f766f74696e675f6b65798d0201444f7074696f6e3c566f74696e674b65793e00008d0204184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000910204184f7074696f6e0404540195020108104e6f6e6500000010536f6d6504009502000001000095020c406172676f6e5f7072696d69746976657328666f726b5f706f77657224466f726b506f77657200001c013869735f6c61746573745f766f7465200110626f6f6c0001246e6f7465626f6f6b732c010c753634000130766f74696e675f706f77657299020110553235360001347365616c5f737472656e6774689902011055323536000160746f74616c5f636f6d707574655f646966666963756c7479990201105532353600014c766f74655f637265617465645f626c6f636b73c00110753132380001446d696e65725f6e6f6e63655f73636f7265a10201304f7074696f6e3c553235363e00009902083c7072696d69746976655f74797065731055323536000004009d0201205b7536343b20345d00009d02000003040000003000a10204184f7074696f6e0404540199020108104e6f6e6500000010536f6d65040099020000010000a50204184f7074696f6e04045401a9020108104e6f6e6500000010536f6d650400a9020000010000a9020c406172676f6e5f7072696d6974697665731c64696765737473244672616d65496e666f00000c01206672616d655f69642c011c4672616d6549640001706672616d655f7265776172645f7469636b735f72656d61696e696e67d4010c75333200013069735f6e65775f6672616d65200110626f6f6c0000ad020c406172676f6e5f7072696d697469766573107469636b285469636b446967657374000004003001105469636b0000b1020c406172676f6e5f7072696d6974697665731c64696765737473384e6f7465626f6f6b446967657374042c5665726966794572726f72011901000401246e6f7465626f6f6b73b50201ec426f756e6465645665633c4e6f7465626f6f6b4175646974526573756c743c5665726966794572726f723e2c20436f6e73745533323c3235363e3e0000b5020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b902045300000400c10201185665633c543e0000b9020c406172676f6e5f7072696d697469766573206e6f7465626f6f6b4c4e6f7465626f6f6b4175646974526573756c74042c5665726966794572726f72011901001001246e6f746172795f6964d401204e6f74617279496400013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d6265720001107469636b2c01105469636b00014c61756469745f66697273745f6661696c757265bd02014c4f7074696f6e3c5665726966794572726f723e0000bd0204184f7074696f6e0404540119010108104e6f6e6500000010536f6d65040019010000010000c102000002b90200c5020c3870616c6c65745f646967657374731870616c6c6574144572726f72040454000134604475706c6963617465426c6f636b566f74654469676573740000047c4475706c696361746520426c6f636b566f746544696765737420666f756e64544475706c6963617465417574686f72446967657374000104704475706c696361746520417574686f7244696765737420666f756e644c4475706c69636174655469636b446967657374000204684475706c6963617465205469636b44696765737420666f756e64784475706c6963617465506172656e74566f74696e674b6579446967657374000304944475706c696361746520506172656e74566f74696e674b657944696765737420666f756e645c4475706c69636174654e6f7465626f6f6b446967657374000404784475706c6963617465204e6f7465626f6f6b44696765737420666f756e64604475706c6963617465466f726b506f7765724469676573740005047c4475706c696361746520466f726b506f77657244696765737420666f756e64584d697373696e67426c6f636b566f74654469676573740006045c4d697373696e6720426c6f636b566f74654469676573744c4d697373696e67417574686f72446967657374000704504d697373696e6720417574686f72446967657374444d697373696e675469636b446967657374000804484d697373696e67205469636b446967657374704d697373696e67506172656e74566f74696e674b6579446967657374000904744d697373696e6720506172656e74566f74696e674b6579446967657374544d697373696e674e6f7465626f6f6b446967657374000a04584d697373696e67204e6f7465626f6f6b44696765737450436f756c644e6f744465636f6465446967657374000b04604661696c656420746f206465636f64652064696765737473604475706c69636174654672616d65496e666f446967657374000c04644475706c6963617465204672616d65496e666f20666f756e64048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec9020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd0200000408000400d102083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e88015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73d502018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000d5020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400d90201185665633c543e0000d9020000020000dd020c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573d90201445665633c543a3a4163636f756e7449643e00011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573d90201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50401904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f7765696768742801185765696768740001a85501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003d012a2a49662074686520617070726f76616c207468726573686f6c64206973206d65742028696e636c7564696e67207468652073656e646572277320617070726f76616c292c20746869732077696c6c4501696d6d6564696174656c792065786563757465207468652063616c6c2e2a2a205468697320697320746865206f6e6c792077617920746f20657865637574652061206d756c74697369672063616c6c202dc060617070726f76655f61735f6d756c7469602077696c6c206e65766572207472696767657220657865637574696f6e2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e004d014e4f54453a20466f7220696e7465726d65646961746520617070726f76616c7320286e6f74207468652066696e616c20617070726f76616c292c20796f752073686f756c642067656e6572616c6c7920757365450160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c20616e64206973206d6f726528656666696369656e742e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573d90201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50401904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002985501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e0039012a2a546869732066756e6374696f6e2077696c6c204e455645522065786563757465207468652063616c6c2c206576656e2069662074686520617070726f76616c207468726573686f6c642069735101726561636865642e2a2a204974206f6e6c792072656769737465727320617070726f76616c2e20546f2061637475616c6c792065786563757465207468652063616c6c2c206061735f6d756c746960206d757374f062652063616c6c65642077697468207468652066756c6c2063616c6c206461746120627920616e79206f6620746865207369676e61746f726965732e004d01546869732066756e6374696f6e206973206d6f726520656666696369656e74207468616e206061735f6d756c74696020666f7220696e7465726d65646961746520617070726f76616c732073696e6365206974d06f6e6c79207265717569726573207468652063616c6c20686173682c206e6f74207468652066756c6c2063616c6c20646174612e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003d014e4f54453a20546f2065786563757465207468652063616c6c20616674657220617070726f76616c73206172652067617468657265642c20616e79207369676e61746f7279206d7573742063616c6c29016061735f6d756c7469602077697468207468652066756c6c2063616c6c20646174612e20546869732066756e6374696f6e2063616e6e6f742065786563757465207468652063616c6c2e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573d90201445665633c543a3a4163636f756e7449643e00012474696d65706f696e7488017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573d90201445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee10208346172676f6e5f72756e74696d652c52756e74696d6543616c6c0001701853797374656d0400350201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400c90201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e000200204d756c74697369670400dd0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0003001450726f78790400e50201a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e000400145469636b730400f50201a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5469636b732c2052756e74696d653e000500284d696e696e67536c6f740400f90201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d696e696e67536c6f742c2052756e74696d653e00060030426974636f696e5574786f730400fd0201c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426974636f696e5574786f732c2052756e74696d653e000700185661756c747304001d0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5661756c74732c2052756e74696d653e00080030426974636f696e4c6f636b730400450301c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426974636f696e4c6f636b732c2052756e74696d653e000900204e6f7461726965730400610301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f7461726965732c2052756e74696d653e000a00204e6f7465626f6f6b0400650301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f7465626f6f6b2c2052756e74696d653e000b00484c6f63616c636861696e5472616e736665720400a50301dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6f63616c636861696e5472616e736665722c2052756e74696d653e000c0034426c6f636b5365616c537065630400a90301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426c6f636b5365616c537065632c2052756e74696d653e000d001c446f6d61696e730400ad0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000e00285072696365496e6465780400b10301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5072696365496e6465782c2052756e74696d653e000f001c4772616e6470610400b90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e00110024426c6f636b5365616c0400e50301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426c6f636b5365616c2c2052756e74696d653e00120030426c6f636b526577617264730400010401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426c6f636b526577617264732c2052756e74696d653e001300104d696e740400050401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d696e742c2052756e74696d653e0014002042616c616e6365730400090401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e001500244f776e6572736869700400110401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f776e6572736869702c2052756e74696d653e0016001c547850617573650400150401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c547850617573652c2052756e74696d653e0017001c5574696c6974790400190401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001900105375646f0400210401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e001a002054726561737572790400250401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e001f004c4f7065726174696f6e616c4163636f756e74730400290401e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e616c4163636f756e74732c2052756e74696d653e00220040457468657265756d566572696669657204004d0401d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c457468657265756d56657269666965722c2052756e74696d653e0023004843726f7373636861696e5472616e736665720400a50401dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f7373636861696e5472616e736665722c2052756e74696d653e00240000e5020c3070616c6c65745f70726f78791870616c6c65741043616c6c04045400012c1470726f78790c01107265616ce90201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065f10201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465e90201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465e90201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005d015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e7473206372656174656420627920606372656174655f70757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465789c010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572e90201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f787954797065000114696e6465789c010c753136000118686569676874d40144426c6f636b4e756d626572466f723c543e0001246578745f696e646578d4010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fb0606372656174655f7075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0055012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c656420606372656174655f707572656020746f206372656174652074686973206163636f756e742e55012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e2050726f6261626c79206030602e09012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e45012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e51012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265f86163636f756e742077686f736520606372656174655f70757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616ce90201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616ce90201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465e90201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465e90201504163636f756e7449644c6f6f6b75704f663c543e0001107265616ce90201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065f10201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780190011408496404000001244163636f756e74496400000014496e6465780400ed0201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004000d0201205b75383b2032305d00040000ed020000069000f10204184f7074696f6e04045401980108104e6f6e6500000010536f6d650400980000010000f5020c3070616c6c65745f7469636b731870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef9020c4870616c6c65745f6d696e696e675f736c6f741870616c6c65741043616c6c0404540001080c6269640c010c626964180128543a3a42616c616e63650001106b657973b0011c543a3a4b6579730001446d696e696e675f6163636f756e745f6964bc01504f7074696f6e3c543a3a4163636f756e7449643e00005861015375626d697420612062696420666f722061206d696e696e6720736c6f7420696e20746865206e65787420636f686f72742e204f6e636520616c6c2073706f7473206172652066696c6c656420696e20746865206e657874f4636f686f72742c2061206269646465722063616e20626520737570706c616e74656420627920737570706c79696e67206120686967686572206269642e00b84561636820736c6f742068617320604d6178436f686f727453697a65602073706f747320617661696c61626c652e005101546f20626520656c696769626c6520666f72206120736c6f742c20796f75206d757374206861766520746865207265717569726564206f776e65727368697020746f6b656e7320286172676f6e6f74732920696e590174686973206163636f756e742e2054686520726571756972656420616d6f756e742069732063616c63756c6174656420617320612070657263656e74616765206f662074686520746f74616c206f776e6572736869705501746f6b656e7320696e20746865206e6574776f726b2e20546869732070657263656e746167652069732061646a7573746564206265666f72652074686520626567696e6e696e67206f66206561636820736c6f742e004501496620796f757220626964206973206e6f206c6f6e6765722077696e6e696e672c20612060536c6f7442696464657244726f7070656460206576656e742077696c6c20626520656d69747465642e2042792d016d6f6e69746f72696e6720666f722074686973206576656e742c20796f752077696c6c2062652061626c6520746f20656e7375726520796f7572206269642069732061636365707465642e000d014e4f54453a2062696464696e6720666f72206561636820736c6f742077696c6c20626520636c6f73656420617420612072616e646f6d20626c6f636b2077697468696e3d01606d696e696e675f636f6e6669672e7469636b735f6265666f72655f6269645f656e645f666f725f7672665f636c6f73656020626c6f636b73206f662074686520736c6f7420656e642074696d652e00610154686520736c6f74206475726174696f6e2063616e2062652063616c63756c617465642061732060426c6f636b734265747765656e536c6f7473202a204d61784d696e657273202f204d6178436f686f727453697a65602e002c506172616d65746572733a902d2060626964603a2054686520616d6f756e74206f66206172676f6e7320746f206269644d012d20606b657973603a205468652073657373696f6e2022686f7422206b65797320666f722074686520736c6f742028426c6f636b5365616c417574686f72697479496420616e64204772616e6470614964292e59012d20606d696e696e675f6163636f756e745f6964603a2054686973206163636f756e745f696420616c6c6f777320796f7520746f206f7065726174652061732074686973206d696e6572206163636f756e742069642c01012020627574207573652066756e64696e6720286172676f6e6f747320616e6420626964292066726f6d20746865207375626d697474696e67206163636f756e746c636f6e6669677572655f6d696e696e675f736c6f745f64656c61790801446d696e696e675f736c6f745f64656c61798d0101304f7074696f6e3c5469636b3e0001887469636b735f6265666f72655f6269645f656e645f666f725f7672665f636c6f73658d0101304f7074696f6e3c5469636b3e000104bc41646d696e2066756e6374696f6e20746f2075706461746520746865206d696e696e6720736c6f742064656c61792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd020c5070616c6c65745f626974636f696e5f7574786f731870616c6c65741043616c6c0404540001141073796e630401247574786f5f73796e630103013c426974636f696e5574786f53796e63000004e85375626d6974746564207768656e206120626974636f696e205554584f20686173206265656e206d6f766564206f7220636f6e6669726d65642e4c7365745f636f6e6669726d65645f626c6f636b080138626974636f696e5f686569676874300134426974636f696e486569676874000148626974636f696e5f626c6f636b5f68617368d00140426974636f696e426c6f636b4861736800011449015365747320746865206d6f737420726563656e7420636f6e6669726d656420626974636f696e20626c6f636b2068656967687420286f6e6c792065786563757461626c6520627920746865204f7261636c65444f70657261746f72206163636f756e7429002c2320417267756d656e747311012a2060626974636f696e5f68656967687460202d20746865206c617465737420626974636f696e20626c6f636b2068656967687420746f20626520636f6e6669726d6564307365745f6f70657261746f720401286163636f756e745f6964000130543a3a4163636f756e74496400021025015365747320746865206f7261636c65206f70657261746f72206163636f756e7420696420286f6e6c792065786563757461626c652062792074686520526f6f74206163636f756e7429002c2320417267756d656e7473bc2a20606163636f756e745f696460202d20746865206163636f756e74206964206f6620746865206f70657261746f726066756e645f776974685f7574786f5f63616e64696461746508011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f52656600030cec42696e6420612063616e646964617465205554584f20726566206173207468652066756e64696e67205554584f20666f7220697473206c6f636b2e3d01546865206c6f636b732070616c6c657420617574686f72697a6573207468652070726f6d6f74696f6e3b20746869732070616c6c65742062696e6473207468652072656620616e6420626567696e7324747261636b696e672e5472656a6563745f7574786f5f63616e64696461746508011c7574786f5f69643001185574786f49640001207574786f5f726566cc011c5574786f526566000408450152656a65637420612070656e64696e672063616e646964617465205554584f20616e64206d6174657269616c697a6520697420617320616e206f727068616e207468726f75676820746865206c6f636b731c70616c6c65742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01030c406172676f6e5f7072696d69746976657324696e686572656e74733c426974636f696e5574786f53796e6300000c01147370656e74050301545665633c426974636f696e5574786f5370656e643e00011866756e6465641103015c5665633c426974636f696e5574786f46756e64696e673e00013473796e635f746f5f626c6f636b19030130426974636f696e426c6f636b0000050300000209030009030c406172676f6e5f7072696d69746976657324696e686572656e747340426974636f696e5574786f5370656e6400000c011c7574786f5f69642c01185574786f49640001207574786f5f7265660d03013c4f7074696f6e3c5574786f5265663e000138626974636f696e5f6865696768742c0134426974636f696e48656967687400000d0304184f7074696f6e04045401cc0108104e6f6e6500000010536f6d650400cc0000010000110300000215030015030c406172676f6e5f7072696d69746976657324696e686572656e747348426974636f696e5574786f46756e64696e67000014011c7574786f5f69642c01185574786f49640001207574786f5f726566cc011c5574786f5265660001207361746f736869732c01205361746f7368697300014465787065637465645f7361746f736869732c01205361746f73686973000138626974636f696e5f6865696768742c0134426974636f696e486569676874000019030c406172676f6e5f7072696d6974697665731c626974636f696e30426974636f696e426c6f636b0000080130626c6f636b5f6865696768742c0134426974636f696e486569676874000128626c6f636b5f68617368d00140426974636f696e426c6f636b4861736800001d030c3470616c6c65745f7661756c74731870616c6c65741043616c6c040454000120186372656174650401307661756c745f636f6e6669672103015c5661756c74436f6e6669673c543a3a42616c616e63653e000000386d6f646966795f66756e64696e670c01207661756c745f696410011c5661756c74496400013873656375726974697a6174696f6e180128543a3a42616c616e636500015073656375726974697a6174696f6e5f726174696fe0012446697865645531323800012061014d6f646966792066756e647320616c6c6f636174656420627920746865207661756c742e20546869732077696c6c206e6f74206166666563742069737375656420626974636f696e206c6f636b732c206275742077696c6cc86166666563742074686520616d6f756e74206f662066756e647320617661696c61626c6520666f72206e6577206f6e65732e00ec5468652073656375726974697a6174696f6e2070657263656e74206d757374206265206d61696e7461696e6564206f7220696e637265617365642e00610154686520616d6f756e7420616c6c6f6361746564206d6179206e6f7420676f2062656c6f7720746865206578697374696e6720726573657276656420616d6f756e74732c2062757420796f752063616e2072656c656173654d0166756e647320696e2074686973207661756c7420617320626974636f696e206c6f636b73206172652072656c65617365642e20546f2073746f702069737375696e6720616e79206d6f726520626974636f696e6c6c6f636b732c20757365207468652060636c6f736560206170692e306d6f646966795f7465726d730801207661756c745f696410011c5661756c7449640001147465726d73250301585661756c745465726d733c543a3a42616c616e63653e00020849014368616e676520746865207465726d73206f662074686973207661756c742e20546865206368616e67652077696c6c206265206170706c69656420617420746865206e657874206d696e696e6720736c6f7415016368616e67652074686174206973206174206c6561737420604d696e5465726d734d6f64696669636174696f6e426c6f636b44656c61796020626c6f636b7320617761792e14636c6f73650401207661756c745f696410011c5661756c744964000308410153746f70206f66666572696e67206164646974696f6e616c20626974636f696e206c6f636b732066726f6d2074686973207661756c742e2057696c6c206e6f7420616666656374206578697374696e671d016c6f636b732e2041732066756e6473206172652072657475726e65642c20746865792077696c6c2062652072656c656173656420746f20746865207661756c74206f776e65722e507265706c6163655f626974636f696e5f787075620801207661756c745f696410011c5661756c744964000130626974636f696e5f787075623d0301444f7061717565426974636f696e5870756200040c61015265706c6163652074686520626974636f696e20787075626b657920666f722074686973207661756c742e20546869732077696c6c206e6f7420616666656374206578697374696e6720626974636f696e206c6f636b732c31016275742077696c6c206265207573656420666f7220616e79206c6f636b73206166746572207468697320706f696e742e2057696c6c2062652072656a656374656420696620616c726561647914757365642e1c636f6c6c6563740401207661756c745f696410011c5661756c744964000500647365745f626974636f696e5f6c6f636b5f64656c656761746504014c64656c65676174655f6163636f756e745f6964bc01504f7074696f6e3c543a3a4163636f756e7449643e000600207365745f6e616d650401106e616d65350301444f7074696f6e3c5661756c744e616d653e000700040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21030c3470616c6c65745f7661756c74731870616c6c65742c5661756c74436f6e666967041c42616c616e63650118001401147465726d732503014c5661756c745465726d733c42616c616e63653e0001106e616d65350301444f7074696f6e3c5661756c744e616d653e00013873656375726974697a6174696f6ec0011c42616c616e636500013c626974636f696e5f787075626b65793d0301444f7061717565426974636f696e5870756200015073656375726974697a6174696f6e5f726174696f29030124466978656455313238000025030c406172676f6e5f7072696d697469766573147661756c74285661756c745465726d73041c42616c616e63650118000c016c626974636f696e5f616e6e75616c5f70657263656e745f7261746529030124466978656455313238000140626974636f696e5f626173655f666565c0011c42616c616e636500015c74726561737572795f70726f6669745f73686172696e672d03011c5065726d696c6c00002903000006e0002d0300000631030031030c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000350304184f7074696f6e0404540139030108104e6f6e6500000010536f6d6504003903000001000039030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00003d030c406172676f6e5f7072696d6974697665731c626974636f696e444f7061717565426974636f696e5870756200000400410301205b75383b2037385d000041030000034e000000080045030c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c65741043616c6c04045400012428696e697469616c697a651001207661756c745f696410011c5661756c7449640001207361746f736869732c01205361746f73686973000138626974636f696e5f7075626b65794903015c436f6d70726573736564426974636f696e5075626b657900011c6f7074696f6e73510301584f7074696f6e3c4c6f636b4f7074696f6e733c543e3e0000205901496e697469616c697a65206120626974636f696e206c6f636b2e20546869732077696c6c206372656174652061204c6f636b6564426974636f696e20666f7220746865207375626d697474696e67206163636f756e74a8616e64206c6f672074686520426974636f696e20536372697074206861736820746f204576656e74732e005d01546865207075626b6579207375626d697474656420686572652077696c6c206265207573656420746f20637265617465206120736372697074207075626b657920746861742077696c6c206265207573656420696e2061b474696d656c6f636b206d756c74697369672073637269707420746f206c6f636b2074686520626974636f696e2e0039014e4f54453a204120226c6f636b2d657222206d7573742073656e642062746320746f2074686520636f7369676e6572205554584f206164647265737320746f2022636f6d706c6574652220746865d04c6f636b6564426974636f696e20616e6420626520616464656420746f2074686520426974636f696e204d696e74206c696e652e3c726571756573745f72656c656173650c011c7574786f5f69643001185574786f4964000140746f5f7363726970745f7075626b65795903014c426974636f696e5363726970745075626b657900014c626974636f696e5f6e6574776f726b5f6665653001205361746f7368697300011851015375626d6974746564206279206120426974636f696e20686f6c64657220746f2074726967676572207468652072656c65617365206f66207468656972205574786f206f7574206f662074686520636f7369676e45017363726970742e2041207472616e73616374696f6e207370656e64696e6720746865205554584f2073686f756c64206265207072652d6372656174656420736f20746861742074686520736967686173683d0163616e206265207375626d697474656420686572652e20546865207661756c74206f70657261746f722077696c6c2068617665203130206461797320746f20636f756e7465722d7369676e2074686555017472616e73616374696f6e2e2049742077696c6c206265207075626c6973686564207769746820746865207075626c6963206b6579206173206120426974636f696e5574786f436f7369676e6564204576656e742e003d014f776e6572206d757374207375626d6974206120736372697074207075626b657920616e6420616c736f20612066656520746f2070617920746f2074686520626974636f696e206e6574776f726b2e38636f7369676e5f72656c6561736508011c7574786f5f69643001185574786f49640001247369676e6174757265e80140426974636f696e5369676e617475726500021461015375626d69747465642062792061205661756c74206f70657261746f7220746f20636f7369676e207468652072656c65617365206f66206120626974636f696e207574786f2e2054686520426974636f696e206f776e6572550172656c65617365206665652077696c6c206265206275726e65642c20616e6420746865206c6f636b2077696c6c20626520616c6c6f77656420746f2065787069726520776974686f757420612070656e616c74792e004d0154686973206973207375626d69747465642061732061206e6f2d666565207472616e73616374696f6e206f666620636861696e20746f20616c6c6f77206b65797320746f2072656d61696e20696e20636f6c642077616c6c6574732e1c7261746368657408011c7574786f5f69643001185574786f496400011c6f7074696f6e73510301584f7074696f6e3c4c6f636b4f7074696f6e733c543e3e000338410152617463686574696e6720616c6c6f77732061207573657220746f206368616e676520746865206c6f636b207072696365206f6620746865697220626974636f696e206c6f636b2e2054686973206973510166756e6374696f6e616c6c79207468652073616d652061732072656c656173696e6720616e642072652d696e697469616c697a696e672c2062757420697420616c6c6f77732061207573657220746f20736b6970610173656e64696e67207472616e73616374696f6e73207468726f75676820626974636f696e20616e6420616e79206173736f63696174656420666565732e20497420616c736f20616c6c6f777320796f7520746f20737461794d016f6e20796f7572206f726967696e616c206c6f636b2065787069726174696f6e20776974686f757420686176696e6720746f20706179207468652066756c6c2079656172206f66206665657320616761696e2e00610152617463686574696e672022646f776e22202d207768656e20746865207072696365206f6620626974636f696e206973206c6f776572207468616e20796f7572206c6f636b2070726963652c20796f7520706179207468655d0166756c6c2072656c6561736520707269636520616e6420676574206164646564206261636b20746f20746865206d696e74207175657565206174207468652063757272656e74206d61726b657420726174652e20596f755901706f636b65742074686520646966666572656e6365206265747765656e2074686520616c7265616479206d696e74656420226c6f636b2070726963652220616e6420746865206e6577206d61726b65742076616c7565550128776869636820796f75206a75737420686164206275726e6564292e20596f7572206e6577206c6f636b2070726963652069732073657420746f20746865206d61726b6574206c6f772c20736f20796f752063616eb874616b6520616476616e74616765206f66207261746368657473202275702220696e20746865206675747572652e00550152617463686574696e672022757022202d207768656e20746865207072696365206f6620626974636f696e20697320686967686572207468616e20796f7572206c6f636b2070726963652c20796f75207061792061610170726f72617465642066656520666f72207468652072656d61696e646572206f6620796f7572206578697374696e67206c6f636b206475726174696f6e2e20596f752061726520616464656420746f20746865206d696e742d01717565756520666f722074686520646966666572656e636520696e20796f7572206e6577206c6f636b207072696365207673207468652070726576696f7573206c6f636b2070726963652e8061646d696e5f6d6f646966795f6d696e696d756d5f6c6f636b65645f736174730401207361746f736869733001205361746f7368697300040074726571756573745f6f727068616e65645f7574786f5f72656c656173650c01207574786f5f726566cc011c5574786f526566000140746f5f7363726970745f7075626b65795903014c426974636f696e5363726970745075626b657900014c626974636f696e5f6e6574776f726b5f6665653001205361746f7368697300050070636f7369676e5f6f727068616e65645f7574786f5f72656c656173650c01306f727068616e5f6f776e6572000130543a3a4163636f756e7449640001207574786f5f726566cc011c5574786f5265660001247369676e6174757265e80140426974636f696e5369676e617475726500061c41014e4f54453a2054686520607369676e61747572656020706172616d65746572206973204e4f54207665726966696564206f6e2d636861696e2e20546865206f727068616e207265636f726420646f657339016e6f742072657461696e2074686520636f7369676e207363726970742061726773206e656564656420666f7220766572696669636174696f6e2028746865792061726520636c65616e6564207570f4776974682074686520426974636f696e4c6f636b292e20546865207369676e617475726520697320706173736564207468726f75676820746f207468654101604f727068616e65645574786f436f7369676e656460206576656e7420736f20746865206c6f636b206f776e65722063616e20636f6e7374727563742074686520426974636f696e2072656c6561736535017472616e73616374696f6e206f66662d636861696e2e20412067617262616765207369676e6174757265206d65616e7320746865206f776e65722063616e2774207370656e6420e28094206e6f41016f6e2d636861696e2064616d6167652e20546f20616464206f6e2d636861696e20766572696669636174696f6e2c2074686520636f7369676e20736372697074206172677320776f756c64206e656564f0746f2062652073746f72656420696e20604f727068616e65645574786f60202873746f72616765206d6967726174696f6e207265717569726564292e38696e697469616c697a655f666f721401286163636f756e745f6964000130543a3a4163636f756e7449640001207661756c745f696410011c5661756c7449640001207361746f736869732c01205361746f73686973000138626974636f696e5f7075626b65794903015c436f6d70726573736564426974636f696e5075626b657900011c6f7074696f6e73510301584f7074696f6e3c4c6f636b4f7074696f6e733c543e3e0008005c696e6372656173655f73656375726974697a6174696f6e08011c7574786f5f69643001185574786f49640001306e65775f7361746f736869732c01205361746f73686973000900040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49030c406172676f6e5f7072696d6974697665731c626974636f696e5c436f6d70726573736564426974636f696e5075626b6579000004004d0301205b75383b2033335d00004d03000003210000000800510304184f7074696f6e0404540155030108104e6f6e6500000010536f6d6504005503000001000055030c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c65742c4c6f636b4f7074696f6e7304045400010408563104016c6d6963726f676f6e735f61745f7461726765745f7065725f627463850101484f7074696f6e3c543a3a42616c616e63653e0000000059030c406172676f6e5f7072696d6974697665731c626974636f696e4c426974636f696e5363726970745075626b6579000004005d030170426f756e6465645665633c75382c20436f6e73745533323c33343e3e00005d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000061030c3c70616c6c65745f6e6f7461726965731870616c6c65741043616c6c04045400010c1c70726f706f73650401106d657461f4013c4e6f746172794d6574614f663c543e0000002061637469766174650401406f70657261746f725f6163636f756e74000130543a3a4163636f756e744964000100187570646174650c01246e6f746172795f6964d401204e6f7461727949640001106d657461f4013c4e6f746172794d6574614f663c543e0001386566666563746976655f7469636b2c01105469636b000208610155706461746520746865206d65746164617461206f662061206e6f746172792c20746f206265206566666563746976652061742074686520676976656e207469636b206865696768742c207768696368206d757374206265b03e3d204d6574614368616e6765735469636b44656c6179207469636b7320696e20746865206675747572652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65030c3c70616c6c65745f6e6f7465626f6f6b1870616c6c65741043616c6c040454000108187375626d69740401246e6f7465626f6f6b73690301645665633c5369676e65644e6f7465626f6f6b4865616465723e00000018756e6c6f636b0401246e6f746172795f69641001204e6f746172794964000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030000026d03006d030c406172676f6e5f7072696d697469766573206e6f7465626f6f6b505369676e65644e6f7465626f6f6b4865616465720000080118686561646572710301384e6f7465626f6f6b4865616465720001247369676e6174757265a103013c4e6f746172795369676e6174757265000071030c406172676f6e5f7072696d697469766573206e6f7465626f6f6b384e6f7465626f6f6b48656164657200003c011c76657273696f6e7503010c75313600013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d6265720001107469636b2c01105469636b00010c746178c00110753132380001246e6f746172795f6964d401204e6f74617279496400013c636861696e5f7472616e7366657273790301bc426f756e6465645665633c436861696e5472616e736665722c204d61784e6f7465626f6f6b5472616e73666572733e0001546368616e6765645f6163636f756e74735f726f6f743401104832353600015c6368616e6765645f6163636f756e745f6f726967696e73850301c4426f756e6465645665633c4163636f756e744f726967696e2c20436f6e73745533323c7b207533323a3a4d4158207d3e3e000140626c6f636b5f766f7465735f726f6f7434011048323536000144626c6f636b5f766f7465735f636f756e74d4010c753332000144626c6f636b735f776974685f766f74657391030180426f756e6465645665633c483235362c20436f6e73745533323c313030303e3e000148626c6f636b5f766f74696e675f706f776572c00140426c6f636b566f74696e67506f77657200012c7365637265745f686173683401484e6f7465626f6f6b53656372657448617368000134706172656e745f7365637265748d0201584f7074696f6e3c4e6f7465626f6f6b5365637265743e00011c646f6d61696e73950301e8426f756e6465645665633c28446f6d61696e486173682c204163636f756e744964292c204d6178446f6d61696e735065724e6f7465626f6f6b3e000075030000069c0079030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017d03045300000400810301185665633c543e00007d030c406172676f6e5f7072696d697469766573206e6f7465626f6f6b34436861696e5472616e736665720001082c546f4d61696e636861696e0801286163636f756e745f69640001244163636f756e744964000118616d6f756e74c001107531323800000030546f4c6f63616c636861696e04012c7472616e736665725f6964d401585472616e73666572546f4c6f63616c636861696e49640001000081030000027d030085030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189030453000004008d0301185665633c543e000089030c406172676f6e5f7072696d6974697665733862616c616e63655f6368616e6765344163636f756e744f726967696e000008013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d62657200012c6163636f756e745f756964d401404163636f756e744f726967696e55696400008d0300000289030091030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000095030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540199030453000004009d0301185665633c543e00009903000004083400009d03000002990300a103000003400000000800a5030c6870616c6c65745f6c6f63616c636861696e5f7472616e736665721870616c6c65741043616c6c0404540001044873656e645f746f5f6c6f63616c636861696e080118616d6f756e74c001583c5420617320436f6e6669673e3a3a42616c616e63650001246e6f746172795f69641001204e6f746172794964000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9030c5870616c6c65745f626c6f636b5f7365616c5f737065631870616c6c65741043616c6c04045400010424636f6e666967757265080130766f74655f6d696e696d756d8501014c4f7074696f6e3c566f74654d696e696d756d3e000148636f6d707574655f646966666963756c7479850101304f7074696f6e3c753132383e000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead030c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c0404540001043c7365745f7a6f6e655f7265636f726408012c646f6d61696e5f68617368340128446f6d61696e4861736800012c7a6f6e655f7265636f72643d0101605a6f6e655265636f72643c543a3a4163636f756e7449643e000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1030c4870616c6c65745f70726963655f696e6465781870616c6c65741043616c6c040454000108187375626d6974040114696e646578b50301285072696365496e64657800000435015375626d697420746865206c617465737420707269636520696e6465782e204f6e6c792076616c696420666f722074686520636f6e66696775726564206f70657261746f72206163636f756e74307365745f6f70657261746f720401286163636f756e745f6964000130543a3a4163636f756e74496400011009015365747320746865206f70657261746f72206163636f756e7420696420286f6e6c792065786563757461626c652062792074686520526f6f74206163636f756e7429002c2320417267756d656e7473bc2a20606163636f756e745f696460202d20746865206163636f756e74206964206f6620746865206f70657261746f72040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb503084870616c6c65745f70726963655f696e646578285072696365496e64657800001801346274635f7573645f7072696365290301244669786564553132380001446172676f6e6f745f7573645f7072696365e0012446697865645531323800013c6172676f6e5f7573645f7072696365290301244669786564553132380001586172676f6e5f7573645f7461726765745f7072696365e001244669786564553132380001946172676f6e5f74696d655f77656967687465645f617665726167655f6c697175696469747918011c42616c616e63650001107469636b2c01105469636b0000b9030c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66bd0301c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66e1030140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66bd0301c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66e1030140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd03085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6ec103014845717569766f636174696f6e3c482c204e3e0000c103085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f74650400c50301890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d69740400d50301910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e00010000c503084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401b4045601c903045301cd0300100130726f756e645f6e756d62657230010c7536340001206964656e74697479b4010849640001146669727374d103011828562c2053290001187365636f6e64d103011828562c2053290000c903084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e0000cd030c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e617475726500000400a1030148656432353531393a3a5369676e61747572650000d10300000408c903cd0300d503084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401b4045601d903045301cd0300100130726f756e645f6e756d62657230010c7536340001206964656e74697479b4010849640001146669727374dd03011828562c2053290001187365636f6e64dd03011828562c2053290000d903084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e0000dd0300000408d903cd0300e103081c73705f636f726510566f696400010000e5030c4470616c6c65745f626c6f636b5f7365616c1870616c6c65741043616c6c040454000104146170706c790401107365616ce9030144426c6f636b5365616c496e686572656e74000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9030c406172676f6e5f7072696d69746976657324696e686572656e747344426c6f636b5365616c496e686572656e7400010810566f74651801347365616c5f737472656e67746899020110553235360001246e6f746172795f6964d401204e6f746172794964000158736f757263655f6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d626572000154736f757263655f6e6f7465626f6f6b5f70726f6f66ed03012c4d65726b6c6550726f6f66000128626c6f636b5f766f7465f5030124426c6f636b566f74650001446d696e65725f6e6f6e63655f73636f7265a10201304f7074696f6e3c553235363e0000001c436f6d7075746500010000ed030c406172676f6e5f7072696d6974697665733862616c616e63655f6368616e67652c4d65726b6c6550726f6f6600000c011470726f6f66f10301a0426f756e6465645665633c483235362c20436f6e73745533323c7b207533323a3a4d4158207d3e3e0001406e756d6265725f6f665f6c6561766573d4010c7533320001286c6561665f696e646578d4010c7533320000f1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000f5030c406172676f6e5f7072696d69746976657328626c6f636b5f766f746528426c6f636b566f7465540410486173680134001c01286163636f756e745f69640001244163636f756e744964000128626c6f636b5f6861736834011048617368000114696e646578d4010c753332000114706f776572c00140426c6f636b566f74696e67506f7765720001247369676e6174757265f90301384d756c74695369676e6174757265000160626c6f636b5f726577617264735f6163636f756e745f69640001244163636f756e7449640001107469636b2c01105469636b0000f903082873705f72756e74696d65384d756c74695369676e61747572650001101c456432353531390400a1030148656432353531393a3a5369676e61747572650000001c537232353531390400a1030148737232353531393a3a5369676e61747572650001001445636473610400fd03014065636473613a3a5369676e61747572650002000c4574680400fd03015865636473613a3a4b656363616b5369676e617475726500030000fd0300000341000000080001040c5070616c6c65745f626c6f636b5f726577617264731870616c6c65741043616c6c040454000104607365745f626c6f636b5f726577617264735f706175736564040118706175736564200110626f6f6c000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e05040c2c70616c6c65745f6d696e741870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e09040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374e90201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e90201504163636f756e7449644c6f6f6b75704f663c543e00011064657374e90201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e90201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e90201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe90201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fd90201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe90201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565c00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e0d04014c41646a7573746d656e74446972656374696f6e00011464656c7461c00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565c00128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d040c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e6372656173650000002044656372656173650001000011040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374e90201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e90201504163636f756e7449644c6f6f6b75704f663c543e00011064657374e90201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e90201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565c00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e90201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe90201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fd90201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe90201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565c00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e0d04014c41646a7573746d656e74446972656374696f6e00011464656c7461c00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565c00128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15040c3c70616c6c65745f74785f70617573651870616c6c65741043616c6c04045400010814706175736504012466756c6c5f6e616d65c501015052756e74696d6543616c6c4e616d654f663c543e00001034506175736520612063616c6c2e00b843616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a50617573654f726967696e605d2ec0456d69747320616e205b604576656e743a3a43616c6c506175736564605d206576656e74206f6e20737563636573732e1c756e70617573650401146964656e74c501015052756e74696d6543616c6c4e616d654f663c543e00011040556e2d706175736520612063616c6c2e00c043616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a556e70617573654f726967696e605d2ec8456d69747320616e205b604576656e743a3a43616c6c556e706175736564605d206576656e74206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400012014626174636804011463616c6c731d04017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465789c010c75313600011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c731d04017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696ee5010154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c731d04017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696ee102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636be102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696ee5010154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005101416c6d6f7374207468652073616d65206173205b6050616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d04000002e1020021040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577e90201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fe90201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6ce102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e25040c3c70616c6c65745f74726561737572791870616c6c65741043616c6c040454000108246275795f626f6e64730801207661756c745f696410011c5661756c744964000114626f6e6473100114426f6e647300040c984275792077686f6c65206031204152474f4e6020626f6e647320666f722061207661756c742e00d85468652070757263686173652065697468657220656e7465727320746865206163636570746564206c697374206f72206661696c732e486c69717569646174655f626f6e645f6c6f7404012c626f6e645f6c6f745f6964300124426f6e644c6f74496400050c704c6971756964617465206f6e652066756c6c20626f6e64206c6f742e001d01546865206c6f742073746f70732070617274696369706174696e67207269676874206177617920616e642069732072656c6561736564206166746572207468652064656c61792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29040c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c65741043616c6c040454000118207265676973746572040130726567697374726174696f6e2d04013c526567697374726174696f6e3c543e00000c31015265676973746572207661756c742c206d696e696e672066756e64696e672c20616e6420626f74206163636f756e747320666f7220616e206f7065726174696f6e616c206163636f756e742eec416e79206163636f756e7420696e2074686520726567697374726174696f6e206d6179207375626d697420746865207472616e73616374696f6e2e4d014966206120726566657272616c2070726f6f662069732070726f76696465642c2074686520726567697374726174696f6e207265636f726473207468652073706f6e736f722072656c6174696f6e736869702e447365745f7265776172645f636f6e66696708016c6f7065726174696f6e616c5f726566657272616c5f726577617264180128543a3a42616c616e6365000154726566657272616c5f626f6e75735f726577617264180128543a3a42616c616e6365000204bc5570646174652072657761726420616d6f756e747320666f72206f7065726174696f6e616c206163636f756e74732e48666f7263655f7365745f70726f67726573730c01146f776e6572000130543a3a4163636f756e7449640001147061746368450401904f7065726174696f6e616c50726f677265737350617463683c543a3a42616c616e63653e00016c7570646174655f6f7065726174696f6e616c5f70726f6772657373200110626f6f6c000304e4466f7263652d757064617465206f7065726174696f6e616c2070726f6772657373206d61726b65727320666f7220616e206163636f756e742e807365745f656e637279707465645f7365727665725f666f725f73706f6e73656508011c73706f6e736565000130543a3a4163636f756e744964000140656e637279707465645f73657276657238011c5665633c75383e000404550153746f726520616e206f706171756520656e637279707465642073706f6e736f7220736572766572207061796c6f616420666f7220612073706f6e736f726564206f7065726174696f6e616c206163636f756e742e2061637469766174650005040901416374697661746520616e20656c696769626c65206f7065726174696f6e616c206163636f756e742066726f6d20616e79206d616e61676564206163636f756e742e34636c61696d5f72657761726473040118616d6f756e74180128543a3a42616c616e6365000604e4436c61696d2070656e64696e67206f7065726174696f6e616c207265776172647320746f20616e79206d616e61676564206163636f756e742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d040c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c657430526567697374726174696f6e040454000104085631040031040144526567697374726174696f6e56313c543e0000000031040c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c657438526567697374726174696f6e5631040454000028014c6f7065726174696f6e616c5f6163636f756e74000130543a3a4163636f756e744964000144656e6372797074696f6e5f7075626b6579350401584f7061717565456e6372797074696f6e5075626b65790001646f7065726174696f6e616c5f6163636f756e745f70726f6f66390401544163636f756e744f776e65727368697050726f6f660001347661756c745f6163636f756e74000130543a3a4163636f756e7449640001586d696e696e675f66756e64696e675f6163636f756e74000130543a3a4163636f756e7449640001486d696e696e675f626f745f6163636f756e74000130543a3a4163636f756e74496400014c7661756c745f6163636f756e745f70726f6f66390401544163636f756e744f776e65727368697050726f6f660001706d696e696e675f66756e64696e675f6163636f756e745f70726f6f66390401544163636f756e744f776e65727368697050726f6f660001606d696e696e675f626f745f6163636f756e745f70726f6f66390401544163636f756e744f776e65727368697050726f6f66000138726566657272616c5f70726f6f663d04018c4f7074696f6e3c526566657272616c50726f6f663c543a3a4163636f756e7449643e3e000035040c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574584f7061717565456e6372797074696f6e5075626b6579000004000401205b75383b2033325d000039040c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574544163636f756e744f776e65727368697050726f6f6600000401247369676e6174757265f90301245369676e617475726500003d0404184f7074696f6e0404540141040108104e6f6e6500000010536f6d6504004104000001000041040c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c657434526566657272616c50726f6f6604244163636f756e744964010000140134726566657272616c5f636f646504013c737232353531393a3a5075626c6963000148726566657272616c5f7369676e6174757265a1030148737232353531393a3a5369676e617475726500011c73706f6e736f720001244163636f756e744964000140657870697265735f61745f6672616d652c011c4672616d65496400014473706f6e736f725f7369676e6174757265f90301245369676e6174757265000045040c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574604f7065726174696f6e616c50726f67726573735061746368041c42616c616e63650118001401506861735f756e69737761705f7472616e73666572490401304f7074696f6e3c626f6f6c3e0001347661756c745f63726561746564490401304f7074696f6e3c626f6f6c3e00017c6861735f74726561737572795f706f6f6c5f70617274696369706174696f6e490401304f7074696f6e3c626f6f6c3e0001586f627365727665645f626974636f696e5f746f74616c8501013c4f7074696f6e3c42616c616e63653e0001686f627365727665645f6d696e696e675f736561745f746f74616c5d02012c4f7074696f6e3c7533323e0000490404184f7074696f6e04045401200108104e6f6e6500000010536f6d6504002000000100004d040c6070616c6c65745f657468657265756d5f76657269666965721870616c6c65741043616c6c04045400011040666f7263655f636865636b706f696e7408011875706461746551040154426f783c436865636b706f696e745570646174653e000134666f726b5f76657273696f6e7371040130466f726b56657273696f6e7300000841015573656420666f722070616c6c657420696e697469616c697a6174696f6e20616e64206c6967687420636c69656e7420726573657474696e672e204e6565647320746f2062652063616c6c65642062794074686520726f6f74206f726967696e2e187375626d69740401187570646174657904012c426f783c5570646174653e00010835015375626d6974732061206e65772066696e616c697a656420626561636f6e20686561646572207570646174652e2054686520757064617465206d617920636f6e7461696e20746865206e6578743c73796e6320636f6d6d69747465652e78696d706f72745f657865637574696f6e5f6865616465725f616e63686f7204013c657865637574696f6e5f70726f6f6695040138457865637574696f6e50726f6f660002043d01496d706f72747320612070726f76656e20657865637574696f6e2068656164657220616e63686f7220616761696e737420616c72656164792d72657461696e656420626561636f6e2073746174652e487365745f6f7065726174696e675f6d6f64650401106d6f6465f901014842617369634f7065726174696e674d6f6465000304050148616c74206f7220726573756d6520616c6c2070616c6c6574206f7065726174696f6e732e204d6179206f6e6c792062652063616c6c656420627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e51040c6070616c6c65745f657468657265756d5f766572696669657214747970657340436865636b706f696e74557064617465000010011868656164657255040130426561636f6e48656164657200015863757272656e745f73796e635f636f6d6d69747465655904013453796e63436f6d6d697474656500017463757272656e745f73796e635f636f6d6d69747465655f6272616e63686d04012c4272616e636850726f6f6600013c76616c696461746f72735f726f6f7434011048323536000055040c70736e6f776272696467655f626561636f6e5f7072696d69746976657314747970657330426561636f6e4865616465720000140110736c6f7430010c75363400013870726f706f7365725f696e64657830013856616c696461746f72496e64657800012c706172656e745f726f6f743401104832353600012873746174655f726f6f7434011048323536000124626f64795f726f6f7434011048323536000059040c6070616c6c65745f657468657265756d5f76657269666965721474797065733453796e63436f6d6d6974746565000008011c7075626b6579735d0401f8426f756e6465645665633c5075626c69634b65792c20436f6e73745533323c7b2053594e435f434f4d4d49545445455f424f554e445f53495a45207d3e3e0001406167677265676174655f7075626b6579610401245075626c69634b657900005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016104045300000400690401185665633c543e000061040c70736e6f776272696467655f626561636f6e5f7072696d697469766573147479706573245075626c69634b657900000400650401445b75383b205055424b45595f53495a455d0000650400000330000000080069040000026104006d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000071040c6070616c6c65745f657468657265756d5f766572696669657214747970657330466f726b56657273696f6e7300001c011c67656e6573697375040110466f726b000118616c7461697275040110466f726b00012462656c6c617472697875040110466f726b00011c636170656c6c6175040110466f726b00011464656e656275040110466f726b00011c656c656374726175040110466f726b00011066756c7575040110466f726b000075040c6070616c6c65745f657468657265756d5f766572696669657214747970657310466f726b000008011c76657273696f6e48012c466f726b56657273696f6e00011465706f63682c010c753634000079040c6070616c6c65745f657468657265756d5f766572696669657214747970657318557064617465000018013c61747465737465645f68656164657255040130426561636f6e48656164657200013873796e635f6167677265676174657d04013453796e634167677265676174650001387369676e61747572655f736c6f742c010c7536340001686e6578745f73796e635f636f6d6d69747465655f7570646174658d04017c4f7074696f6e3c4e65787453796e63436f6d6d69747465655570646174653e00014066696e616c697a65645f68656164657255040130426561636f6e48656164657200013c66696e616c6974795f6272616e63686d04012c4272616e636850726f6f6600007d040c6070616c6c65745f657468657265756d5f76657269666965721474797065733453796e63416767726567617465000008014c73796e635f636f6d6d69747465655f62697473810401f0426f756e6465645665633c75382c20436f6e73745533323c7b2053594e435f434f4d4d49545445455f424954535f424f554e445f53495a45207d3e3e00016073796e635f636f6d6d69747465655f7369676e6174757265850401245369676e6174757265000081040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085040c70736e6f776272696467655f626561636f6e5f7072696d697469766573147479706573245369676e617475726500000400890401505b75383b205349474e41545552455f53495a455d000089040000036000000008008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d6504009104000001000091040c6070616c6c65745f657468657265756d5f76657269666965721474797065735c4e65787453796e63436f6d6d6974746565557064617465000008014c6e6578745f73796e635f636f6d6d69747465655904013453796e63436f6d6d69747465650001686e6578745f73796e635f636f6d6d69747465655f6272616e63686d04012c4272616e636850726f6f66000095040c6070616c6c65745f657468657265756d5f766572696669657214747970657338457865637574696f6e50726f6f6600000c011868656164657255040130426561636f6e486561646572000140657865637574696f6e5f6865616465729904017c56657273696f6e6564457865637574696f6e5061796c6f6164486561646572000140657865637574696f6e5f6272616e63686d04012c4272616e636850726f6f66000099040c70736e6f776272696467655f626561636f6e5f7072696d6974697665731474797065737c56657273696f6e6564457865637574696f6e5061796c6f61644865616465720001081c436170656c6c6104009d040158457865637574696f6e5061796c6f61644865616465720000001444656e65620400a104017464656e65623a3a457865637574696f6e5061796c6f6164486561646572000100009d040c70736e6f776272696467655f626561636f6e5f7072696d69746976657314747970657358457865637574696f6e5061796c6f616448656164657200003c012c706172656e745f68617368340110483235360001346665655f726563697069656e74090201104831363000012873746174655f726f6f743401104832353600013472656365697074735f726f6f74340110483235360001286c6f67735f626c6f6f6d38011c5665633c75383e00012c707265765f72616e64616f34011048323536000130626c6f636b5f6e756d62657230010c7536340001246761735f6c696d697430010c7536340001206761735f7573656430010c75363400012474696d657374616d7030010c75363400012865787472615f6461746138011c5665633c75383e000140626173655f6665655f7065725f6761739902011055323536000128626c6f636b5f68617368340110483235360001447472616e73616374696f6e735f726f6f74340110483235360001407769746864726177616c735f726f6f74340110483235360000a1041070736e6f776272696467655f626561636f6e5f7072696d6974697665731474797065731464656e656258457865637574696f6e5061796c6f6164486561646572000044012c706172656e745f68617368340110483235360001346665655f726563697069656e74090201104831363000012873746174655f726f6f743401104832353600013472656365697074735f726f6f74340110483235360001286c6f67735f626c6f6f6d38011c5665633c75383e00012c707265765f72616e64616f34011048323536000130626c6f636b5f6e756d62657230010c7536340001246761735f6c696d697430010c7536340001206761735f7573656430010c75363400012474696d657374616d7030010c75363400012865787472615f6461746138011c5665633c75383e000140626173655f6665655f7065725f6761739902011055323536000128626c6f636b5f68617368340110483235360001447472616e73616374696f6e735f726f6f74340110483235360001407769746864726177616c735f726f6f7434011048323536000134626c6f625f6761735f7573656430010c75363400013c6578636573735f626c6f625f67617330010c7536340000a5040c6870616c6c65745f63726f7373636861696e5f7472616e736665721870616c6c65741043616c6c040454000108407365745f636861696e5f636f6e666967040118636f6e666967a904012c436861696e436f6e6669670000003870726f76655f7472616e7366657204011470726f6f66b10401345472616e7366657250726f6f66000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c6870616c6c65745f63726f7373636861696e5f7472616e736665721870616c6c65742c436861696e436f6e66696700010420457468657265756d14011c67617465776179090201104831363000012c6172676f6e5f746f6b656e09020110483136300001346172676f6e6f745f746f6b656e090201104831363000014070726576696f75735f67617465776179ad0401304f7074696f6e3c483136303e00016c70726576696f75735f72656c656173655f65787069726174696f6e8d0101304f7074696f6e3c5469636b3e00000000ad0404184f7074696f6e0404540109020108104e6f6e6500000010536f6d65040009020000010000b1040c6870616c6c65745f63726f7373636861696e5f7472616e736665721870616c6c6574345472616e7366657250726f6f6600010420457468657265756d0c0130736f757263655f636861696e0102012c536f75726365436861696e0001246576656e745f6c6f67b504012c457468657265756d4c6f6700011470726f6f66c1040134457468657265756d50726f6f6600000000b5040c406172676f6e5f7072696d69746976657320657468657265756d2c457468657265756d4c6f6700000c011c616464726573730902011048313630000118746f70696373b9040144457468657265756d4c6f67546f7069637300011064617461bd04013c457468657265756d4c6f67446174610000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000bd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c1040c406172676f6e5f7072696d69746976657320657468657265756d34457468657265756d50726f6f660000080154657865637574696f6e5f626c6f636b5f70726f6f66c504016c457468657265756d457865637574696f6e426c6f636b50726f6f66000134726563656970745f70726f6f66d9040150457468657265756d5265636569707450726f6f660000c5040c406172676f6e5f7072696d69746976657320657468657265756d6c457468657265756d457865637574696f6e426c6f636b50726f6f660000080144616e63686f725f626c6f636b5f68617368340110483235360001747461726765745f746f5f616e63686f725f6865616465725f636861696ec9040170457468657265756d457865637574696f6e486561646572436861696e0000c9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401cd04045300000400d50401185665633c543e0000cd040c406172676f6e5f7072696d69746976657320657468657265756d5c457468657265756d457865637574696f6e486561646572000004010c726c70d1040168457468657265756d457865637574696f6e486561646572526c700000d1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d504000002cd0400d9040c406172676f6e5f7072696d69746976657320657468657265756d50457468657265756d5265636569707450726f6f6600000801447472616e73616374696f6e5f696e6465782c010c7536340001146e6f646573dd040164457468657265756d5265636569707450726f6f664e6f6465730000dd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d104045300000400e10401185665633c543e0000e104000002d10400e50404184f7074696f6e04045401880108104e6f6e6500000010536f6d650400880000010000e9040c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed0400000408f1041800f1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f504045300000400f90401185665633c543e0000f504083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f78795479706501982c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f7479706598012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000f904000002f50400fd04000004080105180001050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010505045300000400090501185665633c543e00000505083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d626572000009050000020505000d050c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e11050c406172676f6e5f7072696d697469766573107469636b185469636b657200000801507469636b5f6475726174696f6e5f6d696c6c69732c010c7536340001746368616e6e656c5f686f6c645f65787069726174696f6e5f7469636b732c01105469636b000015050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000019050c3070616c6c65745f7469636b731870616c6c6574144572726f72040454000100048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013004560121050453000004003105013842547265654d61703c4b2c20563e000021050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540125050453000004002d0501185665633c543e00002505084870616c6c65745f6d696e696e675f736c6f74444d696e65724e6f6e636553636f72696e6704045400001001146e6f6e636599020110553235360001386c6173745f77696e5f626c6f636b5d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00014c626c6f636b735f776f6e5f696e5f6672616d659c010c7531360001786672616d655f73746172745f626c6f636b735f776f6e5f737572706c75732905010c693136000029050000050a002d050000022505003105042042547265654d617008044b0130045601210500040035050000003505000002390500390500000408302105003d050000040830100041050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0100045601ac0453000004004505013842547265654d61703c4b2c20563e00004505042042547265654d617008044b0100045601ac000400490500000049050000024d05004d050000040800ac0051050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015505045300000400590501185665633c543e000055050c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c384d696e696e6742696453746174730000100128626964735f636f756e7410010c7533320001386269645f616d6f756e745f6d696e18011c42616c616e63650001386269645f616d6f756e745f6d617818011c42616c616e63650001386269645f616d6f756e745f73756d18011c42616c616e6365000059050000025505005d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400610501185665633c543e00006105000002180065050c406172676f6e5f7072696d69746976657328626c6f636b5f7365616c404d696e696e67536c6f74436f6e66696700000c01887469636b735f6265666f72655f6269645f656e645f666f725f7672665f636c6f73652c01105469636b00014c7469636b735f6265747765656e5f736c6f74732c01105469636b000178736c6f745f62696464696e675f73746172745f61667465725f7469636b732c01105469636b000069050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0130045601100453000004006d05013842547265654d61703c4b2c20563e00006d05042042547265654d617008044b013004560110000400710500000071050000023d050075050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400790501185665633c543e0000790500000210007d050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0130045601300453000004008105013842547265654d61703c4b2c20563e00008105042042547265654d617008044b013004560130000400850500000085050000028905008905000004083030008d050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000091050c4870616c6c65745f6d696e696e675f736c6f741870616c6c6574144572726f7204045400012844536c6f744e6f7454616b696e67426964730000049842696464696e6720666f7220746865206e65787420636f686f72742068617320636c6f7365645c546f6f4d616e79426c6f636b52656769737472616e74730001048854686520636f686f727420726567697374726174696f6e206f766572666c6f7765646c496e73756666696369656e744f776e657273686970546f6b656e73000204f8546869732066756e64696e67206163636f756e7420646f6573206e6f7420686f6c6420746865206d696e696d756d206172676f6e6f7473206e656564656424426964546f6f4c6f77000304cc54686520676976656e206269642069736e2774206869676820656e6f75676820746f20626520696e2074686520636f686f72748443616e6e6f7452656769737465724f7665726c617070696e6753657373696f6e73000404c0416e206163636f756e742063616e206f6e6c792068617665206f6e652061637469766520726567697374726174696f6e6843616e6e6f744368616e676546756e64696e674163636f756e74000504f843616e6e6f742072652d726567697374657220616e206163636f756e742077697468206120646966666572656e742066756e64696e67206163636f756e7444496e73756666696369656e7446756e6473000604fc5468652066756e64696e67206163636f756e7420646f6573206e6f74206861766520656e6f7567682066756e647320746f20636f76657220746865206269644842696443616e6e6f7442655265647563656400070480546865206d696e696e67206269642063616e6e6f74206265207265647563656440496e76616c6964426964416d6f756e740008048842696473206d75737420626520696e20616c6c6f77656420696e6372656d656e747344556e7265636f76657261626c65486f6c640009049c546865206172676f6e6f7473206f6e20686f6c642063616e6e6f742062652072656c6561736564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95050c406172676f6e5f7072696d6974697665731c626974636f696e245574786f56616c7565000014011c7574786f5f69643001185574786f49640001347363726970745f7075626b657999050164426974636f696e436f7369676e5363726970745075626b65790001207361746f736869732c01205361746f7368697300014c7375626d69747465645f61745f6865696768742c0134426974636f696e48656967687400017077617463685f666f725f7370656e745f756e74696c5f6865696768742c0134426974636f696e486569676874000099050c406172676f6e5f7072696d6974697665731c626974636f696e64426974636f696e436f7369676e5363726970745075626b6579000104145032575348040130777363726970745f6861736834011048323536000000009d050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01300456019505045300000400a105013842547265654d61703c4b2c20563e0000a105042042547265654d617008044b01300456019505000400a505000000a505000002a90500a9050000040830950500ad050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01cc04560130045300000400b105013842547265654d61703c4b2c20563e0000b105042042547265654d617008044b01cc04560130000400b505000000b505000002b90500b90500000408cc3000bd050c406172676f6e5f7072696d6974697665731c626974636f696e38426974636f696e4e6574776f726b0001101c426974636f696e0000001c546573746e6574000100185369676e65740002001c5265677465737400030000c1050c5070616c6c65745f626974636f696e5f7574786f731870616c6c6574144572726f7204045400013c344e6f5065726d697373696f6e73000004bc4f6e6c7920616e204f7261636c65204f70657261746f722063616e20706572666f726d207468697320616374696f6e5c4e6f426974636f696e436f6e6669726d6564426c6f636b00010405014e6f204f7261636c652d70726f766964656420626974636f696e20626c6f636b20686173206265656e2070726f766964656420746f20746865206e6574776f726b64496e73756666696369656e74426974636f696e416d6f756e740002046c496e73756666696369656e7420626974636f696e20616d6f756e74604e6f426974636f696e507269636573417661696c61626c65000304a04e6f207072696365732061726520617661696c61626c6520746f206d696e7420626974636f696e73505363726970745075626b6579436f6e666c696374000404a05363726970745075624b657920697320616c7265616479206265696e672077616974656420666f72345574786f4e6f744c6f636b6564000504544c6f636b6564205574786f204e6f7420466f756e6458526564656d7074696f6e73556e617661696c61626c650006048c526564656d7074696f6e73206e6f742063757272656e746c7920617661696c61626c6560496e76616c6964426974636f696e53796e6348656967687400070494496e76616c696420626974636f696e2073796e632068656967687420617474656d7074656464426974636f696e4865696768744e6f74436f6e6669726d656400080480426974636f696e20686569676874206e6f7420636f6e6669726d656420796574404d61785574786f73457863656564656400090480546f6f206d616e79205554584f7320617265206265696e67207761746368656450496e76616c6964426974636f696e536372697074000a04644c6f636b696e672073637269707420686173206572726f72733c4475706c69636174655574786f4964000b04844475706c696361746564205574786f49642e20416c726561647920696e20757365644d617843616e6469646174655574786f734578636565646564000c04dc546f6f206d616e792063616e646964617465205554584f7320617265206265696e672073746f72656420666f722074686973206c6f636b405574786f4e6f7443616e646964617465000d04d0546865205554584f207265666572656e636520646f6573206e6f74206d617020746f20612063616e64696461746520656e747279444c6f636b416c726561647946756e646564000e04b854686973204c6f636b20616c72656164792068617320616e2061747461636865642066756e64696e67205554584f048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec5050c406172676f6e5f7072696d697469766573147661756c74145661756c7408244163636f756e74496401001c42616c616e636501180044014c6f70657261746f725f6163636f756e745f69640001244163636f756e744964000174626974636f696e5f6c6f636b5f64656c65676174655f6163636f756e74bc01444f7074696f6e3c4163636f756e7449643e0001106e616d65350301444f7074696f6e3c5661756c744e616d653e0001546c6173745f6e616d655f6368616e67655f7469636b8d0101304f7074696f6e3c5469636b3e00013873656375726974697a6174696f6ec0011c42616c616e636500015473656375726974697a6174696f6e5f746172676574c0011c42616c616e636500015473656375726974697a6174696f6e5f6c6f636b6564c0011c42616c616e636500018473656375726974697a6174696f6e5f70656e64696e675f61637469766174696f6ec0011c42616c616e636500013c6c6f636b65645f7361746f736869732c01205361746f7368697300015073656375726974697a65645f7361746f736869732c01205361746f7368697300017c73656375726974697a6174696f6e5f72656c656173655f7363686564756c65c90501d8426f756e64656442547265654d61703c426974636f696e4865696768742c2042616c616e63652c20436f6e73745533323c3336363e3e00015073656375726974697a6174696f6e5f726174696f2903012446697865645531323800012469735f636c6f736564200110626f6f6c0001147465726d732503014c5661756c745465726d733c42616c616e63653e00013470656e64696e675f7465726d73d905018c4f7074696f6e3c285469636b2c205661756c745465726d733c42616c616e63653e293e00012c6f70656e65645f7469636b2c01105469636b0001806f7065726174696f6e616c5f6d696e696d756d5f72656c656173655f7469636b8d0101304f7074696f6e3c5469636b3e0000c9050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013004560118045300000400cd05013842547265654d61703c4b2c20563e0000cd05042042547265654d617008044b013004560118000400d105000000d105000002d50500d50500000408301800d90504184f7074696f6e04045401dd050108104e6f6e6500000010536f6d650400dd050000010000dd050000040830250300e10500000408e5051000e5050c406172676f6e5f7072696d6974697665731c626974636f696e2c426974636f696e5850756200001801287075626c69635f6b65794903015c436f6d70726573736564426974636f696e5075626b65790001146465707468e90501087538000148706172656e745f66696e6765727072696e7448013c5850756246696e6765727072696e740001306368696c645f6e756d626572d4013c585075624368696c644e756d626572000128636861696e5f636f64650401205b75383b2033325d00011c6e6574776f726bed05012c4e6574776f726b4b696e640000e9050000060800ed050c406172676f6e5f7072696d6974697665731c626974636f696e2c4e6574776f726b4b696e64000108104d61696e000000105465737400010000f1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400790501185665633c543e0000f5050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540130045300000400f905012c42547265655365743c543e0000f905042042547265655365740404540130000400fd05000000fd05000002300001060000040810000005060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401100453000004000906012c42547265655365743c543e0000090604204254726565536574040454011000040079050000000d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011106045300000400150601185665633c543e000011060c3470616c6c65745f7661756c74731870616c6c6574445661756c744672616d65526576656e756504045400004001206672616d655f69642c011c4672616d654964000160626974636f696e5f6c6f636b5f6665655f726576656e7565c00128543a3a42616c616e6365000188626974636f696e5f6c6f636b5f6665655f636f75706f6e5f76616c75655f75736564c00128543a3a42616c616e6365000154626974636f696e5f6c6f636b735f63726561746564d4010c753332000190626974636f696e5f6c6f636b735f6e65775f6c69717569646974795f70726f6d69736564c00128543a3a42616c616e6365000180626974636f696e5f6c6f636b735f72656c65617365645f6c6971756964697479c00128543a3a42616c616e6365000170626974636f696e5f6c6f636b735f61646465645f7361746f736869732c01205361746f7368697300017c626974636f696e5f6c6f636b735f72656c65617365645f7361746f736869732c01205361746f7368697300016073656375726974697a6174696f6e5f616374697661746564c00128543a3a42616c616e636500016473656375726974697a6174696f6e5f72656c6f636b61626c65c00128543a3a42616c616e636500013873656375726974697a6174696f6ec00128543a3a42616c616e636500015c74726561737572795f7661756c745f6561726e696e6773c00128543a3a42616c616e636500015c74726561737572795f746f74616c5f6561726e696e6773c00128543a3a42616c616e636500015874726561737572795f7661756c745f6361706974616cc00128543a3a42616c616e636500016474726561737572795f65787465726e616c5f6361706974616cc00128543a3a42616c616e636500014c756e636f6c6c65637465645f726576656e7565c00128543a3a42616c616e63650000150600000211060019060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d06045300000400210601185665633c543e00001d060c3470616c6c65745f7661756c74731870616c6c657448526563656e74436170616369747944726f70081c42616c616e636501182c426c6f636b4e756d626572011000100130626c6f636b5f6e756d626572d4012c426c6f636b4e756d626572000154617661696c61626c655f6265666f72655f64726f70c0011c42616c616e6365000150617661696c61626c655f61667465725f64726f70c0011c42616c616e63650001506e6f5f6665655f6661696c757265735f75736564d4010c753332000021060000021d060025060c3470616c6c65745f7661756c74731870616c6c6574144572726f72040454000178384e6f4d6f72655661756c744964730000049c496e7465726e616c6c792c20746865207661756c742069647320617265206d61786564206f757444496e73756666696369656e7446756e6473000104ec546865207573657220646f65736e2774206861766520656e6f7567682066756e647320746f20636f6d706c6574652074686973207265717565737458496e73756666696369656e745661756c7446756e647300020429015468657265206172656e277420656e6f7567682066756e647320696e20746865207661756c7420746f20636f766572207468652072657175657374656420626974636f696e206c6f636b684163636f756e7442656c6f774d696e696d756d42616c616e63650003045d015468652070726f706f736564207472616e73616374696f6e20776f756c642074616b6520746865206163636f756e742062656c6f7720746865206d696e696d756d20286578697374656e7469616c292062616c616e63652c5661756c74436c6f7365640004045054686973207661756c7420697320636c6f73656448496e76616c69645661756c74416d6f756e74000504dc46756e64696e6720776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e63652074797065845661756c74526564756374696f6e42656c6f7753656375726974697a6174696f6e00060439015468697320726564756374696f6e20696e207661756c742073656375726974697a6174696f6e20676f65732062656c6f772074686520616d6f756e7420616c726561647920636f6d6d697474656454496e76616c696453656375726974697a6174696f6e0007084101416e20696e76616c69642073656375726974697a6174696f6e2070657263656e74207761732070726f766964656420666f7220746865207661756c742e204e4f54453a2069742063616e6e6f742062655c64656372656173656420286f72206e6567617469766529585265757365645661756c74426974636f696e58707562000804bc546865207661756c7420626974636f696e20787075626b65792068617320616c7265616479206265656e207573656450496e76616c6964426974636f696e536372697074000904c854686520626974636f696e2073637269707420746f206c6f636b207468697320626974636f696e20686173206572726f727338496e76616c6964587075626b6579000a0460556e61626c6520746f206465636f646520787075626b65794057726f6e67587075624e6574776f726b000b044857726f6e672058707562204e6574776f726b34556e73616665587075626b6579000c040901546865205850756220697320756e7361666520746f2075736520696e2061207075626c696320626c6f636b636861696e2028616b612c20756e68617264656e65642970556e61626c65546f4465726976655661756c74587075624368696c64000d0478556e61626c6520746f2064657269766520787075626b6579206368696c645c426974636f696e436f6e76657273696f6e4661696c6564000e04b8426974636f696e20636f6e76657273696f6e20746f20636f6d70726573736564207075626b6579206661696c6564344e6f5065726d697373696f6e73000f0060486f6c64556e65787065637465646c794d6f64696669656400100044556e7265636f76657261626c65486f6c64001100345661756c744e6f74466f756e64001200445661756c744e6f745965744163746976650013046c546865207661756c74206973206e6f742079657420616374697665784e6f5661756c74426974636f696e5075626b657973417661696c61626c65001404884e6f205661756c74207075626c6963206b6579732061726520617661696c61626c65645465726d734d6f64696669636174696f6e4f766572666c6f77001504ec546865207465726d73206d6f64696669636174696f6e206c69737420636f756c64206e6f742068616e646c6520616e79206d6f7265206974656d736c5465726d734368616e6765416c72656164795363686564756c6564001604a45465726d732061726520616c7265616479207363686564756c656420746f206265206368616e67656434496e7465726e616c4572726f7200170494416e20696e7465726e616c2070726f63657373696e67206572726f72206f6363757272656488556e61626c65546f47656e65726174655661756c74426974636f696e5075626b6579001804b4556e61626c6520746f2067656e65726174652061206e6577207661756c7420626974636f696e207075626b65797446756e64696e674368616e6765416c72656164795363686564756c656400190494412066756e64696e67206368616e676520697320616c7265616479207363686564756c656440496e76616c69645661756c744e616d65001a0831015661756c74206e616d6573206d757374207374617274207769746820616e20757070657263617365204153434949206c657474657220616e64206f746865727769736520626520415343494934616c7068616e756d657269632e6c50656e64696e67436f7369676e734265666f7265436f6c6c656374001b04010141207661756c74206d75737420636c656172206f757420616c6c2070656e64696e6720636f7369676e73206265666f72652069742063616e20636f6c6c6563749c50656e64696e674f727068616e65645574786f436f7369676e734265666f7265436f6c6c656374001c041d0141207661756c74206d75737420636c656172206f757420616c6c2070656e64696e67206f727068616e20636f7369676e73206265666f72652069742063616e20636f6c6c656374584163636f756e74416c72656164794861735661756c74001d04d4416e206163636f756e74206d6179206f6e6c79206265206173736f636961746564207769746820612073696e676c65207661756c74048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574344c6f636b6564426974636f696e04045400005001207661756c745f6964d4011c5661756c7449640001486c69717569646974795f70726f6d69736564c00128543a3a42616c616e636500014c6c6f636b65645f7461726765745f7072696365c00128543a3a42616c616e63650001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400015073656375726974697a6174696f6e5f726174696fe0012446697865645531323800013473656375726974795f66656573c00128543a3a42616c616e6365000140636f75706f6e5f706169645f66656573c00128543a3a42616c616e63650001207361746f736869732c01205361746f736869730001347574786f5f7361746f736869738d0101404f7074696f6e3c5361746f736869733e0001307661756c745f7075626b65794903015c436f6d70726573736564426974636f696e5075626b65790001487661756c745f636c61696d5f7075626b65794903015c436f6d70726573736564426974636f696e5075626b65790001487661756c745f787075625f736f75726365732d0601cc285850756246696e6765727072696e742c20585075624368696c644e756d6265722c20585075624368696c644e756d626572290001306f776e65725f7075626b65794903015c436f6d70726573736564426974636f696e5075626b65790001487661756c745f636c61696d5f6865696768742c0134426974636f696e4865696768740001446f70656e5f636c61696d5f6865696768742c0134426974636f696e486569676874000144637265617465645f61745f6865696768742c0134426974636f696e4865696768740001487574786f5f7363726970745f7075626b657999050164426974636f696e436f7369676e5363726970745075626b657900012469735f66756e646564200110626f6f6c00015066756e645f686f6c645f657874656e73696f6e73c90501e4426f756e64656442547265654d61703c426974636f696e4865696768742c20543a3a42616c616e63652c20436f6e73745533323c3336363e3e000158637265617465645f61745f6172676f6e5f626c6f636bd40144426c6f636b4e756d626572466f723c543e00002d060000040c4810100031060000040810300035060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574484c6f636b52656c6561736552657175657374041c42616c616e636501180018011c7574786f5f69642c01185574786f49640001207661756c745f6964d4011c5661756c74496400014c626974636f696e5f6e6574776f726b5f6665652c01205361746f73686973000140636f7369676e5f6475655f6672616d652c011c4672616d654964000140746f5f7363726970745f7075626b65795903014c426974636f696e5363726970745075626b6579000144726564656d7074696f6e5f616d6f756e74c0011c42616c616e6365000039060000040800cc003d060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574304f727068616e65645574786f042c426c6f636b4e756d62657201100014011c7574786f5f69642c01185574786f49640001207661756c745f6964d4011c5661756c7449640001207361746f736869732c01205361746f7368697300016c7265636f726465645f6172676f6e5f626c6f636b5f6e756d626572d4012c426c6f636b4e756d626572000138636f7369676e5f72657175657374410601b84f7074696f6e3c4f727068616e65645574786f436f7369676e526571756573743c426c6f636b4e756d6265723e3e0000410604184f7074696f6e0404540145060108104e6f6e6500000010536f6d6504004506000001000045060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574644f727068616e65645574786f436f7369676e52657175657374042c426c6f636b4e756d6265720110000c014c626974636f696e5f6e6574776f726b5f6665653001205361746f73686973000140746f5f7363726970745f7075626b65795903014c426974636f696e5363726970745075626b6579000174637265617465645f61745f6172676f6e5f626c6f636b5f6e756d62657210012c426c6f636b4e756d626572000049060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540130045300000400f905012c42547265655365743c543e00004d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540130045300000400f905012c42547265655365743c543e000051060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540139060453000004005506012c42547265655365743c543e0000550604204254726565536574040454013906000400590600000059060000023906005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d505045300000400d10501185665633c543e000061060c5070616c6c65745f626974636f696e5f6c6f636b731870616c6c6574144572726f7204045400018c44496e73756666696369656e7446756e647300000058496e73756666696369656e745661756c7446756e6473000100844163636f756e74576f756c64476f42656c6f774d696e696d756d42616c616e63650002045d015468652070726f706f736564207472616e73616374696f6e20776f756c642074616b6520746865206163636f756e742062656c6f7720746865206d696e696d756d20286578697374656e7469616c292062616c616e63652c5661756c74436c6f7365640003045054686973207661756c7420697320636c6f73656448496e76616c69645661756c74416d6f756e74000404dc46756e64696e6720776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654c526564656d7074696f6e4e6f744c6f636b6564000504b85468697320626974636f696e20726564656d7074696f6e20686173206e6f74206265656e206c6f636b656420696e98426974636f696e52656c65617365496e6974696174696f6e446561646c696e65506173736564000604c454686520626974636f696e20686173207061737365642074686520646561646c696e6520746f2072656c6561736520697444426974636f696e466565546f6f48696768000704b05468652066656520666f72207468697320626974636f696e2072656c6561736520697320746f6f20686967684c426974636f696e5574786f4e6f74466f756e64000804ec54686520426974636f696e20556e7370656374205472616e73616374696f6e204f757470757420285554584f2920776173206e6f7420666f756e6488426974636f696e556e61626c65546f42654465636f646564466f7252656c65617365000904e85468697320626974636f696e20636f7369676e2073637269707420636f756c646e2774206265206465636f64656420666f722072656c6561736584426974636f696e5369676e6174757265556e61626c65546f42654465636f646564000a04d85468697320626974636f696e207369676e617475726520636f756c646e2774206265206465636f64656420666f722072656c6561736578426974636f696e5075626b6579556e61626c65546f42654465636f646564000b04cc5468697320626974636f696e207075626b657920636f756c646e2774206265206465636f64656420666f722072656c6561736564426974636f696e496e76616c6964436f7369676e6174757265000c04e454686520636f7369676e207369676e6174757265206973206e6f742076616c696420666f722074686520626974636f696e2072656c6561736568496e73756666696369656e745361746f736869734c6f636b6564000d04a8546865206d696e696d756d206e756d626572206f66207361746f7368697320776173206e6f74206d6574604e6f426974636f696e507269636573417661696c61626c65000e0435015468652070726963652070726f766964657220686173206e6f20626974636f696e2070726963657320617661696c61626c652e205468697320697320612074656d706f72617279206572726f7250496e76616c6964426974636f696e536372697074000f04c854686520626974636f696e2073637269707420746f206c6f636b207468697320626974636f696e20686173206572726f7273344e6f5065726d697373696f6e73001004e4546865207573657220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d207468697320616374696f6e60486f6c64556e65787065637465646c794d6f646966696564001104090154686520657870656374656420616d6f756e74206f662066756e647320746f2072657475726e2066726f6d20686f6c6420776173206e6f7420617661696c61626c6544556e7265636f76657261626c65486f6c64001204a054686520686f6c64206f6e2066756e647320636f756c64206e6f74206265207265636f7665726564345661756c744e6f74466f756e640013045c546865207661756c7420776173206e6f7420666f756e644447656e657269635661756c744572726f720400650601285661756c744572726f7200140494416e206572726f72206f6363757272656420696e20746865207661756c74206d6f64756c65304c6f636b4e6f74466f756e640015049454686520426974636f696e204c6f636b207265636f726420776173206e6f7420666f756e64784e6f5661756c74426974636f696e5075626b657973417661696c61626c65001604884e6f205661756c74207075626c6963206b6579732061726520617661696c61626c6588556e61626c65546f47656e65726174655661756c74426974636f696e5075626b6579001704a4556e61626c6520746f2067656e65726174652061206e6577207661756c74207075626c6963206b6579445661756c744e6f745965744163746976650018047054686973207661756c74206973206e6f7420796574206163746976656445787069726174696f6e4174426c6f636b4f766572666c6f77001904c0416e206f766572666c6f77206f63637572726564207265636f7264696e672061206c6f636b2065787069726174696f6e544e6f52617463686574696e67417661696c61626c65001a04484e6f7468696e6720746f2072617463686574584c6f636b496e50726f636573734f6652656c65617365001b04c041206c6f636b20696e2070726f63657373206f662072656c656173652063616e6e6f7420626520726174636865746564484c6f636b50656e64696e6746756e64696e67001c04c8546865206c6f636b2066756e64696e6720686173206e6f74206265656e20636f6e6669726d6564206f6e20626974636f696e344f766572666c6f774572726f72001d042101416e206f766572666c6f77206f7220756e646572666c6f77206f63637572726564207768696c652063616c63756c6174696e672074686520726564656d7074696f6e2070726963657c496e656c696769626c654d6963726f676f6e52617465526571756573746564001e04c4416e20696e656c696769626c65206d6963726f676f6e2072617465207065722062746320776173207265717565737465646c4f727068616e65645574786f46756e64696e67436f6e666c696374001f04050143616e6e6f742066756e64207769746820616e206f727068616e6564207574786f206166746572206c6f636b2066756e64696e6720697320636f6e6669726d6564704f727068616e65645574786f52656c65617365526571756573746564002004ec43616e6e6f74206c6f636b20616e206f727068616e6564207574786f207769746820612070656e64696e672072656c6561736520726571756573746c46756e64696e675574786f43616e6e6f74426552656c6561736564002104dc43616e6e6f74207265717565737420616e206f727068616e65642072656c6561736520666f72207468652066756e64696e67205554584f984d61784f727068616e65645574786f52656c6561736552657175657374734578636565646564002204c8546f6f206d616e79206f727068616e6564207574786f2072656c6561736520726571756573747320666f722061206c6f636b048054686520604572726f726020656e756d206f6620746869732070616c6c65742e65060c406172676f6e5f7072696d697469766573147661756c74285661756c744572726f720001302c5661756c74436c6f736564000000684163636f756e74576f756c64426542656c6f774d696e696d756d00010044496e73756666696369656e7446756e647300020058496e73756666696369656e745661756c7446756e647300030060486f6c64556e65787065637465646c794d6f64696669656400040044556e7265636f76657261626c65486f6c64000500345661756c744e6f74466f756e64000600784e6f5661756c74426974636f696e5075626b657973417661696c61626c6500070088556e61626c65546f47656e65726174655661756c74426974636f696e5075626b657900080050496e76616c6964426974636f696e53637269707400090034496e7465726e616c4572726f72000a00445661756c744e6f74596574416374697665000b0000690600000408f410006d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400d90201185665633c543e000071060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011101045300000400750601185665633c543e0000750600000211010079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017d06045300000400810601185665633c543e00007d060000040830040081060000027d060085060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601f40453000004008906013842547265654d61703c4b2c20563e00008906042042547265654d617008044b0110045601f40004008d060000008d0600000291060091060000040810f40095060c3c70616c6c65745f6e6f7461726965731870616c6c6574144572726f720404540001244050726f706f73616c4e6f74466f756e64000004985468652070726f706f73616c20746f20616374697661746520776173206e6f7420666f756e644c4d61784e6f74617269657345786365656465640001048c4d6178696d756d206e756d626572206f66206e6f746172696573206578636565646564704d617850726f706f73616c73506572426c6f636b4578636565646564000204b84d6178696d756d206e756d626572206f662070726f706f73616c732070657220626c6f636b206578636565646564444e6f74416e4163746976654e6f74617279000304f054686973206e6f74617279206973206e6f74206163746976652c20736f2074686973206368616e67652063616e6e6f74206265206d6164652079657454496e76616c69644e6f746172794f70657261746f72000404a8496e76616c6964206e6f74617279206f70657261746f7220666f722074686973206f7065726174696f6e3c4e6f4d6f72654e6f74617279496473000504f4416e20696e7465726e616c206572726f7220686173206f636375727265642e20546865206e6f746172792069647320617265206578686175737465642e504566666563746976655469636b546f6f536f6f6e0006049c5468652070726f706f73656420656666656374697665207469636b20697320746f6f20736f6f6e2c546f6f4d616e794b65797300070458546f6f206d616e7920696e7465726e616c206b65797334496e76616c69644e6f7461727900080454546865206e6f7461727920697320696e76616c6964048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990600000408108903009d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a106045300000400a90601185665633c543e0000a10600000408a5062000a5060c406172676f6e5f7072696d697469766573186e6f74617279604e6f746172794e6f7465626f6f6b4b657944657461696c73000014013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d6265720001107469636b2c01105469636b000140626c6f636b5f766f7465735f726f6f743401104832353600012c7365637265745f686173683401484e6f7465626f6f6b53656372657448617368000134706172656e745f7365637265748d0201584f7074696f6e3c4e6f7465626f6f6b5365637265743e0000a906000002a10600ad060000040c1030190100b1060c3c70616c6c65745f6e6f7465626f6f6b1870616c6c6574144572726f7204045400013c5c4475706c69636174654e6f7465626f6f6b4e756d626572000004a054686973206e6f7465626f6f6b2068617320616c7265616479206265656e207375626d6974746564544d697373696e674e6f7465626f6f6b4e756d6265720001047c4e6f7465626f6f6b73207265636569766564206f7574206f66206f726465725c4e6f7465626f6f6b5469636b416c726561647955736564000204b041206e6f7465626f6f6b2077617320616c72656164792070726f76696465642061742074686973207469636b60496e76616c69644e6f7465626f6f6b5369676e6174757265000304a0546865207369676e6174757265206f6620746865206e6f7465626f6f6b20697320696e76616c696454496e76616c696453656372657450726f7669646564000404f454686520736563726574206f72207365637265742068617368206f662074686520706172656e74206e6f7465626f6f6b20646f206e6f74206d6174636858436f756c644e6f744465636f64654e6f7465626f6f6b000504c0436f756c64206e6f74206465636f646520746865207363616c65206279746573206f6620746865206e6f7465626f6f6b5c4475706c69636174654e6f7465626f6f6b446967657374000604bc546865206e6f7465626f6f6b206469676573742077617320696e636c75646564206d6f7265207468616e206f6e6365544d697373696e674e6f7465626f6f6b44696765737400070490546865206e6f7465626f6f6b2064696765737420776173206e6f7420696e636c7564656454496e76616c69644e6f7465626f6f6b446967657374000804e0546865206e6f7465626f6f6b2064696765737420646964206e6f74206d617463682074686520696e636c75646564206e6f7465626f6f6b73844d756c7469706c654e6f7465626f6f6b496e686572656e747350726f76696465640009046c4d756c7469706c6520696e686572656e74732070726f766964656434496e7465726e616c4572726f72000a04a0556e61626c6520746f20747261636b20746865206e6f7465626f6f6b206368616e6765206c697374804e6f7465626f6f6b5375626d6974746564466f724c6f636b65644e6f74617279000b04350141206e6f7465626f6f6b20776173207375626d697474656420666f722061206e6f746172792074686174206661696c65642061756469742c207768696368206973206e6f7420616c6c6f77656460496e76616c6964526570726f636573734e6f7465626f6f6b000c0468496e76616c696420726570726f63657373206e6f7465626f6f6b54496e76616c69644e6f746172794f70657261746f72000d045c496e76616c6964206e6f74617279206f70657261746f7274496e76616c69644e6f7465626f6f6b5375626d697373696f6e5469636b000e0480496e76616c6964206e6f7465626f6f6b207375626d697373696f6e207469636b048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb506086870616c6c65745f6c6f63616c636861696e5f7472616e73666572445175657565645472616e736665724f757408244163636f756e74496401001c42616c616e63650118001001286163636f756e745f69640001244163636f756e744964000118616d6f756e7418011c42616c616e636500013c65787069726174696f6e5f7469636b3001105469636b0001246e6f746172795f69641001204e6f7461727949640000b9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400790501185665633c543e0000bd0608346672616d655f737570706f72742050616c6c65744964000004007502011c5b75383b20385d0000c1060c6870616c6c65745f6c6f63616c636861696e5f7472616e736665721870616c6c6574144572726f72040454000120644d6178426c6f636b5472616e7366657273457863656564656400000044496e73756666696369656e7446756e6473000104b0496e73756666696369656e742062616c616e636520746f206372656174652074686973207472616e7366657268496e73756666696369656e744e6f746172697a656446756e6473000204d0496e73756666696369656e742062616c616e636520746f2066756c66696c6c2061206d61696e636861696e207472616e7366657294496e76616c69644f724475706c6963617465644c6f63616c636861696e5472616e73666572000304d8546865207472616e736665722077617320616c7265616479207375626d697474656420696e20612070726576696f757320626c6f636ba44e6f7465626f6f6b496e636c75646573457870697265644c6f63616c636861696e5472616e73666572000404410141207472616e7366657220776173207375626d697474656420696e20612070726576696f757320626c6f636b20627574207468652065787069726174696f6e20626c6f636b206861732070617373656470496e76616c69644e6f7461727955736564466f725472616e736665720005047c546865206e6f74617279206964206973206e6f7420726567697374657265645c4e6f746172794c6f636b6564466f725472616e73666572000604ec546865206e6f746172792069732063757272656e746c79206c6f636b656420616e642063616e6e6f742070726f63657373207472616e7366657273544e6f417661696c61626c655472616e7366657249640007049c4e6f207472616e7366657220494473206172652063757272656e746c7920617661696c61626c65048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400fd0501185665633c543e0000c9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400610501185665633c543e0000cd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d106045300000400d50601185665633c543e0000d1060c406172676f6e5f7072696d697469766573186e6f746172797c4e6f746172794e6f7465626f6f6b566f746544696765737444657461696c7300001401246e6f746172795f6964d401204e6f74617279496400013c6e6f7465626f6f6b5f6e756d626572d401384e6f7465626f6f6b4e756d6265720001107469636b2c01105469636b000144626c6f636b5f766f7465735f636f756e74d4010c753332000148626c6f636b5f766f74696e675f706f776572c00140426c6f636b566f74696e67506f7765720000d506000002d10600d9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd06045300000400e10601185665633c543e0000dd060000040c30101800e106000002dd0600e5060c5870616c6c65745f626c6f636b5f7365616c5f737065631870616c6c6574144572726f72040454000104684d61784e6f7465626f6f6b7341745469636b45786365656465640000041501546865206d6178696d756d206e756d626572206f66206e6f7465626f6f6b73206174207468652063757272656e74207469636b20686173206265656e206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000ed060c3870616c6c65745f646f6d61696e731870616c6c6574144572726f720404540001144c446f6d61696e4e6f74526567697374657265640000047454686520646f6d61696e206973206e6f7420726567697374657265642e384e6f74446f6d61696e4f776e6572000104a85468652073656e646572206973206e6f7420746865206f776e6572206f662074686520646f6d61696e2e6c4661696c6564546f416464546f41646472657373486973746f7279000204944661696c656420746f2061646420746f20746865206164647265737320686973746f72792e644661696c6564546f4164644578706972696e67446f6d61696e000304a44661696c656420746f2061646420746f20746865206578706972696e6720646f6d61696e206c697374504163636f756e744465636f64696e674572726f72000404884572726f72206465636f64696e67206163636f756e742066726f6d206e6f74617279048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f506045300000400f90601185665633c543e0000f506084870616c6c65745f70726963655f696e646578504370694d6561737572656d656e744275636b657400000c01287469636b5f72616e676589050130285469636b2c205469636b29000124746f74616c5f637069910101204172676f6e4350490001486d6561737572656d656e74735f636f756e7410010c7533320000f906000002f50600fd060c4870616c6c65745f70726963655f696e6465781870616c6c6574144572726f72040454000110544e6f74417574686f72697a65644f70657261746f72000004904e6f7420617574686f72697a656420617320616e206f7261636c65206f70657261746f72304d697373696e6756616c7565000104344d697373696e672076616c756530507269636573546f6f4f6c6400020480546865207375626d6974746564207072696365732061726520746f6f206f6c64744d617850726963654368616e67655065725469636b4578636565646564000304884368616e676520696e206172676f6e20707269636520697320746f6f206c61726765048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0107083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300000507083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965730907016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f726365645d0201244f7074696f6e3c4e3e000009070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454016d01045300000400690101185665633c543e00000d070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e11070c406172676f6e5f7072696d6974697665732470726f7669646572733c426c6f636b5365616c6572496e666f08244163636f756e74496401002c417574686f72697479496401b8000c015c626c6f636b5f617574686f725f6163636f756e745f69640001244163636f756e744964000168626c6f636b5f766f74655f726577617264735f6163636f756e74bc01444f7074696f6e3c4163636f756e7449643e000150626c6f636b5f7365616c5f617574686f726974798101014c4f7074696f6e3c417574686f7269747949643e000015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d05045300000400710501185665633c543e000019070c4470616c6c65745f626c6f636b5f7365616c1870616c6c6574144572726f720404540001545c496e76616c6964566f74655365616c537472656e677468000004e454686520737472656e677468206f662074686520676976656e207365616c20646964206e6f74206d617463682063616c63756c6174696f6e7340496e76616c69645375626d697474657200010494566f7465206e6f74207375626d697474656420627920746865207269676874206d696e657264556e61626c65546f4465636f6465566f74654163636f756e740002047c436f756c64206e6f74206465636f64652074686520766f74652062797465735c556e72656769737465726564426c6f636b417574686f72000304a854686520626c6f636b20617574686f72206973206e6f7420612072656769737465726564206d696e657254496e76616c6964426c6f636b566f746550726f6f66000404f4546865206d65726b6c652070726f6f66206f6620766f746520696e636c7573696f6e20696e20746865206e6f7465626f6f6b20697320696e76616c6964604e6f4772616e64706172656e74566f74654d696e696d756d000504ac4e6f20766f7465206d696e696d756d20666f756e64206174206772616e64706172656e7420686569676874684475706c6963617465426c6f636b5365616c50726f766964656400060478546f6f206d616e7920626c6f636b207365616c73207375626d69747465645c496e73756666696369656e74566f74696e67506f776572000704590154686520626c6f636b20766f746520646964206e6f7420726561636820746865206d696e696d756d20766f74696e6720706f7765722061742074696d65206f6620746865206772616e64706172656e7420626c6f636b5c506172656e74566f74696e674b65794e6f74466f756e64000804cc4e6f207265676973746572656420766f74696e67206b657920666f756e6420666f722074686520706172656e7420626c6f636b68496e76616c6964566f74654772616e64706172656e7448617368000904a054686520626c6f636b20766f746520776173206e6f7420666f7220612076616c696420626c6f636b58496e656c696769626c654e6f7465626f6f6b55736564000a04cc546865206e6f7465626f6f6b20666f72207468697320766f746520776173206e6f7420656c696769626c6520746f20766f7465504e6f456c696769626c65566f74696e67526f6f74000b043d01546865206c6f6f6b757020746f20766572696679206120766f746527732061757468656e746963697479206973206e6f7420617661696c61626c6520666f722074686520676976656e20626c6f636b48436f756c644e6f744465636f6465566f7465000c04b4436f756c64206e6f74206465636f646520746865207363616c65206279746573206f662074686520766f746573684d61784e6f7465626f6f6b7341745469636b4578636565646564000d043901546f6f206d616e79206e6f7465626f6f6b732077657265207375626d697474656420666f72207468652063757272656e74207469636b2e2053686f756c64206e6f7420626520706f737369626c65684e6f436c6f736573744d696e6572466f756e64466f72566f7465000e047c4e6f20636c6f73657374206d696e657220666f756e6420666f7220766f746564426c6f636b566f7465496e76616c69645369676e6174757265000f047854686520766f7465207369676e61747572652077617320696e76616c696458496e76616c6964466f726b506f776572506172656e7400100464496e76616c696420666f726b20706f77657220706172656e7450426c6f636b5365616c4465636f64654572726f72001104d04120626c6f636b207365616c20617574686f7269747920636f756c64206e6f742062652070726f7065726c79206465636f6465645c496e76616c6964436f6d70757465426c6f636b5469636b001204dc436f6d7075746520626c6f636b732063616e7420626520616464656420696e207468652073616d65207469636b206173206120766f746558496e76616c69644d696e65724e6f6e636553636f7265001304b0546865206e6f6e63652073636f72652064697374616e636520737570706c69656420697320696e76616c6964604475706c6963617465566f7465426c6f636b41745469636b001404504475706c696361746520766f746520626c6f636b048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017901045300000400750101185665633c543e000021070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d505045300000400d10501185665633c543e000025070000040c1830180029070c5070616c6c65745f626c6f636b5f726577617264731870616c6c6574144572726f72040454000100048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013107045300000400350701185665633c543e000031070000040c30001800350700000231070039070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013004560118045300000400cd05013842547265654d61703c4b2c20563e00003d07000004081041070041070c2c70616c6c65745f6d696e741870616c6c6574284d696e74416374696f6e0404420118000c01306172676f6e5f6275726e6564180104420001306172676f6e5f6d696e74656418010442000138626974636f696e5f6d696e74656418010442000045070c2c70616c6c65745f6d696e741870616c6c6574144572726f720404540001044c546f6f4d616e7950656e64696e674d696e7473000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742e49070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d07045300000400550701185665633c543e00004d070c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964750201384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735107011c526561736f6e73000051070c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055070000024d070059070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d07045300000400610701185665633c543e00005d070c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720175021c42616c616e6365011800080108696475020144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061070000025d070065070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540169070453000004006d0701185665633c543e0000690714346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401a1011c42616c616e63650118000801086964a10101084964000118616d6f756e7418011c42616c616e636500006d0700000269070071070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017507045300000400810701185665633c543e0000750714346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e74080849640179071c42616c616e63650118000801086964790701084964000118616d6f756e7418011c42616c616e63650000790708346172676f6e5f72756e74696d654c52756e74696d65467265657a65526561736f6e00010430426c6f636b5265776172647304007d07018870616c6c65745f626c6f636b5f726577617264733a3a467265657a65526561736f6e001300007d070c5070616c6c65745f626c6f636b5f726577617264731870616c6c657430467265657a65526561736f6e000104404d617475726174696f6e506572696f6400000000810700000275070085070c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e89070c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d070c3c70616c6c65745f74785f70617573651870616c6c6574144572726f720404540001102049735061757365640000044c5468652063616c6c206973207061757365642e284973556e706175736564000104545468652063616c6c20697320756e7061757365642e28556e7061757361626c65000204b45468652063616c6c2069732077686974656c697374656420616e642063616e6e6f74206265207061757365642e204e6f74466f756e64000300048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9107086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000950710346672616d655f737570706f7274187472616974731c73746f72616765184e6f44726f7004045401990700040099070104540000990718346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6524696d62616c616e636524496d62616c616e63650c04420118184f6e44726f7000384f70706f736974654f6e44726f700000040118616d6f756e741801044200009d070c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea1070c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ea5070c3c70616c6c65745f74726561737572791870616c6c6574444672616d655661756c744361706974616c04045400000801206672616d655f69642c011c4672616d6549640001187661756c7473a90701f8426f756e64656442547265654d61703c5661756c7449642c205661756c744361706974616c3c543e2c20543a3a4d61785661756c7473506572506f6f6c3e0000a9070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601ad07045300000400bd07013842547265654d61703c4b2c20563e0000ad070c3c70616c6c65745f74726561737572791870616c6c6574305661756c744361706974616c04045400000c0150626f6e645f6c6f745f616c6c6f636174696f6e73b10701e4426f756e6465645665633c426f6e644c6f74416c6c6f636174696f6e2c20543a3a4d61785472656173757279436f6e7472696275746f72733e000138656c696769626c655f626f6e6473d40114426f6e64730001547661756c745f73686172696e675f70657263656e742d03011c5065726d696c6c0000b1070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b507045300000400b90701185665633c543e0000b5070c3c70616c6c65745f74726561737572791870616c6c657444426f6e644c6f74416c6c6f636174696f6e000008012c626f6e645f6c6f745f69642c0124426f6e644c6f74496400011c70726f72617461e001244669786564553132380000b907000002b50700bd07042042547265654d617008044b0110045601ad07000400c107000000c107000002c50700c5070000040810ad0700c9070c3c70616c6c65745f74726561737572791870616c6c65741c426f6e644c6f7404045400002801146f776e6572000130543a3a4163636f756e7449640001207661756c745f6964d4011c5661756c744964000114626f6e6473d40114426f6e6473000140637265617465645f6672616d655f69642c011c4672616d65496400014c7061727469636970617465645f6672616d6573d4010c7533320001706c6173745f6672616d655f6561726e696e67735f6672616d655f69648d01013c4f7074696f6e3c4672616d6549643e00014c6c6173745f6672616d655f6561726e696e6773850101484f7074696f6e3c543a3a42616c616e63653e00014c63756d756c61746976655f6561726e696e6773c00128543a3a42616c616e636500014072656c656173655f6672616d655f69648d01013c4f7074696f6e3c4672616d6549643e00013872656c656173655f726561736f6ecd0701644f7074696f6e3c426f6e6452656c65617365526561736f6e3e0000cd0704184f7074696f6e04045401dd010108104e6f6e6500000010536f6d650400dd010000010000d10700000408003000d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400fd0501185665633c543e0000d9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd07045300000400e10701185665633c543e0000dd070c3c70616c6c65745f74726561737572791870616c6c657438426f6e644c6f7453756d6d617279000008012c626f6e645f6c6f745f69642c0124426f6e644c6f744964000114626f6e6473d40114426f6e64730000e107000002dd0700e5070c3c70616c6c65745f74726561737572791870616c6c6574144572726f7204045400012850426f6e64507572636861736552656a6563746564000004dc54686520707572636861736520776f756c64206e6f7420656e74657220746865207661756c742773206163636570746564206c6973742e785661756c744e6f74416363657074696e67426f6e64507572636861736573000104a8546865207661756c74206973206e6f7420616363657074696e6720626f6e64207075726368617365732e60426f6e64507572636861736542656c6f774d696e696d756d000204a45468652070757263686173652069732062656c6f7720746865206d696e696d756d20616d6f756e742e34496e7465726e616c4572726f720003046c416e20696e7465726e616c206572726f72206f636375727265642e6c4d61784163636570746564426f6e644c6f74734578636565646564000404fc546865207661756c7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616363657074656420626f6e64206c6f74732e784d617850656e64696e67426f6e6452656c65617365734578636565646564000504f0546f6f206d616e7920626f6e64206c6f742072656c656173657320617265207363686564756c656420666f72207468652073616d65206672616d652e3c426f6e644c6f744e6f74466f756e640006048054686520626f6e64206c6f7420636f756c64206e6f7420626520666f756e642e3c4e6f74426f6e644c6f744f776e6572000704945468652063616c6c657220646f6573206e6f74206f776e2074686520626f6e64206c6f742e5c426f6e644c6f74416c726561647952656c656173696e67000804b854686520626f6e64206c6f7420697320616c7265616479207363686564756c656420666f722072656c656173652e64426f6e64507572636861736541626f766553656375726974790009043101546865207661756c7420646f65736e2774206861766520656e6f75676820626974636f696e20736563757269747920746f20737570706f7274207468697320626f6e64207075726368617365048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee9070c4870616c6c65745f6665655f636f6e74726f6c1870616c6c6574144572726f720404540001044c53706f6e736f726564466565546f6f4869676800000425015468652072657175657374656420746970202b2066656520697320686967686572207468616e20746865206d6178696d756d20616c6c6f776564206279207468652073706f6e736f72048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed070c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574484f7065726174696f6e616c4163636f756e7404045400004c01347661756c745f6163636f756e74000130543a3a4163636f756e7449640001586d696e696e675f66756e64696e675f6163636f756e74000130543a3a4163636f756e7449640001486d696e696e675f626f745f6163636f756e74000130543a3a4163636f756e744964000144656e6372797074696f6e5f7075626b6579350401584f7061717565456e6372797074696f6e5075626b657900011c73706f6e736f72bc01504f7074696f6e3c543a3a4163636f756e7449643e0001506861735f756e69737761705f7472616e73666572200110626f6f6c0001347661756c745f63726561746564200110626f6f6c00013c626974636f696e5f6163637275616c180128543a3a42616c616e6365000154626974636f696e5f6170706c6965645f746f74616c180128543a3a42616c616e636500017c6861735f74726561737572795f706f6f6c5f70617274696369706174696f6e200110626f6f6c00014c6d696e696e675f736561745f6163637275616cd4010c7533320001646d696e696e675f736561745f6170706c6965645f746f74616cd4010c75333200016c6f7065726174696f6e616c5f726566657272616c735f636f756e74d4010c753332000140726566657272616c5f70656e64696e67200110626f6f6c00014c617661696c61626c655f726566657272616c73d4010c753332000150726577617264735f6561726e65645f636f756e74d4010c753332000154726577617264735f6561726e65645f616d6f756e74180128543a3a42616c616e6365000160726577617264735f636f6c6c65637465645f616d6f756e74180128543a3a42616c616e636500013869735f6f7065726174696f6e616c200110626f6f6c0000f10700000408300400f5070c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c65743452657761726473436f6e666967041c42616c616e636501180008016c6f7065726174696f6e616c5f726566657272616c5f726577617264c0011c42616c616e6365000154726566657272616c5f626f6e75735f726577617264c0011c42616c616e63650000f9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd070c6c70616c6c65745f6f7065726174696f6e616c5f6163636f756e74731870616c6c6574144572726f7204045400014444416c726561647952656769737465726564000004d45468652063616c6c657220616c7265616479207265676973746572656420616e206f7065726174696f6e616c206163636f756e742e70496e76616c6964526567697374726174696f6e5375626d69747465720001040d015468652063616c6c6572206973206e6f74206f6e65206f6620746865206163636f756e747320696e636c7564656420696e2074686520726567697374726174696f6e2e504163636f756e74416c72656164794c696e6b656400020425014f6e65206f66207468652070726f7669646564206163636f756e747320697320616c7265616479206c696e6b656420746f20616e206f7065726174696f6e616c206163636f756e742e4c496e76616c69644163636f756e7450726f6f66000304d84f6e65206f6620746865206c696e6b6564206163636f756e74206f776e6572736869702070726f6f667320697320696e76616c69642e544e6f744f7065726174696f6e616c4163636f756e74000404d45468652063616c6c657220686173206e6f74207265676973746572656420616e206f7065726174696f6e616c206163636f756e742e50496e76616c6964526566657272616c50726f6f66000504bc54686520726566657272616c2070726f6f66206f722073706f6e736f722070726f6f6620697320696e76616c69642e50526566657272616c50726f6f66457870697265640006047c54686520726566657272616c2070726f6f662068617320657870697265642e604e6f50726f677265737355706461746550726f7669646564000704e8546865207265717565737465642070726f677265737320706174636820646f6573206e6f7420636f6e7461696e20616e7920757064617465732e58456e63727970746564536572766572546f6f4c6f6e67000804fc54686520656e6372797074656420736572766572207061796c6f616420657863656564732074686520636f6e66696775726564206d6178206c656e6774682e4c4e6f7453706f6e736f724f6653706f6e736565000904dc5468652063616c6c6572206973206e6f74207468652073706f6e736f72206f6620746865207265717565737465642073706f6e7365652e404e6f50656e64696e6752657761726473000a04e0546865206f7065726174696f6e616c206163636f756e7420686173206e6f2070656e64696e67207265776172647320746f20636c61696d2e5c526577617264436c61696d42656c6f774d696e696d756d000b04a452657761726420636c61696d73206d757374206265206174206c65617374206f6e65204172676f6e2e60526577617264436c61696d4e6f7457686f6c654172676f6e000c04b452657761726420636c61696d73206d7573742062652077686f6c65204172676f6e20696e6372656d656e74732e64526577617264436c61696d4578636565647350656e64696e67000d04cc546865207265717565737465642072657761726420636c61696d20657863656564732070656e64696e6720726577617264732e645472656173757279496e73756666696369656e7446756e6473000e04350154686520747265617375727920646f6573206e6f742063757272656e746c79206861766520656e6f75676820617661696c61626c6520726573657276657320666f722074686520636c61696d2e48416c72656164794f7065726174696f6e616c000f048c546865206163636f756e7420697320616c7265616479206f7065726174696f6e616c2e604e6f74456c696769626c65466f7241637469766174696f6e001004ec546865206163636f756e7420686173206e6f7420736174697366696564206f7065726174696f6e616c20726571756972656d656e7473207965742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e01080c6070616c6c65745f657468657265756d5f76657269666965721474797065736846696e616c697a6564426561636f6e48656164657253746174650000040110736c6f742c010c753634000005080c6070616c6c65745f657468657265756d5f766572696669657214747970657354457865637574696f6e486561646572416e63686f720000100130626c6f636b5f6e756d6265722c0150457865637574696f6e426c6f636b4e756d626572000128626c6f636b5f68617368340148457865637574696f6e426c6f636b4861736800012c706172656e745f68617368340148457865637574696f6e426c6f636b4861736800013472656365697074735f726f6f743401305265636569707473526f6f74000009080c6070616c6c65745f657468657265756d5f76657269666965721474797065735453796e63436f6d6d6974746565507265706172656400000c0110726f6f743401104832353600011c7075626b6579730d08011901426f756e6465645665633c5075626c69634b657950726570617265642c20436f6e73745533323c7b2053594e435f434f4d4d49545445455f424f554e445f53495a45207d3e3e0001406167677265676174655f7075626b6579110801445075626c69634b6579507265706172656400000d080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011108045300000400290801185665633c543e000011080c58736e6f776272696467655f6d696c6167726f5f626c73106b657973245075626c69634b65790000040114706f696e741508011c47726f7570473100001508103c736e6f776272696467655f616d636c18626c733338310c6563700c45435000000c010478190801084650000104791908010846500001047a19080108465000001908103c736e6f776272696467655f616d636c18626c733338310866700846500000080104781d08010c42696700010c7865732508010c69333200001d08103c736e6f776272696467655f616d636c18626c733338310c6269670c426967000004010477210801345b4368756e6b3b204e4c454e5d000021080000030e00000025080025080000050b0029080000021108002d080c406172676f6e5f7072696d69746976657320657468657265756d50457468657265756d426561636f6e5072657365740001081c4d61696e6e65740000001c4d696e696d616c0001000031080c6070616c6c65745f657468657265756d5f76657269666965721870616c6c6574144572726f7204045400015468536b697070656453796e63436f6d6d6974746565506572696f640000006c53796e63436f6d6d6974746565557064617465526571756972656400010040497272656c6576616e74557064617465000204d8417474657374656420686561646572206973206f6c646572207468616e206c61746573742066696e616c697a6564206865616465722e3c4e6f74426f6f747374726170706564000300a453796e63436f6d6d69747465655061727469636970616e74734e6f7453757065726d616a6f7269747900040060496e76616c69644865616465724d65726b6c6550726f6f660005007c496e76616c696453796e63436f6d6d69747465654d65726b6c6550726f6f660006006c496e76616c6964457865637574696f6e48656164657250726f6f6600070064496e76616c696446696e616c697a6564486561646572476170000804410154686520676170206265747765656e2066696e616c697a65642068656164657273206973206c6172676572207468616e207468652072657461696e656420686973746f726963616c2077696e646f772e604865616465724861736854726565526f6f744661696c65640009006c426c6f636b426f64794861736854726565526f6f744661696c6564000a007c53796e63436f6d6d69747465654861736854726565526f6f744661696c6564000b00745369676e696e67526f6f744861736854726565526f6f744661696c6564000c0068466f726b446174614861736854726565526f6f744661696c6564000d0080457870656374656446696e616c697a65644865616465724e6f7453746f726564000e0068424c53507265706172655075626c69634b6579734661696c6564000f0054424c53566572696669636174696f6e4661696c656400100058556e6578706563746564426561636f6e50726573657400110044496e76616c6964557064617465536c6f7400120068496e76616c696453796e63436f6d6d6974746565557064617465001308550154686520676976656e20757064617465206973206e6f7420696e2074686520657870656374656420706572696f642c206f722074686520676976656e206e6578742073796e6320636f6d6d697474656520646f6573b46e6f74206d6174636820746865206e6578742073796e6320636f6d6d697474656520696e2073746f726167652e1848616c746564001400048054686520604572726f726020656e756d206f6620746869732070616c6c65742e350800000408010209020039080c6870616c6c65745f63726f7373636861696e5f7472616e736665721870616c6c6574144572726f7204045400012c50496e76616c6964457468657265756d4576656e74000004110154686520457468657265756d206576656e7420746f70696373206f72207061796c6f616420646f206e6f74206d6174636820604275726e466f725472616e73666572602e30496e76616c696450726f6f66000104c854686520457468657265756d2076657269666965722072656a65637465642074686520737570706c6965642070726f6f662e40496e76616c6964526563697069656e740002042d015468652064657374696e6174696f6e206163636f756e7420627974657320636f756c64206e6f74206265206465636f64656420696e746f2061206c6f63616c206163636f756e742069642e34496e76616c6964416d6f756e74000304110154686520636c61696d656420616d6f756e7420776173207a65726f206f7220746f6f206c6172676520666f7220746865206c6f63616c2062616c616e636520747970652e44556e737570706f72746564536f75726365000404d854686520736f7572636520636861696e206973206e6f7420636f6e6669677572656420666f7220696e626f756e6420636c61696d732e48556e737570706f72746564476174657761790005042501546865206761746577617920646f6573206e6f74206d617463682074686520616374697665206f72207374696c6c2d61636365707465642070726576696f75732072656c656173652e40556e737570706f72746564546f6b656e000604f454686520746f6b656e206973206e6f7420737570706f7274656420756e64657220746865206d61746368656420676174657761792072656c656173652e3c556e65787065637465644e6f6e6365000704390154686520636c61696d206e6f6e6365206973206e6f742065786163746c7920746865206e657874206163636570746564206e6f6e636520666f722074686520736f75726365206163636f756e742e48496e76616c6964436861696e436f6e666967000804f454686520636f6e6669677572656420736f757263652d636861696e20736861706520697320696e636f6d706c657465206f72206d616c666f726d65642e54496e73756666696369656e744c6971756964697479000904d4546865206275726e206163636f756e74206c61636b7320656e6f7567682062616c616e636520666f7220746865207061796f75742e70496e73756666696369656e744275726e416d6f756e74466f72466565000a044901546865206361707475726564207265696d6275727361626c65206665652069732067726561746572207468616e206f7220657175616c20746f20746865206275726e6564204172676f6e20616d6f756e742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d08102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e9021043616c6c01e102245369676e617475726501f9031445787472610141080004003800000041080000042c450849084d085108550859086108650869086d08750800450810306672616d655f73797374656d28657874656e73696f6e7338617574686f72697a655f63616c6c34417574686f72697a6543616c6c04045400000000490810306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000004d0810306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000510810306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000550810306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000590810306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005d08010c45726100005d08102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000610810306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400d40120543a3a4e6f6e63650000650810306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006908086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400c0013042616c616e63654f663c543e00006d0808746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465710801104d6f64650000710808746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000750810306672616d655f73797374656d28657874656e73696f6e73387765696768745f7265636c61696d345765696768745265636c61696d04045400000000790804184f7074696f6e04045401040108104e6f6e6500000010536f6d6504000400000100007d0808346172676f6e5f72756e74696d651c52756e74696d6500000000801853797374656d011853797374656d501c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e24426c6f636b53697a6500001004000cb020546f74616c2073697a652028696e20627974657329206f66207468652063757272656e7420626c6f636b2e00c820547261636b73207468652073697a65206f66207468652068656164657220616e6420616c6c2065787472696e736963732e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402341d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000250204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e44426c6f636b7354696c6c55706772616465000008040004ec204e756d626572206f6620626c6f636b732074696c6c207468652070656e64696e6720636f64652075706772616465206973206170706c6965642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500003102040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e6045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e01350201581830426c6f636b576569676874734502fd01c2a0e766000b00a0724e180913ffffffffffffffff2261c91900010bb81711ca5d061332333333333333b3010b00f8d53ad20613ffffffffffffffbf0100002261c91900010bb8bfaddda3081332333333333333f3010b00a0724e180913ffffffffffffffff010b00a89c1346021300000000000000402261c9190000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746855023400003c0000005000000050000004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687461024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e65029904146172676f6e146172676f6e01000000970000000a00000058df6acb689907609b0500000037e397fc7c91f5e402000000ccd9de6396c899ca0100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000bc9d89904f5b923f01000000ab3c0572291feb8b0200000037c8bb1350a9a2a804000000f3ff14d5ab5270590300000061571683e6d7a7c8010000005e4dc2ce83c23f0901000000e6683faaa563317a0200000011de59f9923f03d80100000051c97e4020145cb001000000bab599c4f0d362c601000000fff0fb031985f8a1020000000090f9d890bb0bb20100000005dd9be92cc17d280300000097c56de838cad0ef01000000ed99c5acb25eedf503000000fbc577b9d747efd60100000005000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669789c082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017902001c44696765737473011c44696765737473042c54656d704469676573747300007d020400000001800001c502012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e01c9020004344d696e696d756d506572696f6430200100000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0002204d756c746973696701204d756c746973696704244d756c7469736967730001080502cd02d102040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01dd0201840c2c4465706f736974426173651840a005000000000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f721840a00000000000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01e904031450726f7879011450726f7879081c50726f786965730101040500ed044400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500fd0444000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01e5020194184050726f78794465706f736974426173651840b004000000000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f721840a500000000000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173651840d804000000000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f7218404a01000000000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e010d0504145469636b7301145469636b73143050726576696f75735469636b010030200000000000000000002c43757272656e745469636b010030200000000000000000002c47656e657369735469636b010030200000000000000000003447656e657369735469636b657201001105080000004c526563656e74426c6f636b7341745469636b7301010405301505040008e820426c6f636b732066726f6d20746865206c61737420313030207469636b732e205472696d6d656420696e206f6e5f696e697469616c697a652ef4204e4f54453a2063616e6e6f7420696e636c756465207468652063757272656e7420626c6f636b206861736820756e74696c206e65787420626c6f636b01f502000001190505284d696e696e67536c6f7401284d696e696e67536c6f74505c48617341646465644772616e647061526f746174696f6e010020040000384d696e6572734279436f686f72740101040230a80400045901204d696e6572732074686174206172652061637469766520696e207468652063757272656e7420626c6f636b2028706f737420696e697469616c697a6529206279207468656972207374617274696e67206672616d65444163746976654d696e657273436f756e7401009c08000000644d696e65724e6f6e636553636f72696e674279436f686f727401001d0504000c610120546869732069732061206c6f6f6b7570206f662065616368206d696e65722773206e6f6e636520746f20757365207768656e207069636b696e672061206265737420617574686f7269747920746f207375626d69742061510120626c6f636b2e2049742773206120626c616b6532203235362068617368206f6620746865206d696e6572206163636f756e7420696420616e642074686520626c6f636b20686173682061742074696d65206f66302061637469766174696f6e2e544172676f6e6f74735065724d696e696e6753656174010018400000000000000000000000000000000004c8204172676f6e6f74732074686174206d757374206265206c6f636b656420746f2074616b652061204d696e657220726f6c65484163636f756e74496e6465784c6f6f6b757000010402003d050400046901204c6f6f6b7570206279206163636f756e7420696420746f2074686520636f72726573706f6e64696e6720696e64657820696e204d696e6572734279436f686f727420616e64204d696e65724e6f6e6365734279436f686f72745442696473466f724e657874536c6f74436f686f72740100a80400080d012054686520636f686f72742073657420746f20676f20696e746f2065666665637420696e20746865206e65787420736c6f742e20546865205665632068617320616c6c882072656769737472616e747320776974682074686569722062696420616d6f756e746452656c65617365644d696e65727342794163636f756e74496401004105040004150120546865206d696e6572732072656c656173656420696e20746865206c61737420626c6f636b20286f6e6c79206b65707420666f7220612073696e676c6520626c6f636b295449734e657874536c6f7442696464696e674f70656e0100200400049420497320746865206e65787420736c6f74207374696c6c206f70656e20666f72206269647354486973746f726963616c42696473506572536c6f7401005105040004050120546865206e756d626572206f6620626964732070657220736c6f7420666f7220746865206c61737420313020736c6f747320286e6577657374206669727374294c4176657261676550726963655065725365617401005d05040004050120546865206176657261676520707269636520706572207365617420666f7220746865206c617374203130206672616d657320286e657765737420666972737429304d696e696e67436f6e666967010065050c00000004b420546865206d696e696e6720736c6f7420636f6e66696775726174696f6e2073657420696e2067656e657369732c4e6578744672616d65496401003020000000000000000008750120546865206e657874206672616d6549642e2041206672616d6520696e206172676f6e2069732074686520323420686f757273206265747765656e20746865207374617274206f662074776f20646966666572656e74206d696e696e672420636f686f7274732e4c4e65776c79537461727465644672616d654964000030040004942049732061206e6577206672616d65207374617274656420696e207468697320626c6f636b384e657874436f686f727453697a65010010100000000004f420546865206e756d626572206f6620616c6c6f77206d696e65727320746f2062696420666f7220746865206e657874206d696e696e6720636f686f7274805363686564756c6564436f686f727453697a654368616e676542794672616d650100690504000ce420546865207570636f6d696e67206368616e676573207363686564756c656420666f7220636f686f72742073697a65206279206672616d652e5501204361706163697479206f6620313120616c6c6f777320666f72203130206672616d657320776f727468206f66207363686564756c6564206368616e67657320706c7573206f6e6520776f726b696e6720736c6f74d020746f207363686564756c652061206e6577206368616e676520647572696e67206672616d652066696e616c697a6174696f6e2e644672616d655265776172645469636b7352656d61696e696e6701003020000000000000000004c820546865206e756d626572206f6620726577617264207469636b732072656d61696e696e6720696e20746865206672616d65584672616d655374617274426c6f636b4e756d6265727301007505040004a8205468652070726576696f7573203130206672616d6520737461727420626c6f636b206e756d626572733c4672616d6553746172745469636b7301007d0504000488205468652070726576696f7573203130206672616d65207374617274207469636b734c54656d704672616d65496e666f4469676573740000a902040004982054656d706f726172792073746f726520746865206672616d6520696e666f2064696765737401f90201a42c4c4672616d65735065724d696e696e675465726d10100a00000004a820546865206e756d626572206f66206672616d65732061206d696e6572206f7065726174657320666f72344d696e436f686f727453697a6510100a00000004a020546865206d696e696d756d206e756d626572206f66206d696e6572732070657220636f686f7274344d6178436f686f727453697a65101090000000085d0120486f77206d616e79206e6577206d696e6572732063616e20626520696e2074686520636f686f727420666f72206561636820736c6f742e205468652061637475616c206d6178696d756d2077696c6c2061646a757374302064796e616d6963616c6c797c4172676f6e6f747350657263656e7441646a7573746d656e7444616d706572e040000014bbf08ac602000000000000000004210120546865206d61782070657263656e74207377696e6720666f7220746865206172676f6e6f74732070657220736c6f74202866726f6d20746865206c6173742070657263656e7429584d696e696d756d4172676f6e6f747350657253656174184010270000000000000000000000000000049420546865206d696e696d756d206172676f6e6f7473206e6565646564207065722073656174704d6178696d756d4172676f6e6f7450726f7261746150657263656e748d050428082d0120546865206d6178696d756d2070657263656e74206f66206172676f6e6f747320696e20746865206e6574776f726b20746861742073686f756c6420626520726571756972656420666f7234206d696e696e6720736561747360546172676574426964735065725365617450657263656e74e0400000c84e676dc11b000000000000000008590120546865207461726765742070657263656e74206f662062696473207065722061756374696f6e2072656c617469766520746f20746865206d6178206e756d626572206f662073656174732e20546869732077696c6c2d012061646a75737420746865206172676f6e6f7473207065722073656174207570206f7220646f776e20746f20656e73757265206d696e696e6720736c6f7473206172652066696c6c65642e48546172676574507269636550657253656174184000ca9a3b000000000000000000000000046c20546865207461726765742070726963652070657220736561742e7050726963655065725365617441646a7573746d656e7444616d706572e040000014bbf08ac6020000000000000000040901205468652064616d706572206f6e207468652070726963652070657220736561742061646a7573746d656e74202866726f6d20746865206c61737420707269636529504d696e696e67426964506f6f6c4163636f756e7400806d6f646c6c7164506f6f6c730000000000000000000000000000000000000000041501204163636f756e742074686174207265636569766573206d696e696e67206269642066756e6473206265666f726520747265617375727920646973747269627574696f6e2e34426964496e6372656d656e74731840102700000000000000000000000000000419012054686520696e6372656d656e74207468617420626964732063616e206265206f6e2028666f7220696e7374616e63652c206f6e652063656e7420696e6372656d656e7473290191050630426974636f696e5574786f730130426974636f696e5574786f73302c4c6f636b65645574786f7300010402cc950504000c5d01204c6f636b656420426974636f696e205554584f7320746861742068617665206265656e2066756e64656420776974682061205574786f5265662066726f6d2074686520426974636f696e206e6574776f726b20616e645d0120616d6f756e74732077697468696e20746865204d696e696d756d5361746f7368695468726573686f6c64206f66207468652065787065637465642e204966206120426974636f696e205554584f206973206d6f7665643101206265666f7265207468652065787069726174696f6e20626c6f636b2c207468652066756e647320617265206275726e656420616e6420746865205554584f20697320756e6c6f636b65642e585574786f4964546f46756e64696e675574786f5265660001040530cc040004d42041206d617070696e67206f66207574786f20696420746f2074686520636f6e6669726d6564207574786f207265666572656e63654c4c6f636b7350656e64696e6746756e64696e6701009d050400040d0120426974636f696e206c6f636b732074686174206172652070656e64696e672066756c6c2066756e64696e67206f6e2074686520626974636f696e206e6574776f726b544578706972656450656e64696e6746756e64696e6701009d0504000431012050656e64696e672066756e64696e6720656e747269657320746861742068617665206578706972656420616e6420617265206177616974696e6720626f756e64656420636c65616e75702e6443616e6469646174655574786f5265667342795574786f49640101040530ad0504000429012043616e646964617465205554584f73206173736f63696174656420776974682061206c6f636b20286d69736d6174636865732c2065787472612066756e64696e672c206574632e292e38426974636f696e4e6574776f726b0100bd05040304ec205468652067656e657369732073657420626974636f696e206e6574776f726b2074686174207468697320636861696e206973207469656420746f60436f6e6669726d6564426974636f696e426c6f636b54697000001903040004fc20416e206f7261636c652d70726f766964656420636f6e6669726d656420626974636f696e20626c6f636b202865672c203620626c6f636b73206261636b295c50726576696f7573426974636f696e426c6f636b546970000019030400005854656d70506172656e7448617353796e635374617465010020040004d42053746f72657320696620706172656e7420626c6f636b20686164206120636f6e6669726d656420626974636f696e20626c6f636b4c53796e63686564426974636f696e426c6f636b000019030400047c20546865206c6173742073796e6368656420626974636f696e20626c6f636b544f7261636c654f70657261746f724163636f756e740000000400048020426974636f696e204f7261636c65204f70657261746f72204163636f756e7440496e686572656e74496e636c756465640100200400048c20436865636b2069662074686520696e686572656e742077617320696e636c7564656401fd0201c8146c4d617850656e64696e67436f6e6669726d6174696f6e5574786f7310101027000004650120546865206d6178696d756d206e756d626572206f66205554584f7320746861742063616e206265207761746368656420696e206120626c6f636b20616e642f6f72206578706972696e672061742073616d6520626c6f636b904d617850656e64696e6746756e64696e6745787069726174696f6e73506572426c6f636b10106400000004310120546865206d6178696d756d206e756d626572206f6620657870697265642070656e64696e672066756e64696e6720656e747269657320636c65616e656420757020696e206120626c6f636b604d617843616e6469646174655574786f735065724c6f636b10106400000004c8204d6178696d756d206e756d626572206f662063616e646964617465205554584f732073746f72656420706572206c6f636b704d617850656e64696e67436f6e6669726d6174696f6e426c6f636b7330209000000000000000042501204d6178696d756d20626974636f696e20626c6f636b7320746f2077617463682061205574786f20666f7220636f6e6669726d6174696f6e206265666f72652063616e63656c696e678c4d6178696d756d5361746f7368695468726573686f6c6446726f6d45787065637465643020e803000000000000084501204d6178696d756d206e756d626572206f66207361746f73686920646966666572656e636520616c6c6f7765642066726f6d20657870656374656420746f20636f6e73696465722061205554584f206173302022636f6e6669726d65642201c10507185661756c747301185661756c7473302c4e6578745661756c744964000010040000285661756c7473427949640001040510c50504000434205661756c7473206279206964445661756c74496442794f70657261746f7200010405001004000440205661756c7473206279206f776e6572345661756c7458507562427949640001040510e105040004e0205661756c7420426974636f696e205870756220616e642063757272656e74206368696c6420636f756e746572206279205661756c744964644c617374436f6c6c6563744672616d6542795661756c7449640001040510300400049420546865206c61737420636f6c6c656374206672616d65206f662065616368207661756c747c50656e64696e675465726d734d6f64696669636174696f6e7342795469636b0101040530f10504000871012050656e64696e67207465726d7320746861742077696c6c20626520636f6d6d69747465642061742074686520676976656e20626c6f636b206e756d62657220286d7573742062652061206d696e696d756d206f66203120736c6f7434206368616e67652061776179295850656e64696e67436f7369676e42795661756c7449640101040510f505040004a420426974636f696e204c6f636b732070656e64696e6720636f7369676e206279207661756c74206964744f727068616e65645574786f4163636f756e747342795661756c7449640101080502010610100000000004c8204f727068616e656420426974636f696e205574786f732070656e64696e6720636f7369676e206279207661756c742069646c5661756c7446756e647352656c656173696e67427948656967687401010405300506040004fc20546865207661756c7473207468617420686176652066756e64732072656c656173696e67206174206120676976656e20626974636f696e206865696768749c5661756c747352656c656173696e674f7065726174696f6e616c4d696e696d756d42795469636b010104053005060400043101205661756c74732077686f73652074656d706f72617279206f7065726174696f6e616c206d696e696d756d206d61792062652072656c6561736564206174206120676976656e207469636b2e58526576656e75655065724672616d6542795661756c7401010405100d0604000c710120547261636b7320726576656e75652066726f6d20426974636f696e204c6f636b7320616e6420547265617375727920506f6f6c7320666f722074686520747261696c696e67206672616d657320666f722065616368207661756c747101202861206672616d65206973206120226d696e696e67206461792220696e204172676f6e292e204e6577657374206672616d6573206172652066697273742e204672616d6573206172652072656d6f76656420616674657220746865050120636f6c6c6563742065787069726174696f6e2077696e646f77202860526576656e7565436f6c6c656374696f6e45787069726174696f6e4672616d657360292e68526563656e74436170616369747944726f707342795661756c7401010405101906040004f420526563656e7420726564756374696f6e7320696e2060617661696c61626c655f666f725f6c6f636b602c2067726f75706564206279207661756c742e011d0301dc24884d617850656e64696e675465726d4d6f64696669636174696f6e735065725469636b10106400000004b420546865206d61782070656e64696e67207661756c74207465726d206368616e6765732070657220626c6f636b244d61785661756c747310101027000004b420546865206d6178206e756d626572206f66207661756c747320746861742063616e2062652063726561746564644d617850656e64696e67436f7369676e735065725661756c7410106400000004a4204d617820636f6e63757272656e7420636f7369676e732070656e64696e6720706572207661756c7484526576656e7565436f6c6c656374696f6e45787069726174696f6e4672616d657330200a0000000000000004f020546865206e756d626572206f66206672616d65732077697468696e20776869636820726576656e7565206d75737420626520636f6c6c6563746564944f7065726174696f6e616c4d696e696d756d5661756c7453656375726974697a6174696f6e184000943577000000000000000000000000044901204d696e696d756d207661756c742073656375726974697a6174696f6e207265717569726564207768696c6520746865206f7065726174696f6e616c20666c6f6f72206c6f636b206973206163746976652e804f7065726174696f6e616c4d696e696d756d5661756c744c6f636b5469636b7330202005080000000000045101204475726174696f6e20746f206b65657020746865206f7065726174696f6e616c206d696e696d756d2073656375726974697a6174696f6e206c6f636b65642066726f6d207661756c74206372656174696f6e2e74526563656e74436170616369747944726f70426c6f636b57696e646f77101008000000046101204e756d626572206f66204172676f6e20626c6f636b7320746f206b65657020726563656e742060617661696c61626c655f666f725f6c6f636b602064726f707320666f72207374616c6520696e697420636865636b732e784d6178526563656e74436170616369747944726f70735065725661756c74101040000000042101204d6178696d756d206e756d626572206f6620726563656e742060617661696c61626c655f666f725f6c6f636b602064726f70732072657461696e656420706572207661756c742e5c436170616369747944726f70417474656d7074556e6974184000e1f505000000000000000000000000085901204f6e65206e6f2d666565207374616c652060696e697469616c697a655f666f7260206661696c75726520697320616c6c6f77656420666f72206561636820746869732d6d616e7920756e697473206f66206c6f7374582060617661696c61626c655f666f725f6c6f636b602e0125060830426974636f696e4c6f636b730130426974636f696e4c6f636b732c284e6578745574786f4964000030040000344c6f636b7342795574786f496400010405302906040004e02053746f72657320626974636f696e207574786f73207468617420686176652072657175657374656420746f2062652072656c6561736564405574786f49647342795661756c74496400010805053106900400048c20496e646578206f6620616374697665205554584f2049447320706572207661756c746c4c6f636b52656c65617365436f7369676e486569676874427949640001040530100400040d012053746f7265732074686520626c6f636b206e756d62657220776865726520612072656c656173652077617320636f7369676e656420627920746865207661756c742e6c4c6f636b52656c65617365526571756573747342795574786f496400010405303506040004e02053746f72657320626974636f696e206c6f636b73207468617420686176652072657175657374656420746f2062652072656c6561736564584f727068616e65645574786f7342794163636f756e74000108050539063d060400042501204d69736d617463686564207574786f73207468617420776572652073656e74207769746820696e76616c696420616d6f756e747320746f2061206c6f636b656420626974636f696e3c4d696e696d756d5361746f7368697301003020000000000000000004c820546865206d696e696d756d206e756d626572206f66207361746f7368697320746861742063616e206265206c6f636b6564504c6f636b436f7369676e44756542794672616d6501010405304906040004f0205574786f7320746861742068617665206265656e2072657175657374656420746f20626520636f7369676e656420666f722072656c656173696e67784c6f636b45787069726174696f6e734279426974636f696e48656967687401010405304d060400085d012045787069726174696f6e206f6620626974636f696e206c6f636b7320627920626974636f696e206865696768742e2046756e647320617265206275726e65642073696e636520746865207573657220646964206e6f749020756e6c6f636b2069742e20426974636f696e2077696c6c20676f20746f207661756c74744f727068616e65645574786f45787069726174696f6e42794672616d6501010405305106040004c42045787069726174696f6e206f66206f727068616e6564207574786f20726566732062792075736572206163636f756e74544d6963726f676f6e506572427463486973746f727901005d060400049420486973746f7279206f6620746172676574206d6963726f676f6e7320706572206274632e01450301e424404172676f6e5469636b735065724461793020a005000000000000044c204172676f6e207469636b2070657220646179744d6178436f6e63757272656e746c7952656c656173696e674c6f636b731010e80300000488204d6178696d756d2072656c656173696e67207574786f7320617420612074696d65484c6f636b4475726174696f6e426c6f636b73302050cd00000000000004d420546865206e756d626572206f6620626974636f696e20626c6f636b73206120626974636f696e206973206c6f636b656420666f72544c6f636b5265636c616d6174696f6e426c6f636b733020e0100000000000000861012054686520626974636f696e20626c6f636b73206166746572206120426974636f696e4c6f636b206578706972657320776869636820746865207661756c742077696c6c20626520616c6c6f77656420746f20636c61696d28206120626974636f696e7c4c6f636b52656c65617365436f7369676e446561646c696e654672616d657330200a0000000000000004fc204e756d626572206f66206672616d65732061207661756c742068617320746f20636f756e7465722d7369676e206120626974636f696e2072656c656173657c4f727068616e65645574786f52656c656173654578706972794672616d657330200a00000000000000084d01204e756d626572206f66206672616d6573206f727068616e6564205554584f2072656c6561736520656e7472696573206172652072657461696e65642061667465722061206c6f636b206c6966656379636c6590207472616e736974696f6e206265666f7265206265696e6720636c65616e65642075702e704d6178436f6e63757272656e746c794578706972696e674c6f636b731010102700000861012050616c6c65742073746f7261676520726571756972657320626f756e64732c20736f207765206861766520746f207365742061206d6178696d756d206e756d62657220746861742063616e2065787069726520696e2061342073696e676c6520626c6f636b505469636b73506572426974636f696e426c6f636b30200a000000000000000488204e756d626572206f66207469636b732070657220626974636f696e20626c6f636b484d617842746350726963655469636b41676510101e00000004c0204d617820616c6c6f776564207469636b2d616765206f66206d6963726f676f6e2d7065722d6274632070726963657301610609204e6f74617269657301204e6f74617269657318304e6578744e6f7461727949640000100400004050726f706f7365644e6f74617269657300010402006906040000444578706972696e6750726f706f73616c7301010405106d06040000384163746976654e6f74617269657301007106040000404e6f746172794b6579486973746f7279010104051079060400005c5175657565644e6f746172794d6574614368616e67657301010405308506040004cc204d65746164617461206368616e67657320746f206265206163746976617465642061742074686520676976656e207469636b01610301f018444d61784163746976654e6f746172696573101019000000049020546865206d6178696d756d20616374697665206e6f74617269657320616c6c6f776564544d617850726f706f73616c486f6c64426c6f636b731010c04e000004c420546865206d6178696d756d20626c6f636b7320612070726f706f73616c2063616e2073697420756e617070726f766564504d617850726f706f73616c73506572426c6f636b10100a00000000504d6574614368616e6765735469636b44656c617930200600000000000000084901204e756d626572206f66207469636b7320746f2064656c6179206368616e67696e672061206e6f74617269657327206d65746120287468697320697320746f20616c6c6f7720612077696e646f7720666f72f4206e6f74617269657320746f2073776974636820746f206e6577206b6579732061667465722061206e6577206b65792069732066696e616c697a656429544d61785469636b73466f724b6579486973746f72791010400b000008e0204e756d626572206f66207469636b7320746f206d61696e7461696e206b657920686973746f727920666f722065616368206e6f74617279a8204e4f54453a206f6e6c79207072756e6564207768656e206e6577206b65797320617265206164646564384d61784e6f74617279486f7374731010040000000488204d6178696d756d20686f7374732061206e6f746172792063616e20737570706c790195060a204e6f7465626f6f6b01204e6f7465626f6f6b1c8c4e6f7465626f6f6b4368616e6765644163636f756e7473526f6f7442794e6f746172790001080205210234040004010120446f75626c652073746f72616765206d6170206f66206e6f74617279206964202b206e6f7465626f6f6b202320746f20746865206368616e676520726f6f74a04163636f756e744f726967696e4c6173744368616e6765644e6f7465626f6f6b42794e6f74617279000108020299061004000c35012053746f72616765206d6170206f66206163636f756e74206f726967696e20286e6f746172795f69642c206e6f7465626f6f6b2c206163636f756e745f7569642920746f20746865206c6173741501206e6f7465626f6f6b20636f6e7461696e696e672074686973206163636f756e7420696e20746865206368616e676564206163636f756e7473206d65726b6c6520726f6f749820284e6f7465626f6f6b4368616e6765644163636f756e7473526f6f7442794e6f74617279296c4c6173744e6f7465626f6f6b44657461696c7342794e6f7461727901010402109d060400086901204c697374206f66206c61737420666577206e6f7465626f6f6b2064657461696c73206279206e6f746172792e2054686520626f6f6c206973207768657468657220746865206e6f7465626f6f6b20697320656c696769626c65d820666f7220766f7465732028726563656976656420617420636f7272656374207469636b20616e64206175646974207061737365642938426c6f636b4e6f7465626f6f6b730100b1020400049420546865206e6f7465626f6f6b7320696e636c7564656420696e207468697320626c6f636b40496e686572656e74496e636c756465640100200400048c20436865636b2069662074686520696e686572656e742077617320696e636c75646564704e6f7461726965734c6f636b6564466f724661696c656441756469740001040210ad060400048c204e6f746172696573206c6f636b656420666f72206661696c696e6720617564697473744c6f636b65644e6f746172795265616479466f72526570726f636573730001040210100400040101204e6f74617269657320726561647920746f20737461727420726570726f63657373696e67206174206120676976656e206e6f7465626f6f6b206e756d6265720165030115010001b1060b484c6f63616c636861696e5472616e7366657201484c6f63616c636861696e5472616e736665720c384e6578745472616e7366657249640000100400004c50656e64696e675472616e73666572734f75740001040210b506040000704578706972696e675472616e73666572734f757442794e6f7461727901010805053106b90604001845012045787069726174696f6e20696e64657820666f72206f7574676f696e67207472616e7366657273206b657965642062792060286e6f746172795f69642c2065787069726174696f6e5f7469636b29602e006901204e4f54453a2045787069726174696f6e2070726f63657373696e6720666f6c6c6f7773206e6f7465626f6f6b2070726f6772657373696f6e2028606865616465722e7469636b602920666f722065616368206e6f746172792c5101206e6f742077616c6c2f72756e74696d65207469636b2e2049662061206e6f746172792073746f7073207375626d697474696e67206e6f7465626f6f6b7320696e646566696e6974656c792c2070656e64696e676501207472616e736665727320666f722074686174206e6f746172792072656d61696e2066726f7a656e2062792064657369676e20756e74696c2061206e6f746172792d737769746368207265636f766572792070617468206973282065786563757465642e01a5030131010c2050616c6c65744964bd06207472616e73666572005c5472616e7366657245787069726174696f6e5469636b733020b036000000000000085d0120486f77206c6f6e672061207472616e736665722073686f756c642072656d61696e20696e2073746f72616765206265666f72652072657475726e696e672e204e4f54453a20746865726520697320612032207469636bc820677261636520706572696f642077686572652077652077696c6c207374696c6c20616c6c6f772061207472616e73666572784d617850656e64696e675472616e73666572734f7574506572426c6f636b1010e803000004bc20486f77206d616e79207472616e7366657273206f75742063616e206265207175657565642070657220626c6f636b01c1060c34426c6f636b5365616c537065630134426c6f636b5365616c53706563284843757272656e74566f74654d696e696d756d01001840000000000000000000000000000000000c5501205468652063757272656e7420766f7465206d696e696d756d206f662074686520636861696e2e20426c6f636b20766f746573207573652074686973206d696e696d756d20746f2064657465726d696e65207468655d01206d696e696d756d20616d6f756e74206f6620746178206f7220636f6d70757465206e656564656420746f20637265617465206120766f74652e2049742069732061646a7573746564207570206f7220646f776e20746f74207461726765742061206d6178206e756d626572206f6620766f7465736043757272656e74436f6d70757465446966666963756c747901001840000000000000000000000000000000000c5501205468652063757272656e7420766f7465206d696e696d756d206f662074686520636861696e2e20426c6f636b20766f746573207573652074686973206d696e696d756d20746f2064657465726d696e65207468655d01206d696e696d756d20616d6f756e74206f6620746178206f7220636f6d70757465206e656564656420746f20637265617465206120766f74652e2049742069732061646a7573746564207570206f7220646f776e20746f74207461726765742061206d6178206e756d626572206f6620766f7465735843757272656e74436f6d707574654b6579426c6f636b00003404000c650120546865206b6579204b2069732073656c656374656420746f206265207468652068617368206f66206120626c6f636b20696e2074686520626c6f636b636861696e202d207468697320626c6f636b2069732063616c6c656445012074686520276b657920626c6f636b272e20466f72206f7074696d616c206d696e696e6720616e6420766572696669636174696f6e20706572666f726d616e63652c20746865206b65792073686f756c6444206368616e6765206576657279206461795450617374436f6d70757465426c6f636b54696d65730100c5060400005850726576696f7573426c6f636b54696d657374616d7000003004000498205468652074696d657374616d702066726f6d207468652070726576696f757320626c6f636b4854656d70426c6f636b54696d657374616d7000003004000048566f74654d696e696d756d486973746f72790100c9060400043101204b6565707320746865206c617374203320766f7465206d696e696d756d732e20546865206669727374206f6e65206170706c69657320746f207468652063757272656e7420626c6f636b2e7c54656d7043757272656e745469636b4e6f7465626f6f6b73496e426c6f636b0100cd060400043d012054656d706f726172792073746f7265206f6620616e792063757272656e74207469636b206e6f7465626f6f6b7320696e636c7564656420696e207468697320626c6f636b20287673207469636b294c54656d70426c6f636b566f746544696765737400008102040004802054656d706f726172792073746f72652074686520766f7465206469676573743850617374426c6f636b566f7465730100d90604000001a90301350110444d61784163746976654e6f746172696573101019000000049020546865206d6178696d756d20616374697665206e6f74617269657320616c6c6f77656440546172676574426c6f636b566f746573184050c30000000000000000000000000000047020546865206465736972656420766f7465732070657220626c6f636b84486973746f726963616c436f6d70757465426c6f636b73466f724176657261676510100a000000085d0120546865206e756d626572206f6620686973746f726963616c20636f6d707574652074696d657320746f2075736520746f2063616c63756c6174652074686520726f6c6c696e6720636f6d707574652061766572616765442028666f722061646a7573746d656e742978486973746f726963616c566f7465426c6f636b73466f72417665726167651010a005000004490120546865206e756d626572206f6620686973746f726963616c20766f746520626c6f636b7320746f2075736520746f2063616c63756c6174652074686520726f6c6c696e6720766f7465206176657261676501e5060d1c446f6d61696e73011c446f6d61696e730c4452656769737465726564446f6d61696e7300010402345d010400004c5a6f6e655265636f7264734279446f6d61696e00010402343d01040000584578706972696e67446f6d61696e734279426c6f636b0101040530e90604000001ad030139010001ed060e285072696365496e64657801285072696365496e646578101c43757272656e740000b503040004782053746f726573207468652061637469766520707269636520696e646578244c61737456616c69640000b503040004882053746f72657320746865206c6173742076616c696420707269636520696e64657840486973746f7269634172676f6e4350490100f106040004ac20547261636b73207468652061766572616765206370692064617461206576657279203630207469636b73204f70657261746f72000000040004842054686520707269636520696e646578206f70657261746f72206163636f756e7401b103016101106c4d6178446f776e74696d655469636b734265666f7265526573657430203c0000000000000004d820546865206d6178696d756d206e756d626572206f66207469636b7320746f207072657365727665206120707269636520696e646578484d61785072696365416765496e5469636b733020a005000000000000046c20546865206f6c6465737420686973746f727920746f206b6565708c4d61784172676f6e4368616e67655065725469636b4177617946726f6d546172676574e0400000c16ff2862300000000000000000008650120546865206d617820707269636520646966666572656e63652064726f7070696e672062656c6f7720746172676574206f722072616973696e672061626f76652074617267657420706572207469636b2e2054686572652773e4206e6f20636f72726573706f6e64696e6720636f6e7374616e7420666f722074696d6520746f207265636f7665727920746f207461726765746c4d61784172676f6e5461726765744368616e67655065725469636be0400000c16ff286230000000000000000000001fd060f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000101c4772616e647061011c4772616e6470611c1453746174650100010704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500000507040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c6564000021020400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f7269746965730100090704000484205468652063757272656e74206c697374206f6620617574686f7269746965732e01b9030165010c384d6178417574686f7269746965731010e8030000045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020020000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e010d071124426c6f636b5365616c0124426c6f636b5365616c1c4c4c617374426c6f636b5365616c6572496e666f000011070400003c506172656e74566f74696e674b657901008d020400086101205468652063616c63756c6174656420706172656e7420766f74696e67206b657920666f72206120626c6f636b2e2052656665727320746f20746865204e6f7465626f6f6b20426c6f636b566f74652052657665616c6564e020536563726574202b20566f7465734d65726b6c65526f6f74206f662074686520706172656e7420626c6f636b206e6f7465626f6f6b732e38426c6f636b466f726b506f77657201009502910100000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000008e4205468652063616c63756c6174656420737472656e67746820696e207468652072756e74696d6520736f20746861742069742063616e20626511012075706772616465642c20627574206973207573656420627920746865206e6f646520746f2064657465726d696e6520776869636820666f726b20746f20666f6c6c6f7744566f746573496e50617374335469636b73010015070400049c2054686520636f756e74206f6620766f74657320696e20746865206c6173742033207469636b734054656d705365616c496e686572656e740000e903040004a820456e7375726573206f6e6c7920612073696e676c6520696e686572656e74206973206170706c696564504c6173745469636b57697468566f74655365616c010030200000000000000000004c4973426c6f636b46726f6d566f74655365616c0100200400047c2049732074686520626c6f636b2066726f6d206120766f7465207365616c3f01e50300000119071230426c6f636b526577617264730130426c6f636b5265776172647314385061796f7574734279426c6f636b01010402101d070400048c20486973746f726963616c207061796f75747320627920626c6f636b206e756d62657248426c6f636b526577617264735061757365640100200400048420426f6f6c20696620626c6f636b2072657761726473206172652070617573656450426c6f636b526577617264734279436f686f72740100210704000441012054686520636f686f727420626c6f636b2072657761726473206279206d696e696e6720636f686f7274202869652c2077697468207468652073616d65207374617274696e67206672616d6520696429384172676f6e73506572426c6f636b0100184000000000000000000000000000000000087501205468652063757272656e74207363616c656420626c6f636b20726577617264732e2049742077696c6c2061646a757374206261736564206f6e20746865206172676f6e206d6f76656d656e7420617761792066726f6d2070726963651c2074617267657424426c6f636b4665657301001840000000000000000000000000000000000001010401710118585374617274696e674172676f6e73506572426c6f636b184020a107000000000000000000000000000488204e756d626572206f66206172676f6e73206d696e7465642070657220626c6f636b7c5374617274696e674f776e657273686970546f6b656e73506572426c6f636b184020a1070000000000000000000000000004b0204e756d626572206f66206f776e65727368697020746f6b656e73206d696e7465642070657220626c6f636b44496e6372656d656e74616c47726f7774682507a0e8030000000000000000000000000000b400000000000000404b4c0000000000000000000000000004f4205468652067726f777468207061746820666f7220626f7468206f776e65727368697020616e64206172676f6e73206265666f72652068616c76696e673048616c76696e675469636b733020200b20000000000004dc204e756d626572206f66207469636b7320666f722068616c76696e67206f66206f776e65727368697020736861726520726577617264734448616c76696e67426567696e5469636b733020105c0c000000000004050120546865207469636b206e756d626572206174207768696368207468652068616c76696e6720626567696e7320666f72206f776e65727368697020746f6b656e73484d696e65725061796f757450657263656e74e04000008bbd0689680a0000000000000000042d012050657263656e742061732061206e756d626572206f7574206f6620313030206f662074686520626c6f636b20726577617264207468617420676f657320746f20746865206d696e65722e01290713104d696e7401104d696e74144050656e64696e674d696e745574786f7301002d0704000c6d0120426974636f696e205554584f7320746861742068617665206265656e207375626d697474656420666f72206d696e74696e672e2054686973206c697374206973204649464f20666f72206d696e74696e67207768656e657665724020612920435049203e3d203020616e643d012062292074686520616767726567617465206d696e74656420426974636f696e73203c3d2074686520616767726567617465206d696e746564206d6963726f676f6e732066726f6d206d696e696e67544d696e7465644d696e696e674d6963726f676f6e73010018400000000000000000000000000000000004c02054686520746f74616c20616d6f756e74206f66206d6963726f676f6e73206d696e74656420666f72206d696e696e67584d696e746564426974636f696e4d6963726f676f6e7301001840000000000000000000000000000000000455012054686520746f74616c20616d6f756e74206f6620426974636f696e206d6963726f676f6e73206d696e7465642e2043616e6e6f742065786365656420604d696e7465644d696e696e674d6963726f676f6e73602e4c4d696e696e674d696e74506572436f686f72740100390704000445012054686520616d6f756e74206f66206172676f6e73206d696e74656420706572206d696e696e6720636f686f7274202869652c2067726f75706564206279207374617274696e67206672616d65206964293c426c6f636b4d696e74416374696f6e01003d07d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105040189010c4c4d617850656e64696e674d696e745574786f7310101027000004f020546865206d6178696d756d206e756d626572206f66205554584f7320746861742063616e2062652077616974696e6720666f72206d696e74696e67604d61784d696e74486973746f7279546f4d61696e7461696e10100a00000004b420546865206d6178696d756d206e756d626572206f66206d696e7420686973746f7269657320746f206b656570444d6178506f737369626c654d696e6572731010a005000000014507142042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004907040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200590704000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c6473010104020065070400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020071070400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01090401990110484578697374656e7469616c4465706f73697418401027000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100200000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01850715244f776e65727368697001244f776e6572736869701c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004907040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200590704000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c6473010104020065070400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020071070400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01110401bd0110484578697374656e7469616c4465706f73697418401027000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100200000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e018907161c54785061757365011c54785061757365042c50617573656443616c6c7300010402c50190040004b42054686520736574206f662063616c6c73207468617420617265206578706c696369746c79207061757365642e01150401c10104284d61784e616d654c656e1010000100000c2501204d6178696d756d206c656e67746820666f722070616c6c6574206e616d6520616e642063616c6c206e616d65205343414c4520656e636f64656420737472696e67206e616d65732e00a820544f4f204c4f4e47204e414d45532057494c4c2042452054524541544544204153205041555345442e018d0717485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e740c444e6578744665654d756c7469706c6965720100e040000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010091070400003c54785061796d656e744372656469740000950704000cf02054686520604f6e4368617267655472616e73616374696f6e602073746f726573207468652077697468647261776e2074782066656520686572652e00350120557365206077697468647261775f74786665656020616e64206072656d61696e696e675f74786665656020746f206163636573732066726f6d206f757473696465207468652063726174652e0001cd0104604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00181c5574696c6974790001190401d101044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d0719105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01210401d5010001a1071a205472656173757279012054726561737572791c6043757272656e744672616d655661756c744361706974616c0000a50704000cc020546865207661756c74206361706974616c206c6f636b656420666f72207468652063757272656e74206672616d652e004d01205061796f75742075736573207468697320746f20736565207768696368207661756c747320616e6420626f6e64206c6f7473206172652070617274696369706174696e6720696e20746865206672616d652e344e657874426f6e644c6f744964010030200000000000000000045820546865206e65787420626f6e64206c6f742069642e2c426f6e644c6f74427949640001040530c90704000490205468652073746f72656420737461746520666f72206561636820626f6e64206c6f742e4c426f6e644c6f7449647342794163636f756e740001080505d10790040004b02054686520626f6e64206c6f742069647320746861742062656c6f6e6720746f20616e206163636f756e742e6850656e64696e67426f6e6452656c656173657342794672616d650101040530d507040004a420426f6e64206c6f747320746f2072656c656173652061742074686520676976656e206672616d652e7450656e64696e67426f6e6452656c656173655265747279437572736f72000030040004f820546865206f6c64657374206672616d652074686174207374696c6c2068617320626f6e64206c6f747320746f2072657472792072656c656173696e672e3c426f6e644c6f747342795661756c740101040510d90704000c902054686520616363657074656420626f6e64206c6f747320666f722061207661756c742e004501204c6f747320617265206b65707420696e2064657363656e64696e6720626f6e64206f726465722c207468656e206c6f7765722060626f6e645f6c6f745f69646020666972737420666f7220746965732e01250401d901205c4d61785472656173757279436f6e7472696275746f727310106400000004390120546865206d6178696d756d206e756d626572206f6620616363657074656420626f6e64206c6f747320696e2061207661756c74277320616363657074656420626f6e642d6c6f74206c6973742e6c4d696e696d756d4172676f6e73506572436f6e7472696275746f72184000e1f50500000000000000000000000004a020546865206d696e696d756d2077686f6c652d626f6e6420707572636861736520616d6f756e742e2050616c6c65744964bd06206c7164506f6f6c730401012054726561737572792070616c6c65742069642072657461696e656420696e206d6574616461746120666f72206163636f756e742064657269766174696f6e2e5c547265617375727952657365727665734163636f756e7400806d6f646c6c7164506f6f6c7374726561737572792d7265736572766500000000043101204163636f756e74207468617420686f6c647320747265617375727920726573657276657320666f7220636c61696d7320616e6420726573657276652d66756e646564207061796f7574732e6850657263656e74466f72547265617375727952657365727665738d05041404e02050657263656e74206f66207468652062696420706f6f6c20726573657276656420666f722074726561737572792072657365727665732e404d61785661756c7473506572506f6f6c101064000000045d0120546865206d6178696d756d206e756d626572206f66207661756c747320746861742063616e20706172746963697061746520696e206f6e65206672616d652773206c6f636b6564207661756c74206361706974616c2e644d617850656e64696e67556e6c6f636b735065724672616d651010e803000004490120546865206d6178696d756d206e756d626572206f6620626f6e64206c6f74732077686f73652072656c656173652064656c6179206d6179206d617475726520696e20612073696e676c65206672616d652e5c54726561737572794578697444656c61794672616d657330200a00000000000000041d0120546865206e756d626572206f66206672616d657320612072656c656173696e6720626f6e64206c6f742072656d61696e732068656c64206265666f72652072656c656173652e01e5071f28466565436f6e74726f6c000001e1010001e907204c4f7065726174696f6e616c4163636f756e7473014c4f7065726174696f6e616c4163636f756e74731c4c4f7065726174696f6e616c4163636f756e74730001040200ed0704000405012052656769737465726564206f7065726174696f6e616c206163636f756e7473206b6579656420627920746865207072696d617279206163636f756e742069642e784f7065726174696f6e616c4163636f756e7442795375624163636f756e7400010402000004000411012052657665727365206c6f6f6b7570206f6620616e79206c696e6b6564206163636f756e7420746f20697473206f7065726174696f6e616c206163636f756e742069642e54436f6e73756d6564526566657272616c436f646573000104020430040004550120526566657272616c20636f6465732074686174206861766520616c7265616479206265656e206c696e6b65642c206b6579656420746f2074686569722070726f6f662065787069726174696f6e206672616d652e84436f6e73756d6564526566657272616c436f646573427945787069726174696f6e0001080502f10790040004150120526566657272616c20636f64657320746f20636c65617220616674657220746865697220726566657272616c2070726f6f662065787069726174696f6e206672616d652e7c45787069726564526566657272616c436f6465436c65616e75704672616d650000300400042101204f6c6465737420726566657272616c2065787069726174696f6e206672616d652074686174207374696c6c2068617320636c65616e757020776f726b20746f20726573756d652e1c526577617264730100f50708000004d020436f6e666967757265642072657761726420616d6f756e747320666f72206f7065726174696f6e616c206163636f756e74732e60456e63727970746564536572766572427953706f6e7365650001040200f9070400044901204f706171756520656e637279707465642073706f6e736f7220736572766572207061796c6f6164206b65796564206279207468652073706f6e736565206f7065726174696f6e616c206163636f756e742e01290401ed012868426974636f696e4c6f636b53697a65466f72526566657272616c184000f2052a010000000000000000000000043901204164646974696f6e616c206172676f6e20616d6f756e7420286261736520756e697473292072657175697265642070657220726566657272616c206166746572206f7065726174696f6e616c2e644f7065726174696f6e616c526566657272616c52657761726418400065cd1d00000000000000000000000004e42044656661756c74207265776172642070616964207768656e20616e206163636f756e74206265636f6d6573206f7065726174696f6e616c2e784f7065726174696f6e616c526566657272616c426f6e7573526577617264184000f2052a01000000000000000000000004d02044656661756c7420626f6e757320726577617264207061696420657665727920726566657272616c207468726573686f6c642e98526566657272616c426f6e75734576657279584f7065726174696f6e616c53706f6e73656573101005000000040d01204e756d626572206f66206f7065726174696f6e616c2073706f6e736565732072657175697265642070657220726566657272616c20626f6e7573207265776172642e544d6178417661696c61626c65526566657272616c7310100300000004dc204d6178696d756d206e756d626572206f6620617661696c61626c6520726566657272616c7320616c6c6f776564206174206f6e63652e984d617845787069726564526566657272616c436f6465436c65616e757073506572426c6f636b1010e803000004f0204d6178696d756d206e756d626572206f66206578706972656420726566657272616c20636f64657320636c65617265642070657220626c6f636b2e544d6178456e637279707465645365727665724c656e10100001000004f4204d6178696d756d206e756d626572206f6620656e63727970746564207365727665722062797465732073746f726564207065722073706f6e7365652e944f7065726174696f6e616c4d696e696d756d5661756c7453656375726974697a6174696f6e18400094357700000000000000000000000004f4204d696e696d756d207661756c742073656375726974697a6174696f6e20726571756972656420746f206265636f6d65206f7065726174696f6e616c2e644d696e696e675365617473466f724f7065726174696f6e616c10100200000004b4204d696e696e6720736561747320726571756972656420746f206265636f6d65206f7065726174696f6e616c2e584d696e696e675365617473506572526566657272616c10100500000004d8204d696e696e672073656174732072657175697265642070657220726566657272616c206166746572206f7065726174696f6e616c2e01fd072240457468657265756d56657269666965720140457468657265756d56657269666965724054496e697469616c436865636b706f696e74526f6f740100348000000000000000000000000000000000000000000000000000000000000000000480204c617465737420696d706f7274656420636865636b706f696e7420726f6f74604c617465737446696e616c697a6564426c6f636b526f6f740100348000000000000000000000000000000000000000000000000000000000000000000494204c617465737420696d706f727465642066696e616c697a656420626c6f636b20726f6f745046696e616c697a6564426561636f6e5374617465000104063401080400049420426561636f6e2073746174652062792066696e616c697a656420626c6f636b20726f6f746446696e616c697a6564426561636f6e5374617465496e646578010010100000000004cc2046696e616c697a656420486561646572733a2043757272656e7420706f736974696f6e20696e2072696e67206275666665726c46696e616c697a6564426561636f6e53746174654d617070696e67010104061034800000000000000000000000000000000000000000000000000000000000000000041d012046696e616c697a656420486561646572733a204d617070696e67206f662072696e672062756666657220696e64657820746f2061207072756e696e672063616e64696461746558457865637574696f6e486561646572416e63686f72730001040634050804000405012052657461696e656420657865637574696f6e2d6c617965722068656164657220616e63686f727320627920657865637574696f6e20626c6f636b20686173682e68457865637574696f6e486561646572416e63686f72496e646578010010100000000004ec20457865637574696f6e2068656164657220616e63686f72733a2063757272656e7420706f736974696f6e20696e2072696e67206275666665722e70457865637574696f6e486561646572416e63686f724d617070696e67010104061034800000000000000000000000000000000000000000000000000000000000000000043d0120457865637574696f6e2068656164657220616e63686f72733a206d617070696e67206f662072696e672062756666657220696e64657820746f2061207072756e696e672063616e6469646174652e904c6174657374457865637574696f6e486561646572416e63686f72426c6f636b48617368000034040004cc204c61746573742072657461696e656420657865637574696f6e2d6c6179657220616e63686f7220626c6f636b20686173682e3856616c696461746f7273526f6f74010034800000000000000000000000000000000000000000000000000000000000000000004c466f726b56657273696f6e5363686564756c6500007104040004590120466f726b2d76657273696f6e207363686564756c65207573656420666f722073796e632d636f6d6d6974746565207369676e696e6720646f6d61696e7320616e6420626561636f6e2073746174652070617468732e5043757272656e7453796e63436f6d6d697474656501000908550300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004882053796e6320636f6d6d697474656520666f722063757272656e7420706572696f64444e65787453796e63436f6d6d6974746565010009085503000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047c2053796e6320636f6d6d697474656520666f72206e65787420706572696f647c4c617465737453796e63436f6d6d6974746565557064617465506572696f6401003020000000000000000004110120546865206c61737420706572696f6420776865726520746865206e6578742073796e6320636f6d6d697474656520776173207570646174656420666f7220667265652e344f7065726174696e674d6f64650100f901040004a8205468652063757272656e74206f7065726174696e67206d6f6465206f66207468652070616c6c65742e30426561636f6e50726573657401002d08040004450120436861696e2d636f6e6669677572656420626561636f6e2070726573657420657870656374656420627920636c69656e74732074686174207375626d697420766572696669657220757064617465732e014d0401f501084c4672656548656164657273496e74657276616c101020000000040101204d696e696d756d20676170206265747765656e2066696e616c697a6564206865616465727320666f7220616e2075706461746520746f20626520667265652e605665726966794576656e744c6f67417069456e61626c656420040004f420576865746865722074686520726561642d6f6e6c79206576656e742d6c6f6720766572696669636174696f6e2041504920697320656e61626c65642e013108234843726f7373636861696e5472616e73666572014843726f7373636861696e5472616e736665721460436861696e436f6e6669674279536f75726365436861696e000104020102a904040004c420436f6e66696720616363657074656420666f72206561636820737570706f7274656420736f7572636520636861696e2e504e6f6e63654279536f757263654163636f756e7400010402350830040004f0204c6174657374206163636570746564206e6f6e636520666f722065616368206028736f757263655f636861696e2c2066726f6d296020706169722e74526563656e744172676f6e5472616e736665727342794163636f756e740101040200101000000000042d0120436f756e74206f66207374696c6c2d72657461696e6564207175616c696679696e67204172676f6e207472616e736665727320666f722065616368206c6f63616c206163636f756e742e68496e626f756e645472616e73666572734578706972696e6741740101040530d9020400040501204163636f756e74732077686f736520726563656e742d7472616e736665722065766964656e63652065787069726573206174206120676976656e207469636b2e744c6173745472616e73666572457870697279436c65616e75705469636b010030200000000000000000041101204c6174657374207469636b2077686f736520726563656e742d7472616e736665722065787069726174696f6e206275636b65742077617320636c65616e65642075702e01a50401fd01084c457468657265756d4275726e4163636f756e7400806d6f646c78636861696e7472006275726e0000000000000000000000000000000445012043616e6f6e6963616c20457468657265756d206275726e2d6163636f756e74696e67206163636f756e7420726570726573656e74696e672066756e6473206d6f76656420746f20457468657265756d2e70526563656e745472616e73666572526574656e74696f6e5469636b7330204038000000000000084d0120526574656e74696f6e2077696e646f772c20696e207469636b732c20666f7220726563656e74204172676f6e207472616e736665722065766964656e63652075736564206279206f7065726174696f6e616c28206163636f756e74732e013908243d08042c34417574686f72697a6543616c6c45089048436865636b4e6f6e5a65726f53656e64657249089040436865636b5370656356657273696f6e4d081038436865636b547856657273696f6e51081030436865636b47656e6573697355083438436865636b4d6f7274616c69747959083428436865636b4e6f6e63656108902c436865636b576569676874650890604368617267655472616e73616374696f6e5061796d656e7469089044436865636b4d65746164617461486173686d087908345765696768745265636c61696d7508907d08\"\n}\n","{\n \"specName\": \"argon\",\n \"implName\": \"argon\",\n \"authoringVersion\": 1,\n \"specVersion\": 151,\n \"implVersion\": 10,\n \"apis\": [\n [\"0x37c8bb1350a9a2a8\", 4],\n [\"0x40fe3ad401f8959a\", 6],\n [\"0x0090f9d890bb0bb2\", 1],\n [\"0x51c97e4020145cb0\", 1],\n [\"0x11de59f9923f03d8\", 1],\n [\"0xccd9de6396c899ca\", 1],\n [\"0xfff0fb031985f8a1\", 2],\n [\"0xdf6acb689907609b\", 5],\n [\"0x5e4dc2ce83c23f09\", 1],\n [\"0x97c56de838cad0ef\", 1],\n [\"0xf3ff14d5ab527059\", 3],\n [\"0xab3c0572291feb8b\", 2],\n [\"0x05dd9be92cc17d28\", 3],\n [\"0xf78b278be53f454c\", 2],\n [\"0xbab599c4f0d362c6\", 1],\n [\"0x37e397fc7c91f5e4\", 2],\n [\"0xfbc577b9d747efd6\", 1],\n [\"0x61571683e6d7a7c8\", 1],\n [\"0xd2bc9897eed08f15\", 3],\n [\"0xbc9d89904f5b923f\", 1],\n [\"0xe6683faaa563317a\", 2],\n [\"0xed99c5acb25eedf5\", 3]\n ],\n \"transactionVersion\": 5,\n \"systemVersion\": 1,\n \"stateVersion\": 1\n}\n","{\n \"mainnet\": \"0xee11bf2ff8838fcb0832c09085c5319a08ba6111c225ecd899fe659872d9d45d\",\n \"testnet\": \"0x66dc4e5ff85faddb0311b768eb73a58d9a00c65f06056ffaa370a1b1354d7411\"\n}\n","import { ArgonClient } from './index';\n\nexport interface IArgonCpiSnapshot {\n // The target price of the argon as a fixed point number (18 decimals)\n argonUsdTargetPrice: bigint;\n // The current price of the argon as a fixed point number (18 decimals)\n argonUsdPrice: bigint;\n // The block hash in which the cpi was finalized\n finalizedBlock: Uint8Array;\n tick: bigint;\n}\n\n/**\n * The WageProtector class is used to protect wages from inflation by using the current Argon Price Index to adjust the\n * baseAmount to current conditions. This ensures that the wage is always stable and does not lose or gain value based on\n * demand for the argon or fiat monetary supply changes.\n */\nexport class WageProtector {\n constructor(public latestCpi: IArgonCpiSnapshot) {}\n\n /**\n * Converts the base wage to the current wage using the latest CPI snapshot\n *\n * @param baseWage The base wage to convert\n * @returns The protected wage\n */\n public getProtectedWage(baseWage: bigint): bigint {\n return (baseWage * this.latestCpi.argonUsdTargetPrice) / this.latestCpi.argonUsdPrice;\n }\n\n /**\n * Subscribes to the current CPI and calls the callback function whenever the CPI changes\n * @param client The ArgonClient to use\n * @param callback The callback function to call when the CPI changes\n * @returns An object with an unsubscribe function that can be called to stop the subscription\n */\n public static async subscribe(\n client: ArgonClient,\n callback: (cpi: WageProtector) => void,\n ): Promise<{\n unsubscribe: () => void;\n }> {\n const unsubscribe = await client.query.priceIndex.current(async cpi => {\n if (cpi.isNone) {\n return;\n }\n const finalizedBlock = await client.rpc.chain.getFinalizedHead();\n\n callback(\n new WageProtector({\n argonUsdTargetPrice: cpi.value.argonUsdTargetPrice.toBigInt(),\n argonUsdPrice: cpi.value.argonUsdPrice.toBigInt(),\n finalizedBlock: new Uint8Array(finalizedBlock),\n tick: cpi.value.tick.toBigInt(),\n }),\n );\n });\n return { unsubscribe };\n }\n\n /**\n * Creates a new WageProtector instance by subscribing to the current CPI and waiting for the first value\n * @param client The ArgonClient to use\n */\n public static async create(client: ArgonClient): Promise<WageProtector> {\n return new Promise<WageProtector>(async (resolve, reject) => {\n try {\n const { unsubscribe } = await WageProtector.subscribe(client, x => {\n resolve(x);\n unsubscribe();\n });\n } catch (e) {\n reject(e);\n }\n });\n }\n}\n","import BigNumber, * as BN from 'bignumber.js';\nimport type { ArgonClient } from './index';\nimport type { DispatchError } from '@polkadot/types/interfaces';\nimport { EventRecord } from '@polkadot/types/interfaces/system';\n\nconst { ROUND_FLOOR } = BN;\n\nexport const MICROGONS_PER_ARGON = 1_000_000;\ntype IDispatchErrorLike = {\n isModule: boolean;\n asModule: Parameters<ArgonClient['registry']['findMetaError']>[0];\n toString(): string;\n};\n\nexport function formatArgons(microgons: bigint | number): string {\n if (microgons === undefined || microgons === null) return 'na';\n const isNegative = microgons < 0;\n let format = BigNumber(microgons.toString())\n .abs()\n .div(MICROGONS_PER_ARGON)\n .toFormat(2, ROUND_FLOOR);\n if (format.endsWith('.00')) {\n format = format.slice(0, -3);\n }\n return `${isNegative ? '-' : ''}₳${format}`;\n}\n\nexport async function gettersToObject<T>(obj: T): Promise<T> {\n if (obj === null || obj === undefined || typeof obj !== 'object') return obj;\n\n const keys = [];\n\n for (const key in obj) {\n keys.push(key);\n }\n\n if (Symbol.iterator in obj) {\n const iterableToArray = [];\n // @ts-expect-error - it should iterate by virtue of Symbol.iterator\n for (const item of obj) {\n iterableToArray.push(await gettersToObject(item));\n }\n return iterableToArray as T;\n }\n\n const result = {} as any;\n for (const key of keys) {\n const descriptor = Object.getOwnPropertyDescriptor(obj, key);\n // Skip functions\n if (descriptor && typeof descriptor.value === 'function') {\n continue;\n }\n const value = descriptor && descriptor.get ? descriptor.get.call(obj) : obj[key as keyof T];\n if (typeof value === 'function') continue;\n\n result[key] = await gettersToObject(value);\n }\n return result as T;\n}\n\nexport function dispatchErrorToString(client: ArgonClient, error: IDispatchErrorLike) {\n let message = error.toString();\n if (error.isModule) {\n const decoded = client.registry.findMetaError(error.asModule);\n const { docs, name, section } = decoded;\n message = `${section}.${name}: ${docs.join(' ')}`;\n }\n return message;\n}\n\nexport function isOutdatedTransactionError(error: unknown): boolean {\n const message = error instanceof Error ? error.message : String(error);\n return (\n message.includes('Invalid Transaction: Transaction is outdated') ||\n message.includes('InvalidTransaction::Stale')\n );\n}\n\n// ExtrinsicError\nexport class ExtrinsicError extends Error {\n constructor(\n public readonly errorCode: string,\n public readonly details?: string,\n public readonly batchInterruptedIndex?: number,\n public readonly txFee: bigint = 0n,\n ) {\n super(errorCode);\n }\n\n public override toString() {\n if (this.batchInterruptedIndex !== undefined) {\n return `${this.errorCode} ${this.details ?? ''} (Batch interrupted at index ${this.batchInterruptedIndex})`;\n }\n return `${this.errorCode} ${this.details ?? ''}`;\n }\n}\n\nexport function dispatchErrorToExtrinsicError(\n client: ArgonClient,\n error: IDispatchErrorLike,\n batchInterruptedIndex?: number,\n txFee?: bigint,\n) {\n if (error.isModule) {\n const decoded = client.registry.findMetaError(error.asModule);\n const { docs, name, section } = decoded;\n return new ExtrinsicError(`${section}.${name}`, docs.join(' '), batchInterruptedIndex, txFee);\n }\n return new ExtrinsicError(error.toString(), undefined, batchInterruptedIndex, txFee);\n}\n\n/**\n * Check for an extrinsic success event in the given events. Helpful to validate the result of an extrinsic inclusion in a block (it will be included even if it fails)\n * @param events The events to check\n * @param client The client to use\n * @returns A promise that resolves if the extrinsic was successful, and rejects if it failed\n */\nexport function checkForExtrinsicSuccess(\n events: EventRecord[],\n client: ArgonClient,\n): Promise<void> {\n return new Promise((resolve, reject) => {\n for (const { event } of events) {\n if (client.events.system.ExtrinsicSuccess.is(event)) {\n resolve();\n } else if (client.events.system.ExtrinsicFailed.is(event)) {\n // extract the data for this event\n const [dispatchError] = event.data;\n let errorInfo = dispatchError.toString();\n\n if (dispatchError.isModule) {\n const decoded = client.registry.findMetaError(dispatchError.asModule);\n errorInfo = `${decoded.section}.${decoded.name}`;\n }\n\n reject(new Error(`${event.section}.${event.method}:: ExtrinsicFailed:: ${errorInfo}`));\n }\n }\n });\n}\n\n/**\n * Return a bigint value using a canonical field first, then named fallback fields on the same source object.\n * Helpful when reading runtime records that may use older field names across spec versions.\n * @param value The preferred bigint-like value, usually from the current field name\n * @param source The object to read fallback fields from\n * @param fallbackFields The fallback field names to check in order\n * @param fallback The value to return if no preferred or fallback field is present\n * @returns The preferred or fallback value converted to bigint\n */\nexport function getBigIntFallback<T extends object>(\n value: IBigIntLike | undefined,\n source: T,\n fallbackFields: readonly string[],\n fallback = 0n,\n): bigint {\n if (typeof value === 'bigint') return value;\n if (value !== undefined) return value.toBigInt();\n\n const record = source as Record<string, IBigIntLike | undefined>;\n\n for (const fieldName of fallbackFields) {\n const field = record[fieldName];\n if (typeof field === 'bigint') return field;\n if (field !== undefined) return field.toBigInt();\n }\n\n return fallback;\n}\n\ntype IBigIntLike = bigint | { toBigInt(): bigint };\n","import { ArgonClient, GenericEvent, SpRuntimeDispatchError } from './index';\nimport { dispatchErrorToExtrinsicError, ExtrinsicError } from './utils';\nimport type { ISubmittableResult } from '@polkadot/types/types/extrinsic';\nimport { DispatchError } from '@polkadot/types/interfaces';\n\nexport type ITxProgressCallback = (progressToInBlock: number, result?: TxResult) => void;\n\nexport class TxResult {\n #isBroadcast = false;\n #submissionError?: Error;\n\n set isBroadcast(value: boolean) {\n this.#isBroadcast = value;\n this.updateProgress();\n }\n\n get isBroadcast(): boolean {\n return this.#isBroadcast;\n }\n\n set submissionError(value: Error) {\n if (value) {\n this.#submissionError = value;\n this.finalizedReject(value);\n this.inBlockReject(value);\n this.updateProgress();\n }\n }\n\n get submissionError(): Error | undefined {\n return this.#submissionError;\n }\n\n public waitForFinalizedBlock: Promise<Uint8Array>;\n public waitForInFirstBlock: Promise<Uint8Array>;\n public events: GenericEvent[] = [];\n\n public extrinsicError: ExtrinsicError | Error | undefined;\n public extrinsicIndex: number | undefined;\n\n public txProgressCallback?: ITxProgressCallback;\n /**\n * The index of the batch that was interrupted, if any.\n */\n public batchInterruptedIndex?: number;\n public blockHash?: Uint8Array;\n public blockNumber?: number;\n /**\n * The final fee paid for the transaction, including the fee tip.\n */\n public finalFee?: bigint;\n /**\n * The fee tip paid for the transaction.\n */\n public finalFeeTip?: bigint;\n\n public txProgress = 0;\n public isFinalized = false;\n\n protected finalizedResolve!: (block: Uint8Array) => void;\n protected finalizedReject!: (error: ExtrinsicError | Error) => void;\n protected inBlockResolve!: (block: Uint8Array) => void;\n protected inBlockReject!: (error: ExtrinsicError | Error) => void;\n\n constructor(\n protected readonly client: ArgonClient,\n public extrinsic: {\n signedHash: string;\n method: any;\n submittedTime: Date;\n submittedAtBlockNumber: number;\n accountAddress: string;\n nonce: number;\n },\n ) {\n this.waitForFinalizedBlock = new Promise((resolve, reject) => {\n this.finalizedResolve = resolve;\n this.finalizedReject = reject;\n });\n this.waitForInFirstBlock = new Promise((resolve, reject) => {\n this.inBlockResolve = resolve;\n this.inBlockReject = reject;\n });\n // drown reject\n this.waitForFinalizedBlock.catch(() => null);\n this.waitForInFirstBlock.catch(() => null);\n }\n\n public async setSeenInBlock(block: {\n blockHash: Uint8Array;\n blockNumber?: number;\n extrinsicIndex: number;\n events: GenericEvent[];\n }): Promise<void> {\n const { blockHash, blockNumber, events } = block;\n if (blockHash !== this.blockHash) {\n this.parseEvents(events);\n this.blockHash = blockHash;\n this.blockNumber =\n blockNumber ??\n (await this.client.rpc.chain.getHeader(blockHash).then(h => h.number.toNumber()));\n this.extrinsicIndex = block.extrinsicIndex;\n this.updateProgress();\n if (this.extrinsicError) {\n this.inBlockReject(this.extrinsicError);\n } else {\n this.inBlockResolve(blockHash);\n }\n }\n }\n\n public setFinalized() {\n this.isFinalized = true;\n this.updateProgress();\n\n let error = this.extrinsicError ?? this.submissionError;\n if (!error && !this.blockHash) {\n error = new Error('Cannot finalize transaction before it is included in a block');\n }\n\n if (error) {\n this.finalizedReject(error);\n this.inBlockReject(error);\n } else {\n this.finalizedResolve(this.blockHash!);\n this.inBlockResolve(this.blockHash!);\n }\n }\n\n public onSubscriptionResult(result: ISubmittableResult) {\n const { events, status, isFinalized, txIndex } = result;\n const extrinsicEvents = events.map(x => x.event);\n\n if (status.isBroadcast) {\n this.isBroadcast = true;\n if (result.internalError) this.submissionError = result.internalError;\n }\n if (status.isInBlock) {\n void this.setSeenInBlock({\n blockHash: Uint8Array.from(status.asInBlock),\n events: extrinsicEvents,\n extrinsicIndex: txIndex!,\n });\n }\n if (isFinalized) {\n this.setFinalized();\n }\n }\n\n private updateProgress() {\n if (this.isFinalized || this.submissionError) {\n this.txProgress = 100;\n } else if (this.blockNumber) {\n const elapsedBlocks = this.blockNumber - this.extrinsic.submittedAtBlockNumber;\n const FINALIZATION_BLOCKS = 5;\n const remainingPercent = Math.max(0, FINALIZATION_BLOCKS - elapsedBlocks) * 20;\n const percent = 100 - remainingPercent;\n this.txProgress = Math.min(percent, 99);\n } else if (this.extrinsic.submittedAtBlockNumber) {\n this.txProgress = 10;\n }\n this.txProgressCallback?.(this.txProgress);\n }\n\n private parseEvents(events: GenericEvent[]) {\n let encounteredError: SpRuntimeDispatchError | undefined;\n for (const event of events) {\n if (this.client.events.system.ExtrinsicFailed.is(event)) {\n const { dispatchError } = event.data;\n encounteredError ??= dispatchError;\n }\n if (this.client.events.utility.BatchInterrupted.is(event)) {\n const { index, error } = event.data;\n this.batchInterruptedIndex = index.toNumber();\n encounteredError = error;\n }\n if (this.client.events.transactionPayment.TransactionFeePaid.is(event)) {\n const { actualFee, tip } = event.data;\n this.finalFee = actualFee.toBigInt();\n this.finalFeeTip = tip.toBigInt();\n }\n }\n if (encounteredError) {\n this.extrinsicError = dispatchErrorToExtrinsicError(\n this.client,\n encounteredError as unknown as DispatchError,\n this.batchInterruptedIndex,\n this.finalFee,\n );\n } else {\n this.extrinsicError = undefined;\n }\n this.events = events;\n }\n}\n","import { waitForLoad } from './index';\nimport type { ArgonClient } from './index';\nimport type { SubmittableExtrinsic } from '@polkadot/api/promise/types';\nimport type { SignerOptions } from '@polkadot/api/types';\nimport type { KeyringPair } from '@polkadot/keyring/types';\nimport { ITxProgressCallback, TxResult } from './TxResult';\n\nexport type TxSigningAccount =\n | KeyringPair\n | { address: string; signer: NonNullable<SignerOptions['signer']> };\n\nexport type ISubmittableOptions = Partial<Omit<SignerOptions, 'signer'>> & {\n tip?: bigint;\n logResults?: boolean;\n useLatestNonce?: boolean;\n txProgressCallback?: ITxProgressCallback;\n disableAutomaticTxTracking?: boolean;\n};\n\nexport class TxSubmitter {\n public readonly address: string;\n\n constructor(\n public readonly client: ArgonClient,\n public tx: SubmittableExtrinsic,\n public readonly account: TxSigningAccount,\n ) {\n this.address = account.address;\n }\n\n public async feeEstimate(tip?: bigint): Promise<bigint> {\n const { partialFee } = await this.tx.paymentInfo(this.address, { tip });\n return partialFee.toBigInt();\n }\n\n public async canAfford(\n options: {\n tip?: bigint;\n unavailableBalance?: bigint;\n includeExistentialDeposit?: boolean;\n } = {},\n ): Promise<{ canAfford: boolean; availableBalance: bigint; txFee: bigint }> {\n const { tip, unavailableBalance } = options;\n const account = await this.client.query.system.account(this.address);\n let availableBalance = account.data.free.toBigInt();\n const userBalance = availableBalance;\n if (unavailableBalance) {\n availableBalance -= unavailableBalance;\n }\n const existentialDeposit = options.includeExistentialDeposit\n ? this.client.consts.balances.existentialDeposit.toBigInt()\n : 0n;\n const fees = await this.feeEstimate(tip);\n const totalCharge = fees + (tip ?? 0n);\n const canAfford = availableBalance >= totalCharge + existentialDeposit;\n return { canAfford, availableBalance: userBalance, txFee: fees };\n }\n\n public async sign(options: ISubmittableOptions = {}): Promise<SubmittableExtrinsic> {\n const { useLatestNonce, ...apiOptions } = options;\n await waitForLoad();\n if (useLatestNonce && apiOptions.nonce === undefined) {\n apiOptions.nonce = await this.client.rpc.system.accountNextIndex(this.address);\n }\n\n if ('signer' in this.account) {\n return await this.tx.signAsync(this.address, { ...apiOptions, signer: this.account.signer });\n }\n\n return await this.tx.signAsync(this.account, apiOptions);\n }\n\n public async submitSigned(\n signedTx: SubmittableExtrinsic,\n options: ISubmittableOptions = {},\n ): Promise<TxResult> {\n const blockHeight = await this.client.rpc.chain.getHeader().then(h => h.number.toNumber());\n if (options.logResults) {\n this.logRequest();\n }\n const txHash = signedTx.hash.toHex();\n const result = new TxResult(this.client, {\n signedHash: txHash,\n method: signedTx.method.toHuman(),\n accountAddress: this.address,\n submittedTime: new Date(),\n submittedAtBlockNumber: blockHeight,\n nonce: signedTx.nonce.toNumber(),\n });\n result.txProgressCallback = options.txProgressCallback;\n if (options.disableAutomaticTxTracking !== true) {\n await signedTx.send(result.onSubscriptionResult.bind(result));\n } else {\n try {\n await signedTx.send();\n result.isBroadcast = true;\n } catch (error) {\n result.submissionError = error as Error;\n }\n }\n return result;\n }\n\n public async submit(options: ISubmittableOptions = {}): Promise<TxResult> {\n const signedTx = await this.sign(options);\n return await this.submitSigned(signedTx, options);\n }\n\n private logRequest() {\n let toHuman = (this.tx.toHuman() as any).method;\n const txString = [];\n let api = formatCall(toHuman);\n const args: any[] = [];\n if (api === 'proxy.proxy') {\n toHuman = toHuman.args.call;\n txString.push('Proxy');\n api = formatCall(toHuman);\n }\n if (api.startsWith('utility.batch')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n const calls = toHuman.args.calls.map(formatCall).join(', ');\n txString.push(`Batch[${calls}]`);\n } else {\n txString.push(api);\n args.push(toHuman.args);\n }\n args.unshift(txString.join('->'));\n console.log('Submitting transaction from %s:', this.address, ...args);\n }\n}\n\nfunction formatCall(call: any): string {\n return `${call.section}.${call.method}`;\n}\n","import { Keyring, KeyringPair, mnemonicGenerate } from './index';\n\nexport function keyringFromSuri(\n suri: string,\n cryptoType: 'sr25519' | 'ed25519' = 'sr25519',\n): KeyringPair {\n return new Keyring({ type: cryptoType }).createFromUri(suri);\n}\n\nexport function createKeyringPair(opts: { cryptoType?: 'sr25519' | 'ed25519' }): KeyringPair {\n const { cryptoType } = opts;\n const seed = mnemonicGenerate();\n return keyringFromSuri(seed, cryptoType);\n}\n","import { ArgonPrimitivesDigestsFrameInfo, getOfflineRegistry, Header } from './index';\n\nexport function getTickFromHeader(header: Header): number | undefined {\n for (const x of header.digest.logs) {\n if (x.isPreRuntime) {\n const [engineId, data] = x.asPreRuntime;\n if (engineId.toString() === 'aura') {\n return getOfflineRegistry().createType('u64', data).toNumber();\n }\n }\n }\n return undefined;\n}\n\nexport function getAuthorFromHeader(header: Header): string | undefined {\n for (const x of header.digest.logs) {\n if (x.isPreRuntime) {\n const [engineId, data] = x.asPreRuntime;\n if (engineId.toString() === 'pow_') {\n return getOfflineRegistry().createType('AccountId32', data).toHuman();\n }\n }\n }\n return undefined;\n}\n\nexport function getFrameInfoFromHeader(\n header: Header,\n): { isNewFrame: boolean; frameId: number; frameRewardTicksRemaining: number } | undefined {\n for (const x of header.digest.logs) {\n if (x.isConsensus) {\n const [engineId, data] = x.asConsensus;\n if (engineId.toString() === 'fram') {\n const decoded: ArgonPrimitivesDigestsFrameInfo = getOfflineRegistry().createType(\n 'ArgonPrimitivesDigestsFrameInfo',\n data,\n );\n return {\n isNewFrame: decoded.isNewFrame.toPrimitive(),\n frameId: decoded.frameId.toNumber(),\n frameRewardTicksRemaining: decoded.frameRewardTicksRemaining.toNumber(),\n };\n }\n }\n }\n return undefined;\n}\n","import {\n type ArgonClient,\n type ArgonPrimitivesVault,\n FIXED_U128_DECIMALS,\n formatArgons,\n fromFixedNumber,\n MICROGONS_PER_ARGON,\n PERMILL_DECIMALS,\n toFixedNumber,\n TxSubmitter,\n} from './index';\nimport BigNumber from 'bignumber.js';\nimport bs58check from 'bs58check';\nimport { hexToU8a } from '@polkadot/util';\nimport { TxResult } from './TxResult';\nimport type { ISubmittableOptions, TxSigningAccount } from './TxSubmitter';\nimport type { PriceIndex } from './PriceIndex';\nimport { ApiDecoration } from '@polkadot/api/types';\nimport type {\n bool,\n BTreeMap,\n Bytes,\n Compact,\n Option,\n Struct,\n u128,\n u64,\n} from '@polkadot/types-codec';\nimport type { AccountId32 } from '@polkadot/types/interfaces/runtime';\nimport type { ITuple } from '@polkadot/types-codec/types';\nimport { ArgonPrimitivesVaultVaultTerms } from '@polkadot/types/lookup';\n\ninterface ArgonPrimitivesVaultV144 extends Struct {\n readonly operatorAccountId: AccountId32;\n readonly securitization: Compact<u128>;\n readonly argonsLocked: Compact<u128>;\n readonly argonsPendingActivation: Compact<u128>;\n readonly argonsScheduledForRelease: BTreeMap<u64, u128>;\n readonly securitizationRatio: Compact<u128>;\n readonly isClosed: bool;\n readonly terms: ArgonPrimitivesVaultVaultTerms;\n readonly pendingTerms: Option<ITuple<[u64, ArgonPrimitivesVaultVaultTerms]>>;\n readonly openedTick: Compact<u64>;\n}\n\nexport class Vault {\n public securitization!: bigint;\n public securitizationLocked!: bigint;\n public securitizationPendingActivation!: bigint;\n /**\n * Map of bitcoin height to amount of securitization released at that height\n */\n public securitizationReleaseSchedule: Map<number, bigint>;\n public terms!: ITerms;\n public operatorAccountId!: string;\n public isClosed!: boolean;\n public vaultId: number;\n public pendingTerms?: ITerms;\n public pendingTermsChangeTick?: number;\n public openedDate: Date;\n public openedTick: number;\n public securitizationRatio!: number;\n\n public lockedSatoshis!: number;\n public securitizedSatoshis!: number;\n public name?: string;\n public lastNameChangeTick?: number;\n public bitcoinLockDelegateAccount?: string;\n\n constructor(\n id: number,\n vault: ArgonPrimitivesVault,\n public tickDuration: number,\n ) {\n this.vaultId = id;\n this.openedTick = vault.openedTick.toNumber();\n this.openedDate = new Date(this.openedTick * this.tickDuration);\n this.securitizationReleaseSchedule = new Map();\n this.load(vault);\n }\n\n public load(vault: ArgonPrimitivesVault | ArgonPrimitivesVaultV144): void {\n this.securitization = vault.securitization.toBigInt();\n this.securitizationRatio = fromFixedNumber(\n vault.securitizationRatio.toBigInt(),\n FIXED_U128_DECIMALS,\n ).toNumber();\n this.securitizationReleaseSchedule.clear();\n let schedule: BTreeMap<u64, u128>;\n if ('argonsLocked' in vault) {\n // spec 143 compatibility - don't bother with ratio as it was forced to 1:1\n this.securitizationLocked = vault.argonsLocked.toBigInt();\n this.securitizationPendingActivation = vault.argonsPendingActivation.toBigInt();\n schedule = vault.argonsScheduledForRelease;\n } else {\n this.securitizationLocked = vault.securitizationLocked.toBigInt();\n this.securitizationPendingActivation = vault.securitizationPendingActivation.toBigInt();\n schedule = vault.securitizationReleaseSchedule;\n }\n if (schedule.size > 0) {\n for (const [bitcoinHeight, amount] of schedule.entries()) {\n this.securitizationReleaseSchedule.set(bitcoinHeight.toNumber(), amount.toBigInt());\n }\n }\n this.terms = {\n bitcoinAnnualPercentRate: fromFixedNumber(\n vault.terms.bitcoinAnnualPercentRate.toBigInt(),\n FIXED_U128_DECIMALS,\n ),\n bitcoinBaseFee: vault.terms.bitcoinBaseFee.toBigInt(),\n treasuryProfitSharing: fromFixedNumber(\n vault.terms.treasuryProfitSharing.toBigInt(),\n PERMILL_DECIMALS,\n ),\n };\n if ('lockedSatoshis' in vault) {\n this.lockedSatoshis = vault.lockedSatoshis.toNumber();\n this.securitizedSatoshis = vault.securitizedSatoshis.toNumber();\n } else {\n this.lockedSatoshis = 0;\n this.securitizedSatoshis = 0;\n }\n\n this.operatorAccountId = vault.operatorAccountId.toString();\n this.isClosed = vault.isClosed.valueOf();\n this.pendingTerms = undefined;\n this.pendingTermsChangeTick = undefined;\n this.name = undefined;\n this.lastNameChangeTick = undefined;\n this.bitcoinLockDelegateAccount = undefined;\n if (vault.pendingTerms.isSome) {\n const [tickApply, terms] = vault.pendingTerms.value;\n this.pendingTermsChangeTick = tickApply.toNumber();\n this.pendingTerms = {\n bitcoinAnnualPercentRate: fromFixedNumber(\n terms.bitcoinAnnualPercentRate.toBigInt(),\n FIXED_U128_DECIMALS,\n ),\n bitcoinBaseFee: terms.bitcoinBaseFee.toBigInt(),\n treasuryProfitSharing: fromFixedNumber(\n vault.terms.treasuryProfitSharing.toBigInt(),\n PERMILL_DECIMALS,\n ),\n };\n }\n if ('name' in vault && vault.name.isSome) {\n this.name = decodeVaultName(vault.name.unwrap());\n }\n if ('lastNameChangeTick' in vault && vault.lastNameChangeTick.isSome) {\n this.lastNameChangeTick = vault.lastNameChangeTick.unwrap().toNumber();\n }\n if ('bitcoinLockDelegateAccount' in vault && vault.bitcoinLockDelegateAccount.isSome) {\n this.bitcoinLockDelegateAccount = vault.bitcoinLockDelegateAccount.unwrap().toHuman();\n }\n }\n\n public availableBitcoinSpace(): bigint {\n const availableSecuritization = this.availableSecuritization();\n const microgons = BigNumber(availableSecuritization).div(this.securitizationRatioBN());\n return bigNumberToBigInt(microgons);\n }\n\n public availableSecuritization(): bigint {\n return this.securitization - this.securitizationLocked;\n }\n\n public availableBondSpace(\n priceIndex: PriceIndex,\n bondLots?: Iterable<{ activeBonds: number }>,\n bondFullCapacityPerFrame?: boolean,\n ): bigint {\n if (this.securitizedSatoshis <= 0) return 0n;\n\n const microgonsPerBond = BigInt(MICROGONS_PER_ARGON);\n const totalBondCapacityMicrogons = priceIndex.getSatoshiPriceInTargetMicrogons(\n BigInt(this.securitizedSatoshis),\n );\n const capacityMicrogons = bondFullCapacityPerFrame\n ? totalBondCapacityMicrogons\n : totalBondCapacityMicrogons / 10n;\n const bondCapacity = Number(capacityMicrogons / microgonsPerBond);\n const activeBonds = [...(bondLots ?? [])].reduce(\n (sum, bondLot) => sum + bondLot.activeBonds,\n 0,\n );\n const availableBonds = activeBonds < bondCapacity ? bondCapacity - activeBonds : 0;\n\n return BigInt(availableBonds) * microgonsPerBond;\n }\n\n public getRelockCapacity(): bigint {\n return [...this.securitizationReleaseSchedule.values()].reduce((acc, val) => acc + val, 0n);\n }\n\n public securitizationRatioBN(): BigNumber {\n return new BigNumber(this.securitizationRatio);\n }\n\n public activatedSecuritization(): bigint {\n return this.securitizationLocked - this.securitizationPendingActivation;\n }\n\n /**\n * Returns the amount of securitization available to match per treasury pool\n */\n public activatedSecuritizationPerSlot(): bigint {\n const activated = this.activatedSecuritization();\n return activated / 10n;\n }\n\n public calculateBitcoinFee(amount: bigint): bigint {\n const feeBn = this.terms.bitcoinAnnualPercentRate\n .multipliedBy(amount)\n .integerValue(BigNumber.ROUND_CEIL);\n return BigInt(feeBn.toString()) + this.terms.bitcoinBaseFee;\n }\n\n public static async get(\n client: ArgonClient | ApiDecoration<'promise'>,\n vaultId: number,\n tickDurationMillis?: number,\n ): Promise<Vault> {\n const rawVault = await client.query.vaults.vaultsById(vaultId);\n if (rawVault.isNone) {\n throw new Error(`Vault with id ${vaultId} not found`);\n }\n const tickDuration =\n tickDurationMillis ??\n (await client.query.ticks.genesisTicker().then(x => x.tickDurationMillis.toNumber()))!;\n return new Vault(vaultId, rawVault.unwrap(), tickDuration);\n }\n\n public static async create(\n client: ArgonClient,\n txSigner: TxSigningAccount,\n args: {\n securitization: bigint | number;\n securitizationRatio: number;\n annualPercentRate: number;\n baseFee: bigint | number;\n bitcoinXpub: string;\n name?: string;\n treasuryProfitSharing: number;\n doNotExceedBalance?: bigint;\n } & ISubmittableOptions,\n config: { tickDurationMillis?: number } = {},\n ): Promise<{ getVault(): Promise<Vault>; txResult: TxResult }> {\n const {\n securitization,\n securitizationRatio,\n annualPercentRate,\n baseFee,\n bitcoinXpub,\n name,\n tip,\n doNotExceedBalance,\n } = args;\n let xpubBytes = hexToU8a(bitcoinXpub);\n if (xpubBytes.length !== 78) {\n if (\n bitcoinXpub.startsWith('xpub') ||\n bitcoinXpub.startsWith('tpub') ||\n bitcoinXpub.startsWith('zpub')\n ) {\n const bytes = bs58check.decode(bitcoinXpub);\n if (bytes.length !== 78) {\n throw new Error('Invalid Bitcoin xpub key length, must be 78 bytes');\n }\n xpubBytes = bytes;\n }\n }\n if (securitizationRatio < 1 || securitizationRatio > 2) {\n throw new Error('Securitization ratio must be between 1 and 2');\n }\n const encodedName = encodeVaultName(name);\n const vaultParams = {\n terms: {\n // convert to fixed u128\n bitcoinAnnualPercentRate: toFixedNumber(annualPercentRate, FIXED_U128_DECIMALS),\n bitcoinBaseFee: BigInt(baseFee),\n treasuryProfitSharing: toFixedNumber(args.treasuryProfitSharing, PERMILL_DECIMALS),\n },\n securitizationRatio: toFixedNumber(securitizationRatio, FIXED_U128_DECIMALS),\n securitization: BigInt(securitization),\n bitcoinXpubkey: xpubBytes,\n name: encodedName,\n };\n const tx = new TxSubmitter(client, client.tx.vaults.create(vaultParams), txSigner);\n if (doNotExceedBalance) {\n const finalTip = tip ?? 0n;\n let txFee = await tx.feeEstimate(finalTip);\n while (txFee + finalTip + vaultParams.securitization > doNotExceedBalance) {\n vaultParams.securitization = doNotExceedBalance - txFee - finalTip;\n tx.tx = client.tx.vaults.create(vaultParams);\n txFee = await tx.feeEstimate(finalTip);\n }\n }\n const canAfford = await tx.canAfford({ tip, unavailableBalance: BigInt(securitization) });\n if (!canAfford.canAfford) {\n throw new Error(\n `Insufficient balance to create vault. Required: ${formatArgons(securitization)}, Available: ${formatArgons(canAfford.availableBalance)}`,\n );\n }\n\n const result = await tx.submit({\n ...args,\n useLatestNonce: true,\n });\n\n async function getVault(): Promise<Vault> {\n await result.waitForFinalizedBlock;\n let vaultId: number | undefined;\n for (const event of result.events) {\n if (client.events.vaults.VaultCreated.is(event)) {\n vaultId = event.data.vaultId.toNumber();\n break;\n }\n }\n if (vaultId === undefined) {\n throw new Error('Vault creation failed, no VaultCreated event found');\n }\n return Vault.get(client, vaultId, config.tickDurationMillis);\n }\n return { getVault, txResult: result };\n }\n\n public static async setName(\n client: ArgonClient,\n txSigner: TxSigningAccount,\n args: {\n name?: string | null;\n } & ISubmittableOptions,\n ): Promise<TxResult> {\n const tx = new TxSubmitter(\n client,\n client.tx.vaults.setName(encodeVaultName(args.name)),\n txSigner,\n );\n\n return tx.submit({\n ...args,\n useLatestNonce: true,\n });\n }\n}\n\nexport interface ITerms {\n readonly bitcoinAnnualPercentRate: BigNumber;\n readonly bitcoinBaseFee: bigint;\n readonly treasuryProfitSharing: BigNumber;\n}\nfunction bigNumberToBigInt(bn: BigNumber): bigint {\n return BigInt(bn.integerValue(BigNumber.ROUND_DOWN).toString());\n}\n\nfunction decodeVaultName(name: Bytes): string {\n return new TextDecoder().decode(Uint8Array.from(name));\n}\n\nfunction encodeVaultName(name?: string | null): string | null {\n if (name === undefined || name === null) {\n return null;\n }\n if (!/^[A-Z][A-Za-z0-9]{0,17}$/.test(name)) {\n throw new Error(\n 'Vault name must start with a capital letter and contain at most 18 alphanumeric characters',\n );\n }\n return name;\n}\n","import BigNumber from 'bignumber.js';\n\nexport function toFixedNumber(\n value: string | number | BigNumber, // accept string to avoid early precision loss\n decimals: number,\n): bigint {\n const factor = new BigNumber(10).pow(decimals);\n const bn = new BigNumber(value);\n // truncate toward 0; use ROUND_FLOOR if you really need floor for positives\n const int = bn.times(factor).integerValue(BigNumber.ROUND_DOWN);\n return BigInt(int.toFixed(0));\n}\n\nexport function fromFixedNumber(value: bigint, decimals: number = FIXED_U128_DECIMALS): BigNumber {\n const factor = new BigNumber(10).pow(decimals);\n const bn = new BigNumber(value.toString());\n return bn.div(factor);\n}\n\nexport const FIXED_U128_DECIMALS = 18;\nexport const PERMILL_DECIMALS = 6;\n","import {\n ArgonClient,\n ArgonPrimitivesBitcoinBitcoinNetwork,\n ArgonPrimitivesBitcoinUtxoRef,\n getBigIntFallback,\n} from './index';\nimport { GenericEvent } from '@polkadot/types';\nimport type { SubmittableExtrinsic } from '@polkadot/api/promise/types';\nimport type { ISubmittableOptions, TxSigningAccount } from './TxSubmitter';\nimport { TxSubmitter } from './TxSubmitter';\nimport { TxResult } from './TxResult';\nimport { u8aToHex } from '@polkadot/util';\nimport { ApiDecoration } from '@polkadot/api/types';\nimport { PriceIndex } from './PriceIndex';\nimport { bool, Option, u128 } from '@polkadot/types-codec';\nimport { formatArgons } from './utils';\nimport type { Vault } from './Vault';\nimport BigNumber from 'bignumber.js';\n\nexport const SATS_PER_BTC = 100_000_000n;\n\ntype IQueryableClient = ArgonClient | ApiDecoration<'promise'>;\ntype UtxoRefLike =\n | ArgonPrimitivesBitcoinUtxoRef\n | { txid: string | Uint8Array; outputIndex: number };\n\ntype UtxoRefOption = { unwrap: () => ArgonPrimitivesBitcoinUtxoRef };\n\nfunction normalizeUtxoRef(utxoRef: UtxoRefLike): {\n txid: string;\n outputIndex: number;\n} {\n let txid = utxoRef.txid;\n if (typeof txid === 'object' && 'toHex' in txid) {\n txid = txid.toHex();\n } else if (typeof txid !== 'string') {\n txid = u8aToHex(txid);\n }\n let outputIndex = utxoRef.outputIndex;\n if (typeof outputIndex !== 'number') {\n outputIndex = outputIndex.toNumber();\n }\n return { txid, outputIndex };\n}\n\nexport class BitcoinLock implements IBitcoinLock {\n public utxoId: number;\n public p2wshScriptHashHex: string;\n public vaultId: number;\n public lockedTargetPrice: bigint;\n public liquidityPromised: bigint;\n public ownerAccount: string;\n public satoshis: bigint;\n public utxoSatoshis?: bigint;\n public vaultPubkey: string;\n public securityFees: bigint;\n public vaultClaimPubkey: string;\n public ownerPubkey: string;\n public vaultXpubSources: {\n parentFingerprint: Uint8Array;\n cosignHdIndex: number;\n claimHdIndex: number;\n };\n public vaultClaimHeight: number;\n public openClaimHeight: number;\n public createdAtHeight: number;\n public isFunded: boolean;\n public createdAtArgonBlock: number;\n public fundHoldExtensionsByBitcoinExpirationHeight: Record<number, bigint>;\n\n constructor(data: IBitcoinLock) {\n this.utxoId = data.utxoId;\n this.p2wshScriptHashHex = data.p2wshScriptHashHex;\n this.vaultId = data.vaultId;\n this.lockedTargetPrice = data.lockedTargetPrice;\n this.liquidityPromised = data.liquidityPromised;\n this.ownerAccount = data.ownerAccount;\n this.satoshis = data.satoshis;\n this.utxoSatoshis = data.utxoSatoshis;\n this.vaultPubkey = data.vaultPubkey;\n this.securityFees = data.securityFees;\n this.vaultClaimPubkey = data.vaultClaimPubkey;\n this.ownerPubkey = data.ownerPubkey;\n this.vaultXpubSources = data.vaultXpubSources;\n this.vaultClaimHeight = data.vaultClaimHeight;\n this.openClaimHeight = data.openClaimHeight;\n this.createdAtHeight = data.createdAtHeight;\n this.isFunded = data.isFunded;\n this.fundHoldExtensionsByBitcoinExpirationHeight =\n data.fundHoldExtensionsByBitcoinExpirationHeight;\n this.createdAtArgonBlock = data.createdAtArgonBlock;\n }\n\n /**\n * Gets the UTXO reference by ID.\n * @param client - client at the block height to query the UTXO reference at a specific point in time.\n * @return An object containing the transaction ID and output index, or undefined if not found.\n * @return.txid - The Bitcoin transaction ID of the UTXO.\n * @return.vout - The output index of the UTXO in the transaction.\n * @return.bitcoinTxid - The Bitcoin transaction ID of the UTXO formatted in little endian\n */\n public async getFundingUtxoRef(\n client: IQueryableClient,\n ): Promise<{ txid: string; vout: number; bitcoinTxid: string } | undefined> {\n let refRaw: Option<ArgonPrimitivesBitcoinUtxoRef>;\n if (\n 'utxoIdToRef' in client.query.bitcoinUtxos &&\n typeof client.query.bitcoinUtxos.utxoIdToRef === 'function'\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n refRaw = await client.query.bitcoinUtxos.utxoIdToRef(this.utxoId);\n } else {\n refRaw = await client.query.bitcoinUtxos.utxoIdToFundingUtxoRef(this.utxoId);\n }\n if (!refRaw || refRaw.isNone) {\n return;\n }\n const ref = refRaw.unwrap();\n\n const txid = u8aToHex(ref.txid);\n const bitcoinTxid = u8aToHex(ref.txid.slice().reverse());\n const vout = ref.outputIndex.toNumber();\n return { txid, vout, bitcoinTxid };\n }\n\n public async findPendingMints(client: IQueryableClient): Promise<bigint[]> {\n const pendingMint = await client.query.mint.pendingMintUtxos();\n const mintsPending: bigint[] = [];\n for (const [utxoIdRaw, _accountId, mintAmountRaw] of pendingMint) {\n if (utxoIdRaw.toNumber() === this.utxoId) {\n mintsPending.push(mintAmountRaw.toBigInt());\n }\n }\n return mintsPending;\n }\n\n public async calculateRatchetingCosts(\n client: IQueryableClient,\n priceIndex: PriceIndex,\n vault: Vault,\n microgonsAtTargetPerBtc?: bigint,\n ): Promise<{ burnAmount: bigint; ratchetingFee: bigint }> {\n const { createdAtHeight, vaultClaimHeight, lockedTargetPrice, satoshis } = this;\n const currentTargetPrice =\n microgonsAtTargetPerBtc !== undefined\n ? (microgonsAtTargetPerBtc * satoshis) / SATS_PER_BTC\n : priceIndex.getSatoshiPriceInTargetMicrogons(satoshis);\n\n let ratchetingFee = vault.terms.bitcoinBaseFee;\n let burnAmount = 0n;\n\n // ratchet up\n if (currentTargetPrice > lockedTargetPrice) {\n const diffTargetAmount = currentTargetPrice - lockedTargetPrice;\n const amountToMint = BitcoinLock.calculateRedemptionAmount(priceIndex, diffTargetAmount);\n const bitcoinFee = vault.calculateBitcoinFee(amountToMint);\n const percentageFee = bitcoinFee - vault.terms.bitcoinBaseFee;\n\n const currentBitcoinHeight = await client.query.bitcoinUtxos\n .confirmedBitcoinBlockTip()\n .then(x => x.unwrap().blockHeight.toNumber());\n const fullTerm = Math.max(1, vaultClaimHeight - createdAtHeight);\n const elapsedBlocks = Math.max(0, currentBitcoinHeight - createdAtHeight);\n const cappedRemainingBlocks = Math.max(0, fullTerm - elapsedBlocks);\n const proratedFee = (percentageFee * BigInt(cappedRemainingBlocks)) / BigInt(fullTerm);\n ratchetingFee = vault.terms.bitcoinBaseFee + proratedFee;\n } else {\n burnAmount = BitcoinLock.calculateRedemptionAmount(priceIndex, currentTargetPrice);\n }\n\n return {\n ratchetingFee,\n burnAmount,\n };\n }\n\n public async ratchet(\n args: {\n client: ArgonClient;\n priceIndex: PriceIndex;\n txSigner: TxSigningAccount;\n vault: Vault;\n microgonsAtTargetPerBtc?: bigint;\n } & ISubmittableOptions,\n ): Promise<{\n txResult: TxResult;\n getRatchetResult: () => Promise<{\n securityFee: bigint;\n txFee: bigint;\n lockedTargetPrice: bigint;\n liquidityPromised: bigint;\n pendingMint: bigint;\n burned: bigint;\n blockHeight: number;\n bitcoinBlockHeight: number;\n }>;\n }> {\n const { priceIndex, txSigner, tip = 0n, vault, client, microgonsAtTargetPerBtc } = args;\n\n const ratchetingCosts = await this.calculateRatchetingCosts(\n client,\n priceIndex,\n vault,\n microgonsAtTargetPerBtc,\n );\n const tx = client.tx.bitcoinLocks.ratchet(this.utxoId, { V1: { microgonsAtTargetPerBtc } });\n const txSubmitter = new TxSubmitter(client, tx, txSigner);\n const canAfford = await txSubmitter.canAfford({\n tip,\n unavailableBalance: BigInt(ratchetingCosts.burnAmount + ratchetingCosts.ratchetingFee),\n });\n if (!canAfford.canAfford) {\n throw new Error(\n `Insufficient funds to ratchet lock. Available: ${formatArgons(canAfford.availableBalance)}, Required: ${formatArgons(\n ratchetingCosts.burnAmount + ratchetingCosts.ratchetingFee,\n )}`,\n );\n }\n\n const txResult = await txSubmitter.submit(args);\n\n const getRatchetResult = async () => {\n const blockHash = await txResult.waitForFinalizedBlock;\n const ratchetEvent = txResult.events.find(x =>\n client.events.bitcoinLocks.BitcoinLockRatcheted.is(x),\n );\n if (!ratchetEvent) {\n throw new Error(`Ratchet event not found in transaction events`);\n }\n const api = await client.at(blockHash);\n const bitcoinBlockHeight = await api.query.bitcoinUtxos\n .confirmedBitcoinBlockTip()\n .then(x => x.unwrap().blockHeight.toNumber());\n const {\n amountBurned,\n liquidityPromised: liquidityPromisedRaw,\n newTargetPrice: newTargetPriceRaw,\n oldTargetPrice: oldTargetPriceRaw,\n securityFee,\n } = ratchetEvent.data;\n\n const liquidityPromised = liquidityPromisedRaw.toBigInt();\n const newTargetPrice = newTargetPriceRaw.toBigInt();\n const oldTargetPrice = oldTargetPriceRaw.toBigInt();\n const pendingMint =\n newTargetPrice > oldTargetPrice\n ? BitcoinLock.calculateRedemptionAmount(priceIndex, newTargetPrice - oldTargetPrice)\n : liquidityPromised;\n\n return {\n txFee: txResult.finalFee ?? 0n,\n blockHeight: txResult.blockNumber!,\n bitcoinBlockHeight,\n pendingMint,\n liquidityPromised,\n lockedTargetPrice: newTargetPrice,\n burned: amountBurned.toBigInt(),\n securityFee: securityFee.toBigInt(),\n };\n };\n\n return {\n txResult,\n getRatchetResult,\n };\n }\n\n public calculateRedemptionAmount(priceIndex: PriceIndex): bigint {\n return BitcoinLock.calculateRedemptionAmountFromSatoshis(\n priceIndex,\n this.satoshis,\n this.lockedTargetPrice,\n );\n }\n\n public async requestRelease(\n args: {\n client: ArgonClient;\n priceIndex: PriceIndex;\n releaseRequest: IReleaseRequest;\n txSigner: TxSigningAccount;\n } & ISubmittableOptions,\n ): Promise<TxResult> {\n const {\n priceIndex,\n releaseRequest: { bitcoinNetworkFee, toScriptPubkey },\n txSigner,\n tip = 0n,\n client,\n } = args;\n\n if (!toScriptPubkey.startsWith('0x')) {\n throw new Error('toScriptPubkey must be a hex string starting with 0x');\n }\n\n const submitter = new TxSubmitter(\n client,\n client.tx.bitcoinLocks.requestRelease(this.utxoId, toScriptPubkey, bitcoinNetworkFee),\n txSigner,\n );\n\n const redemptionAmount = this.calculateRedemptionAmount(priceIndex);\n\n const canAfford = await submitter.canAfford({\n tip,\n unavailableBalance: BigInt(redemptionAmount),\n });\n\n if (!canAfford.canAfford) {\n throw new Error(\n `Insufficient funds to release lock. Available: ${formatArgons(canAfford.availableBalance)}, Required: ${formatArgons(redemptionAmount + canAfford.txFee + tip)}`,\n );\n }\n return submitter.submit({\n logResults: true,\n ...args,\n });\n }\n\n public async getReleaseRequest(\n client: IQueryableClient,\n ): Promise<IReleaseRequestDetails | undefined> {\n const requestMaybe = await client.query.bitcoinLocks.lockReleaseRequestsByUtxoId(this.utxoId);\n if (!requestMaybe.isSome) {\n return undefined;\n }\n const request = requestMaybe.unwrap();\n return {\n toScriptPubkey: request.toScriptPubkey.toHex(),\n bitcoinNetworkFee: request.bitcoinNetworkFee.toBigInt(),\n dueFrame: request.cosignDueFrame.toNumber(),\n vaultId: request.vaultId.toNumber(),\n redemptionAmount: getBigIntFallback(request.redemptionAmount, request, ['redemptionPrice']),\n };\n }\n\n /**\n * Finds the cosign signature for a vault lock by UTXO ID. Optionally waits for the signature\n * @param client - The Argon client with rpc access\n * @param finalizedStateOnly - If true, only checks finalized state\n * @param waitForSignatureMillis - Optional timeout in milliseconds to wait for the signature. If -1, waits indefinitely.\n */\n public async findVaultCosignSignature(\n client: ArgonClient,\n finalizedStateOnly = false,\n waitForSignatureMillis?: number,\n ): Promise<{ blockHeight: number; signature: Uint8Array } | undefined> {\n let queryClient = client as IQueryableClient;\n if (finalizedStateOnly) {\n const finalizedHead = await client.rpc.chain.getFinalizedHead();\n queryClient = await client.at(finalizedHead);\n }\n const releaseHeight = await queryClient.query.bitcoinLocks.lockReleaseCosignHeightById(\n this.utxoId,\n );\n if (releaseHeight.isSome) {\n const releaseHeightValue = releaseHeight.unwrap().toNumber();\n const signature = await this.getVaultCosignSignature(client, releaseHeightValue);\n if (signature) {\n return { blockHeight: releaseHeightValue, signature };\n }\n }\n\n if (!waitForSignatureMillis) {\n return undefined;\n }\n\n return await new Promise(async (resolve, reject) => {\n let timeout: NodeJS.Timeout | undefined;\n const unsub = await client.rpc.chain.subscribeNewHeads(header => {\n const atHeight = header.number.toNumber();\n this.getVaultCosignSignature(client, atHeight)\n .then(signature => {\n if (signature) {\n unsub?.();\n clearTimeout(timeout);\n resolve({ signature, blockHeight: atHeight });\n }\n })\n .catch(err => {\n console.error(`Error checking for cosign signature at height ${atHeight}:`, err);\n });\n });\n if (waitForSignatureMillis !== -1) {\n timeout = setTimeout(() => {\n unsub?.();\n reject(new Error(`Timeout waiting for cosign signature for UTXO ID ${this.utxoId}`));\n }, waitForSignatureMillis);\n }\n });\n }\n\n public async getVaultCosignSignature(\n client: ArgonClient,\n atHeight: number,\n ): Promise<Uint8Array | undefined> {\n const blockHash = await BitcoinLock.blockHashAtHeight(client, atHeight);\n if (!blockHash) {\n console.warn(`Block hash not found for height ${atHeight}`);\n return undefined;\n }\n\n const blockEvents = await client.at(blockHash).then(api => api.query.system.events());\n for (const event of blockEvents) {\n if (client.events.bitcoinLocks.BitcoinUtxoCosigned.is(event.event)) {\n const { utxoId: id, signature } = event.event.data;\n if (id.toNumber() === this.utxoId) {\n return new Uint8Array(signature);\n }\n }\n }\n return undefined;\n }\n\n public static async getUtxoIdFromEvents(client: IQueryableClient, events: GenericEvent[]) {\n for (const event of events) {\n if (client.events.bitcoinLocks.BitcoinLockCreated.is(event)) {\n return event.data.utxoId.toNumber();\n }\n }\n return undefined;\n }\n\n public static calculateRedemptionAmountFromSatoshis(\n priceIndex: PriceIndex,\n satoshis: bigint,\n lockedTargetPrice?: bigint,\n ): bigint {\n const btcMicrogonsAtTarget = priceIndex.getSatoshiPriceInTargetMicrogons(satoshis);\n return this.calculateRedemptionAmount(priceIndex, btcMicrogonsAtTarget, lockedTargetPrice);\n }\n\n public static calculateRedemptionAmount(\n priceIndex: PriceIndex,\n btcMicrogonsAtTarget: bigint,\n maxMicrogonsAtTarget?: bigint,\n ): bigint {\n let price = btcMicrogonsAtTarget;\n if (maxMicrogonsAtTarget !== undefined && maxMicrogonsAtTarget < btcMicrogonsAtTarget) {\n price = maxMicrogonsAtTarget;\n }\n\n const multiplierBn = this.redemptionMultiplierBn(priceIndex);\n\n return BigInt(\n new BigNumber(price.toString())\n .times(multiplierBn)\n .integerValue(BigNumber.ROUND_DOWN)\n .toFixed(0),\n );\n }\n\n private static redemptionMultiplierBn(priceIndex: PriceIndex): BigNumber {\n const r = priceIndex.rValue;\n\n if (r.gte(1)) {\n // Case 1: no penalty\n return new BigNumber(1);\n } else if (r.gte(0.9)) {\n // Case 2: quadratic curve\n // Formula: 20r² - 38r + 19\n return new BigNumber(20).times(r.pow(2)).minus(new BigNumber(38).times(r)).plus(19);\n } else if (r.gte(0.01)) {\n // Case 3: rational linear formula\n // Formula: (0.5618r + 0.3944) / r\n return new BigNumber(0.5618).times(r).plus(0.3944).div(r);\n } else {\n // Case 4: extreme deviation\n // Formula: (1 / r) * (0.576r + 0.4)\n return new BigNumber(1).div(r).times(new BigNumber(0.576).times(r).plus(0.4));\n }\n }\n\n public static async getConfig(client: IQueryableClient): Promise<IBitcoinLockConfig> {\n const bitcoinNetwork = await client.query.bitcoinUtxos.bitcoinNetwork();\n return {\n lockReleaseCosignDeadlineFrames:\n client.consts.bitcoinLocks.lockReleaseCosignDeadlineFrames.toNumber(),\n pendingConfirmationExpirationBlocks:\n client.consts.bitcoinUtxos.maxPendingConfirmationBlocks.toNumber(),\n tickDurationMillis: await client.query.ticks\n .genesisTicker()\n .then(x => x.tickDurationMillis.toNumber()),\n bitcoinNetwork,\n lockSatoshiAllowedVariance:\n client.consts.bitcoinUtxos.maximumSatoshiThresholdFromExpected?.toNumber() ?? 10_000,\n };\n }\n\n public static async getBitcoinConfirmedBlockHeight(client: IQueryableClient): Promise<number> {\n return await client.query.bitcoinUtxos\n .confirmedBitcoinBlockTip()\n .then(x => x.value?.blockHeight.toNumber() ?? 0);\n }\n\n public static async submitVaultSignature(\n args: {\n client: ArgonClient;\n utxoId: number;\n vaultSignature: Uint8Array;\n txSigner: TxSigningAccount;\n } & ISubmittableOptions,\n ): Promise<TxResult> {\n const { utxoId, vaultSignature, txSigner, client } = args;\n if (!vaultSignature || vaultSignature.byteLength < 70 || vaultSignature.byteLength > 73) {\n throw new Error(\n `Invalid vault signature length: ${vaultSignature.byteLength}. Must be 70-73 bytes.`,\n );\n }\n const signature = u8aToHex(vaultSignature);\n const tx = client.tx.bitcoinLocks.cosignRelease(utxoId, signature);\n const submitter = new TxSubmitter(client, tx, txSigner);\n\n return await submitter.submit(args);\n }\n\n public static async createIncreaseSecuritizationTx(\n args: {\n utxoId: number;\n client: ArgonClient;\n newSatoshis: bigint;\n } & ISubmittableOptions,\n ): Promise<SubmittableExtrinsic | undefined> {\n const { client, newSatoshis, utxoId } = args;\n const txBuilder = client.tx.bitcoinLocks.increaseSecuritization;\n if (!txBuilder?.meta) {\n return undefined;\n }\n return txBuilder(utxoId, newSatoshis);\n }\n\n public static async createFundWithUtxoCandidateTx(\n args: {\n client: ArgonClient;\n utxoId: number;\n utxoRef: UtxoRefLike;\n } & ISubmittableOptions,\n ): Promise<SubmittableExtrinsic | undefined> {\n const { client, utxoId, utxoRef } = args;\n const txBuilder = client.tx.bitcoinUtxos?.fundWithUtxoCandidate;\n if (!txBuilder?.meta) {\n return undefined;\n }\n return txBuilder(utxoId, normalizeUtxoRef(utxoRef));\n }\n\n public static async createOrphanedUtxoReleaseRequestTx(\n args: {\n client: ArgonClient;\n utxoRef: UtxoRefLike;\n releaseRequest: IReleaseRequest;\n } & ISubmittableOptions,\n ): Promise<SubmittableExtrinsic | undefined> {\n const {\n client,\n utxoRef,\n releaseRequest: { bitcoinNetworkFee, toScriptPubkey },\n } = args;\n\n if (!toScriptPubkey.startsWith('0x')) {\n throw new Error('toScriptPubkey must be a hex string starting with 0x');\n }\n\n const txBuilder = client.tx.bitcoinLocks.requestOrphanedUtxoRelease;\n if (!txBuilder?.meta) {\n return undefined;\n }\n\n return txBuilder(normalizeUtxoRef(utxoRef), toScriptPubkey, bitcoinNetworkFee);\n }\n\n public static async createOrphanedUtxoCosignTx(\n args: {\n client: ArgonClient;\n orphanOwner: string;\n utxoRef: UtxoRefLike;\n vaultSignature: Uint8Array;\n } & ISubmittableOptions,\n ): Promise<SubmittableExtrinsic | undefined> {\n const { client, orphanOwner, utxoRef, vaultSignature } = args;\n if (!vaultSignature || vaultSignature.byteLength < 70 || vaultSignature.byteLength > 73) {\n throw new Error(\n `Invalid vault signature length: ${vaultSignature.byteLength}. Must be 70-73 bytes.`,\n );\n }\n if (!client.tx.bitcoinLocks.cosignOrphanedUtxoRelease?.meta) {\n return undefined;\n }\n const signature = u8aToHex(vaultSignature);\n return client.tx.bitcoinLocks.cosignOrphanedUtxoRelease(\n orphanOwner,\n normalizeUtxoRef(utxoRef),\n signature,\n );\n }\n\n public static async get(\n client: IQueryableClient,\n utxoId: number,\n ): Promise<BitcoinLock | undefined> {\n const utxoRaw = await client.query.bitcoinLocks.locksByUtxoId(utxoId);\n if (!utxoRaw.isSome) {\n return;\n }\n const utxo = utxoRaw.unwrap();\n const p2shBytesPrefix = '0020';\n const wscriptHash = utxo.utxoScriptPubkey.asP2wsh.wscriptHash.toHex().replace('0x', '');\n const p2wshScriptHashHex = `0x${p2shBytesPrefix}${wscriptHash}`;\n const vaultId = utxo.vaultId.toNumber();\n const lockedTargetPrice = getBigIntFallback(utxo.lockedTargetPrice, utxo, [\n 'lockedMarketRate',\n 'peggedPrice',\n ]);\n const liquidityPromised = utxo.liquidityPromised.toBigInt();\n const ownerAccount = utxo.ownerAccount.toHuman();\n const satoshis = utxo.satoshis.toBigInt();\n const utxoSatoshis = utxo.utxoSatoshis?.isSome ? utxo.utxoSatoshis.value.toBigInt() : undefined;\n const vaultPubkey = utxo.vaultPubkey.toHex();\n const vaultClaimPubkey = utxo.vaultClaimPubkey.toHex();\n const ownerPubkey = utxo.ownerPubkey.toHex();\n const [fingerprint, cosign_hd_index, claim_hd_index] = utxo.vaultXpubSources;\n const vaultXpubSources = {\n parentFingerprint: new Uint8Array(fingerprint),\n cosignHdIndex: cosign_hd_index.toNumber(),\n claimHdIndex: claim_hd_index.toNumber(),\n };\n\n const createdAtArgonBlock = utxo.createdAtArgonBlock?.toNumber() ?? 0;\n const securityFees = utxo.securityFees.toBigInt();\n const vaultClaimHeight = utxo.vaultClaimHeight.toNumber();\n const openClaimHeight = utxo.openClaimHeight.toNumber();\n const createdAtHeight = utxo.createdAtHeight.toNumber();\n const isFunded = ((utxo as { isVerified?: bool })?.isVerified ?? utxo.isFunded).toJSON();\n const fundHoldExtensionsByBitcoinExpirationHeight = Object.fromEntries(\n [...utxo.fundHoldExtensions.entries()].map(([x, y]) => [x.toNumber(), y.toBigInt()]),\n );\n return new BitcoinLock({\n utxoId,\n p2wshScriptHashHex,\n vaultId,\n lockedTargetPrice,\n liquidityPromised,\n ownerAccount,\n satoshis,\n utxoSatoshis,\n vaultPubkey,\n vaultClaimPubkey,\n ownerPubkey,\n vaultXpubSources,\n vaultClaimHeight,\n openClaimHeight,\n createdAtHeight,\n securityFees,\n isFunded,\n fundHoldExtensionsByBitcoinExpirationHeight,\n createdAtArgonBlock,\n });\n }\n\n public static async blockHashAtHeight(\n client: ArgonClient,\n atHeight: number,\n ): Promise<string | undefined> {\n for (let i = 0; i < 10; i++) {\n const currentHeight = await client.query.system.number().then(x => x.toNumber());\n if (atHeight > currentHeight) {\n console.warn(\n `Requested block height ${atHeight} is greater than current height ${currentHeight}. Retrying...`,\n );\n await new Promise(resolve => setTimeout(resolve, 1000)); // wait 1 second before retrying\n continue;\n }\n const hash = await client.rpc.chain.getBlockHash(atHeight).then(x => x.toHex());\n if (hash === '0x0000000000000000000000000000000000000000000000000000000000000000') {\n console.warn(`Block hash not found for height ${atHeight}. Retrying...`);\n await new Promise(resolve => setTimeout(resolve, 1000)); // wait 1 second before retrying\n continue;\n }\n return hash;\n }\n return undefined;\n }\n\n public static async createInitializeTx(args: {\n client: ArgonClient;\n vault: Vault;\n priceIndex: PriceIndex;\n ownerBitcoinPubkey: Uint8Array;\n satoshis: bigint;\n txSigner: TxSigningAccount;\n reducedBalanceBy?: bigint;\n microgonsAtTargetPerBtc?: bigint;\n tip?: bigint;\n initializeForAccountId?: string;\n }) {\n const {\n vault,\n priceIndex,\n txSigner,\n satoshis,\n tip = 0n,\n ownerBitcoinPubkey,\n client,\n microgonsAtTargetPerBtc = null,\n initializeForAccountId,\n } = args;\n if (ownerBitcoinPubkey.length !== 33) {\n throw new Error(\n `Invalid Bitcoin key length: ${ownerBitcoinPubkey.length}. Must be a compressed pukey (33 bytes).`,\n );\n }\n\n let tx: SubmittableExtrinsic;\n if (initializeForAccountId) {\n tx = client.tx.bitcoinLocks.initializeFor(\n initializeForAccountId,\n vault.vaultId,\n satoshis,\n ownerBitcoinPubkey,\n {\n V1: {\n microgonsAtTargetPerBtc,\n },\n },\n );\n } else {\n tx = client.tx.bitcoinLocks.initialize(vault.vaultId, satoshis, ownerBitcoinPubkey, {\n V1: {\n microgonsAtTargetPerBtc,\n },\n });\n }\n const submitter = new TxSubmitter(client, tx, txSigner);\n const targetPrice =\n microgonsAtTargetPerBtc !== null\n ? (microgonsAtTargetPerBtc * satoshis) / SATS_PER_BTC\n : priceIndex.getSatoshiPriceInTargetMicrogons(satoshis);\n const unlockAmount = this.calculateRedemptionAmount(priceIndex, targetPrice);\n const isVaultOwner = txSigner.address === vault.operatorAccountId;\n const securityFee = isVaultOwner ? 0n : vault.calculateBitcoinFee(unlockAmount);\n\n const { canAfford, availableBalance, txFee } = await submitter.canAfford({\n tip,\n unavailableBalance: securityFee + (args.reducedBalanceBy ?? 0n),\n includeExistentialDeposit: true,\n });\n return {\n tx,\n securityFee,\n txFee,\n canAfford,\n availableBalance,\n txFeePlusTip: txFee + tip,\n };\n }\n\n public static async initialize(\n args: {\n client: ArgonClient;\n vault: Vault;\n priceIndex: PriceIndex;\n ownerBitcoinPubkey: Uint8Array;\n txSigner: TxSigningAccount;\n satoshis: bigint;\n } & ISubmittableOptions,\n ): Promise<{\n getLock(): Promise<{ lock: BitcoinLock; createdAtHeight: number }>;\n txResult: TxResult;\n securityFee: bigint;\n }> {\n const { txSigner, client } = args;\n\n const { tx, securityFee, canAfford, txFeePlusTip } = await this.createInitializeTx(args);\n if (!canAfford) {\n throw new Error(\n `Insufficient funds to initialize bitcoin lock. Required security fee: ${formatArgons(securityFee)}, Tx fee plus tip: ${formatArgons(txFeePlusTip)}`,\n );\n }\n const submitter = new TxSubmitter(client, tx, txSigner);\n const txResult = await submitter.submit({ logResults: true, ...args });\n\n return {\n getLock: () => this.getBitcoinLockFromTxResult(client, txResult),\n txResult,\n securityFee,\n };\n }\n\n public static async getBitcoinLockFromTxResult(\n client: IQueryableClient,\n txResult: TxResult,\n ): Promise<{\n lock: BitcoinLock;\n createdAtHeight: number;\n txResult: TxResult;\n }> {\n await txResult.waitForFinalizedBlock;\n const blockHeight = txResult.blockNumber!;\n const utxoId = (await this.getUtxoIdFromEvents(client, txResult.events)) ?? 0;\n if (utxoId === 0) {\n throw new Error('Bitcoin lock creation failed, no UTXO ID found in transaction events');\n }\n const lock = await this.get(client, utxoId);\n if (!lock) {\n throw new Error(`Lock with ID ${utxoId} not found after initialization`);\n }\n return { lock, createdAtHeight: blockHeight, txResult };\n }\n\n public static satoshisRequiredForRedemptionAmount(\n priceIndex: PriceIndex,\n redemptionAmount: bigint,\n ): bigint {\n if (redemptionAmount <= 0n) return 0n;\n\n const multiplierBn = this.redemptionMultiplierBn(priceIndex);\n const targetMicrogonsPerBtc = priceIndex.getSatoshiPriceInTargetMicrogons(SATS_PER_BTC);\n let requiredTargetMicrogons = BigInt(\n new BigNumber(redemptionAmount.toString())\n .div(multiplierBn)\n .integerValue(BigNumber.ROUND_CEIL)\n .toFixed(0),\n );\n\n while (this.calculateRedemptionAmount(priceIndex, requiredTargetMicrogons) < redemptionAmount) {\n requiredTargetMicrogons += 1n;\n }\n\n let satoshis = BigInt(\n new BigNumber(requiredTargetMicrogons.toString())\n .times(SATS_PER_BTC.toString())\n .div(targetMicrogonsPerBtc.toString())\n .integerValue(BigNumber.ROUND_CEIL)\n .toFixed(0),\n );\n\n // The forward path floors target microgons from sats, then floors the redemption amount.\n // Verify the computed sats satisfy both boundaries, then step down to the minimal sat count.\n while (this.calculateRedemptionAmountFromSatoshis(priceIndex, satoshis) < redemptionAmount) {\n satoshis += 1n;\n }\n while (\n satoshis > 0n &&\n this.calculateRedemptionAmountFromSatoshis(priceIndex, satoshis - 1n) >= redemptionAmount\n ) {\n satoshis -= 1n;\n }\n\n return satoshis;\n }\n}\n\nexport interface IBitcoinLockConfig {\n lockReleaseCosignDeadlineFrames: number;\n pendingConfirmationExpirationBlocks: number;\n tickDurationMillis: number;\n bitcoinNetwork: ArgonPrimitivesBitcoinBitcoinNetwork;\n lockSatoshiAllowedVariance: number;\n}\nexport interface IReleaseRequest {\n toScriptPubkey: string;\n bitcoinNetworkFee: bigint;\n}\n\nexport interface IReleaseRequestDetails extends IReleaseRequest {\n dueFrame: number;\n vaultId: number;\n redemptionAmount: bigint;\n}\n\nexport interface IBitcoinLock {\n utxoId: number;\n p2wshScriptHashHex: string;\n vaultId: number;\n lockedTargetPrice: bigint;\n liquidityPromised: bigint;\n ownerAccount: string;\n satoshis: bigint;\n utxoSatoshis?: bigint;\n vaultPubkey: string;\n securityFees: bigint;\n vaultClaimPubkey: string;\n ownerPubkey: string;\n vaultXpubSources: {\n parentFingerprint: Uint8Array;\n cosignHdIndex: number;\n claimHdIndex: number;\n };\n vaultClaimHeight: number;\n openClaimHeight: number;\n createdAtHeight: number;\n isFunded: boolean;\n createdAtArgonBlock: number;\n fundHoldExtensionsByBitcoinExpirationHeight: Record<number, bigint>;\n}\n","import type { ArgonClient } from './index';\nimport { FIXED_U128_DECIMALS, fromFixedNumber } from './convert';\nimport { MICROGONS_PER_ARGON } from './utils';\nimport BigNumber from 'bignumber.js';\nimport { ApiDecoration } from '@polkadot/api/types';\n\nconst SATS_PER_BTC = 100_000_000n;\n\nexport class PriceIndex {\n btcUsdPrice?: BigNumber;\n argonotUsdPrice?: BigNumber;\n argonUsdPrice?: BigNumber;\n argonUsdTargetPrice?: BigNumber;\n argonTimeWeightedAverageLiquidity?: BigNumber;\n lastUpdatedTick?: number;\n\n async load(client: ArgonClient | ApiDecoration<'promise'>): Promise<this> {\n const current = await client.query.priceIndex.current();\n if (!current.isSome) {\n this.argonUsdPrice = undefined;\n this.argonotUsdPrice = undefined;\n this.btcUsdPrice = undefined;\n this.argonUsdTargetPrice = undefined;\n this.argonTimeWeightedAverageLiquidity = undefined;\n this.lastUpdatedTick = undefined;\n return this;\n }\n const value = current.unwrap();\n\n this.btcUsdPrice = fromFixedNumber(value.btcUsdPrice.toBigInt(), FIXED_U128_DECIMALS);\n this.argonotUsdPrice = fromFixedNumber(value.argonotUsdPrice.toBigInt(), FIXED_U128_DECIMALS);\n this.argonUsdPrice = fromFixedNumber(value.argonUsdPrice.toBigInt(), FIXED_U128_DECIMALS);\n this.argonUsdTargetPrice = fromFixedNumber(\n value.argonUsdTargetPrice.toBigInt(),\n FIXED_U128_DECIMALS,\n );\n this.argonTimeWeightedAverageLiquidity = fromFixedNumber(\n value.argonTimeWeightedAverageLiquidity.toBigInt(),\n FIXED_U128_DECIMALS,\n );\n this.lastUpdatedTick = value.tick.toNumber();\n return this;\n }\n\n getSatoshiPriceInMarketMicrogons(satoshis: bigint | number): bigint {\n if (this.btcUsdPrice === undefined || this.argonUsdPrice === undefined) {\n throw new Error('PriceIndex not loaded');\n }\n\n const satoshiCents = this.btcUsdPrice.multipliedBy(satoshis).dividedBy(SATS_PER_BTC);\n\n const microgons = satoshiCents.multipliedBy(MICROGONS_PER_ARGON).dividedBy(this.argonUsdPrice);\n return BigInt(microgons.integerValue(BigNumber.ROUND_DOWN).toString());\n }\n\n getSatoshiPriceInTargetMicrogons(satoshis: bigint | number): bigint {\n if (this.btcUsdPrice === undefined || this.argonUsdTargetPrice === undefined) {\n throw new Error('PriceIndex not loaded');\n }\n\n const satoshiCents = this.btcUsdPrice.multipliedBy(satoshis).dividedBy(SATS_PER_BTC);\n\n const microgons = satoshiCents\n .multipliedBy(MICROGONS_PER_ARGON)\n .dividedBy(this.argonUsdTargetPrice);\n return BigInt(microgons.integerValue(BigNumber.ROUND_DOWN).toString());\n }\n\n get rValue(): BigNumber {\n if (this.argonUsdTargetPrice === undefined || this.argonUsdPrice === undefined) {\n throw new Error('PriceIndex not loaded');\n }\n return this.argonUsdPrice.div(this.argonUsdTargetPrice);\n }\n\n get argonCpi(): BigNumber {\n if (this.argonUsdTargetPrice === undefined || this.argonUsdPrice === undefined) {\n throw new Error('PriceIndex not loaded');\n }\n const ratio = this.argonUsdTargetPrice.div(this.argonUsdPrice);\n return ratio.minus(1);\n }\n}\n","{\n \"_format\": \"hh3-artifact-1\",\n \"contractName\": \"MintingGateway\",\n \"sourceName\": \"contracts/MintingGateway.sol\",\n \"abi\": [\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"argonTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"argonotTokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [],\n \"name\": \"ArrayLengthMismatch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"EnforcedPause\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ExpectedPause\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"caller\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"NotGuardianOrOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableInvalidOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"UnsupportedToken\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAdminSafe\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAmount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroGuardian\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ZeroRecipient\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"recipientCount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"totalAmountBaseUnits\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"AdminMintBatch\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amountBaseUnits\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"argonDestination\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"accountNonce\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"BurnForTransfer\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousGuardian\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newGuardian\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"GuardianUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Paused\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Unpaused\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"RUNTIME_DECIMALS\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"RUNTIME_TO_ERC20_SCALE\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"TOKEN_DECIMALS\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"accountNonces\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"nonce\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address[]\",\n \"name\": \"recipients\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amountsBaseUnits\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"adminMintBatch\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"argonToken\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"argonotToken\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amountBaseUnits\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"argonDestination\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"burnForTransfer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"guardian\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adminSafe\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"guardianAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"pause\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"paused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"guardianAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setGuardian\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"amountBaseUnits\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"toTokenAmount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"unpause\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n ],\n \"bytecode\": \"0x60c060405234801561001057600080fd5b506040516110c13803806110c183398101604081905261002f9161011f565b6001600160a01b03808316608052811660a05261004a610051565b5050610152565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a15760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101005780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461011a57600080fd5b919050565b6000806040838503121561013257600080fd5b61013b83610103565b915061014960208401610103565b90509250929050565b60805160a051610f3c610185600039600081816101460152610ab40152600081816102580152610a770152610f3c6000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780638a0dac4a116100715780638a0dac4a146102825780638da5cb5b14610295578063beabb5911461029d578063c9bb2de7146102a5578063f2fde38b146102b857600080fd5b8063715018a6146102385780637a2660401461024057806383a4d591146102535780638456cb591461027a57600080fd5b8063485cc955116100e9578063485cc9551461019d578063580f6da2146101b057806359b23872146101f35780635b7f415c146101fb5780635c975abb1461021557600080fd5b8063174e4ea61461011b5780631e07f89e146101415780633f4ba83a14610180578063452a93201461018a575b600080fd5b61012e610129366004610bd2565b6102cb565b6040519081526020015b60405180910390f35b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610138565b6101886102f4565b005b600154610168906001600160a01b031681565b6101886101ab366004610c07565b610306565b6101da6101be366004610c3a565b60006020819052908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610138565b61012e610474565b610203601281565b60405160ff9091168152602001610138565b600080516020610ee78339815191525460ff166040519015158152602001610138565b61018861048e565b61018861024e366004610c5c565b6104a0565b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6101886105ef565b610188610290366004610c3a565b610650565b6101686106d1565b610203600681565b6101886102b3366004610cdb565b6106ff565b6101886102c6366004610c3a565b6108c1565b60006102d960066012610d72565b6102e490600a610e6f565b6102ee9083610e7e565b92915050565b6102fc6108ff565b610304610931565b565b6000610310610991565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156103385750825b905060008267ffffffffffffffff1660011480156103555750303b155b905081158015610363575080155b156103815760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156103ab57845460ff60401b1916600160401b1785555b6001600160a01b0387166103d2576040516314030c0360e11b815260040160405180910390fd5b6001600160a01b0386166103f95760405163a91f6a8960e01b815260040160405180910390fd5b610402876109ba565b61040a6109cb565b600180546001600160a01b0319166001600160a01b038816179055831561046b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b61048060066012610d72565b61048b90600a610e6f565b81565b6104966108ff565b61030460006109d3565b6104a8610a44565b6104b183610a75565b816000036104d257604051631f2a200560e01b815260040160405180910390fd5b826001600160a01b03166379cc6790336104eb856102cb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b505033600090815260208190526040812054909250610570915067ffffffffffffffff166001610e95565b3360008181526020818152604091829020805467ffffffffffffffff861667ffffffffffffffff19909116811790915582518881529182018790528183015290519293506001600160a01b038716927f805e16cfddeedbafc2c9e510cc99d489152ee3d1179eb6a6ca444404a493af4b9181900360600190a350505050565b6001546001600160a01b03163314801590610623575061060d6106d1565b6001600160a01b0316336001600160a01b031614155b156106485760405163354de03160e21b81523360048201526024015b60405180910390fd5b610304610b12565b6106586108ff565b6001600160a01b03811661067f5760405163a91f6a8960e01b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad90990600090a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6107076108ff565b61070f610a44565b61071885610a75565b8281146107385760405163512509d360e11b815260040160405180910390fd5b6000805b8481101561087457600086868381811061075857610758610ebd565b905060200201602081019061076d9190610c3a565b9050600085858481811061078357610783610ebd565b60200291909101359150506001600160a01b0382166107b857604051633bca2f5160e21b81526004810184905260240161063f565b806000036107d957604051631f2a200560e01b815260040160405180910390fd5b886001600160a01b03166340c10f19836107f2846102cb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561083857600080fd5b505af115801561084c573d6000803e3d6000fd5b50505050808461085c9190610ed3565b9350505060018161086d9190610ed3565b905061073c565b5060408051858152602081018390526001600160a01b038816917fb5791f4c0829e9abbbdf2a5da78d8f7a8d1890cfb8fd057bcbb0d5cf1309ce1a910160405180910390a2505050505050565b6108c96108ff565b6001600160a01b0381166108f357604051631e4fbdf760e01b81526000600482015260240161063f565b6108fc816109d3565b50565b336109086106d1565b6001600160a01b0316146103045760405163118cdaa760e01b815233600482015260240161063f565b610939610b5b565b600080516020610ee7833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102ee565b6109c2610b8b565b6108fc81610bb0565b610304610b8b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600080516020610ee78339815191525460ff16156103045760405163d93c066560e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614158015610ae957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b156108fc57604051635f8b555b60e11b81526001600160a01b038216600482015260240161063f565b610b1a610a44565b600080516020610ee7833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610973565b600080516020610ee78339815191525460ff1661030457604051638dfc202b60e01b815260040160405180910390fd5b610b93610bb8565b61030457604051631afcd79f60e31b815260040160405180910390fd5b6108c9610b8b565b6000610bc2610991565b54600160401b900460ff16919050565b600060208284031215610be457600080fd5b5035919050565b80356001600160a01b0381168114610c0257600080fd5b919050565b60008060408385031215610c1a57600080fd5b610c2383610beb565b9150610c3160208401610beb565b90509250929050565b600060208284031215610c4c57600080fd5b610c5582610beb565b9392505050565b600080600060608486031215610c7157600080fd5b610c7a84610beb565b95602085013595506040909401359392505050565b60008083601f840112610ca157600080fd5b50813567ffffffffffffffff811115610cb957600080fd5b6020830191508360208260051b8501011115610cd457600080fd5b9250929050565b600080600080600060608688031215610cf357600080fd5b610cfc86610beb565b9450602086013567ffffffffffffffff80821115610d1957600080fd5b610d2589838a01610c8f565b90965094506040880135915080821115610d3e57600080fd5b50610d4b88828901610c8f565b969995985093965092949392505050565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ee576102ee610d5c565b600181815b80851115610dc6578160001904821115610dac57610dac610d5c565b80851615610db957918102915b93841c9390800290610d90565b509250929050565b600082610ddd575060016102ee565b81610dea575060006102ee565b8160018114610e005760028114610e0a57610e26565b60019150506102ee565b60ff841115610e1b57610e1b610d5c565b50506001821b6102ee565b5060208310610133831016604e8410600b8410161715610e49575081810a6102ee565b610e538383610d8b565b8060001904821115610e6757610e67610d5c565b029392505050565b6000610c5560ff841683610dce565b80820281158282048414176102ee576102ee610d5c565b67ffffffffffffffff818116838216019080821115610eb657610eb6610d5c565b5092915050565b634e487b7160e01b600052603260045260246000fd5b808201808211156102ee576102ee610d5c56fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220c9b6c5df781f566a70eec22a57a76b3a89e7a0dfd58c0f8d4d63c818b79c6da164736f6c63430008180033\",\n \"deployedBytecode\": \"0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780638a0dac4a116100715780638a0dac4a146102825780638da5cb5b14610295578063beabb5911461029d578063c9bb2de7146102a5578063f2fde38b146102b857600080fd5b8063715018a6146102385780637a2660401461024057806383a4d591146102535780638456cb591461027a57600080fd5b8063485cc955116100e9578063485cc9551461019d578063580f6da2146101b057806359b23872146101f35780635b7f415c146101fb5780635c975abb1461021557600080fd5b8063174e4ea61461011b5780631e07f89e146101415780633f4ba83a14610180578063452a93201461018a575b600080fd5b61012e610129366004610bd2565b6102cb565b6040519081526020015b60405180910390f35b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610138565b6101886102f4565b005b600154610168906001600160a01b031681565b6101886101ab366004610c07565b610306565b6101da6101be366004610c3a565b60006020819052908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610138565b61012e610474565b610203601281565b60405160ff9091168152602001610138565b600080516020610ee78339815191525460ff166040519015158152602001610138565b61018861048e565b61018861024e366004610c5c565b6104a0565b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6101886105ef565b610188610290366004610c3a565b610650565b6101686106d1565b610203600681565b6101886102b3366004610cdb565b6106ff565b6101886102c6366004610c3a565b6108c1565b60006102d960066012610d72565b6102e490600a610e6f565b6102ee9083610e7e565b92915050565b6102fc6108ff565b610304610931565b565b6000610310610991565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156103385750825b905060008267ffffffffffffffff1660011480156103555750303b155b905081158015610363575080155b156103815760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156103ab57845460ff60401b1916600160401b1785555b6001600160a01b0387166103d2576040516314030c0360e11b815260040160405180910390fd5b6001600160a01b0386166103f95760405163a91f6a8960e01b815260040160405180910390fd5b610402876109ba565b61040a6109cb565b600180546001600160a01b0319166001600160a01b038816179055831561046b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b61048060066012610d72565b61048b90600a610e6f565b81565b6104966108ff565b61030460006109d3565b6104a8610a44565b6104b183610a75565b816000036104d257604051631f2a200560e01b815260040160405180910390fd5b826001600160a01b03166379cc6790336104eb856102cb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b505033600090815260208190526040812054909250610570915067ffffffffffffffff166001610e95565b3360008181526020818152604091829020805467ffffffffffffffff861667ffffffffffffffff19909116811790915582518881529182018790528183015290519293506001600160a01b038716927f805e16cfddeedbafc2c9e510cc99d489152ee3d1179eb6a6ca444404a493af4b9181900360600190a350505050565b6001546001600160a01b03163314801590610623575061060d6106d1565b6001600160a01b0316336001600160a01b031614155b156106485760405163354de03160e21b81523360048201526024015b60405180910390fd5b610304610b12565b6106586108ff565b6001600160a01b03811661067f5760405163a91f6a8960e01b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad90990600090a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6107076108ff565b61070f610a44565b61071885610a75565b8281146107385760405163512509d360e11b815260040160405180910390fd5b6000805b8481101561087457600086868381811061075857610758610ebd565b905060200201602081019061076d9190610c3a565b9050600085858481811061078357610783610ebd565b60200291909101359150506001600160a01b0382166107b857604051633bca2f5160e21b81526004810184905260240161063f565b806000036107d957604051631f2a200560e01b815260040160405180910390fd5b886001600160a01b03166340c10f19836107f2846102cb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561083857600080fd5b505af115801561084c573d6000803e3d6000fd5b50505050808461085c9190610ed3565b9350505060018161086d9190610ed3565b905061073c565b5060408051858152602081018390526001600160a01b038816917fb5791f4c0829e9abbbdf2a5da78d8f7a8d1890cfb8fd057bcbb0d5cf1309ce1a910160405180910390a2505050505050565b6108c96108ff565b6001600160a01b0381166108f357604051631e4fbdf760e01b81526000600482015260240161063f565b6108fc816109d3565b50565b336109086106d1565b6001600160a01b0316146103045760405163118cdaa760e01b815233600482015260240161063f565b610939610b5b565b600080516020610ee7833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102ee565b6109c2610b8b565b6108fc81610bb0565b610304610b8b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600080516020610ee78339815191525460ff16156103045760405163d93c066560e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614158015610ae957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b156108fc57604051635f8b555b60e11b81526001600160a01b038216600482015260240161063f565b610b1a610a44565b600080516020610ee7833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610973565b600080516020610ee78339815191525460ff1661030457604051638dfc202b60e01b815260040160405180910390fd5b610b93610bb8565b61030457604051631afcd79f60e31b815260040160405180910390fd5b6108c9610b8b565b6000610bc2610991565b54600160401b900460ff16919050565b600060208284031215610be457600080fd5b5035919050565b80356001600160a01b0381168114610c0257600080fd5b919050565b60008060408385031215610c1a57600080fd5b610c2383610beb565b9150610c3160208401610beb565b90509250929050565b600060208284031215610c4c57600080fd5b610c5582610beb565b9392505050565b600080600060608486031215610c7157600080fd5b610c7a84610beb565b95602085013595506040909401359392505050565b60008083601f840112610ca157600080fd5b50813567ffffffffffffffff811115610cb957600080fd5b6020830191508360208260051b8501011115610cd457600080fd5b9250929050565b600080600080600060608688031215610cf357600080fd5b610cfc86610beb565b9450602086013567ffffffffffffffff80821115610d1957600080fd5b610d2589838a01610c8f565b90965094506040880135915080821115610d3e57600080fd5b50610d4b88828901610c8f565b969995985093965092949392505050565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ee576102ee610d5c565b600181815b80851115610dc6578160001904821115610dac57610dac610d5c565b80851615610db957918102915b93841c9390800290610d90565b509250929050565b600082610ddd575060016102ee565b81610dea575060006102ee565b8160018114610e005760028114610e0a57610e26565b60019150506102ee565b60ff841115610e1b57610e1b610d5c565b50506001821b6102ee565b5060208310610133831016604e8410600b8410161715610e49575081810a6102ee565b610e538383610d8b565b8060001904821115610e6757610e67610d5c565b029392505050565b6000610c5560ff841683610dce565b80820281158282048414176102ee576102ee610d5c565b67ffffffffffffffff818116838216019080821115610eb657610eb6610d5c565b5092915050565b634e487b7160e01b600052603260045260246000fd5b808201808211156102ee576102ee610d5c56fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220c9b6c5df781f566a70eec22a57a76b3a89e7a0dfd58c0f8d4d63c818b79c6da164736f6c63430008180033\",\n \"linkReferences\": {},\n \"deployedLinkReferences\": {},\n \"immutableReferences\": {\n \"3085\": [\n {\n \"length\": 32,\n \"start\": 600\n },\n {\n \"length\": 32,\n \"start\": 2679\n }\n ],\n \"3087\": [\n {\n \"length\": 32,\n \"start\": 326\n },\n {\n \"length\": 32,\n \"start\": 2740\n }\n ]\n },\n \"inputSourceName\": \"project/contracts/MintingGateway.sol\",\n \"buildInfoId\": \"solc-0_8_24-c1abbf3880b0cf6b80fd72b19706058829075e56\"\n}","export const MINTING_GATEWAY_BURN_FOR_TRANSFER_EVENT_NAME = 'BurnForTransfer' as const;\nexport const MINTING_GATEWAY_RUNTIME_DECIMALS = 6;\nexport const MINTING_GATEWAY_TOKEN_DECIMALS = 18;\nexport const MINTING_GATEWAY_RUNTIME_TO_ERC20_SCALE =\n 10n ** BigInt(MINTING_GATEWAY_TOKEN_DECIMALS - MINTING_GATEWAY_RUNTIME_DECIMALS);\n\nexport { default as argonTokenArtifact } from './artifacts/contracts/ArgonToken.sol/ArgonToken.json';\nexport { default as argonotTokenArtifact } from './artifacts/contracts/ArgonotToken.sol/ArgonotToken.json';\nexport { default as mintingGatewayArtifact } from './artifacts/contracts/MintingGateway.sol/MintingGateway.json';\nexport { default as proxyAdminArtifact } from './artifacts/contracts/ProxyArtifacts.sol/ProxyAdmin.json';\nexport { default as transparentUpgradeableProxyArtifact } from './artifacts/contracts/ProxyArtifacts.sol/TransparentUpgradeableProxy.json';\n","import { createBlockHeaderFromRPC, type JSONRPCBlock } from '@ethereumjs/block';\nimport { createMerkleProof, createMPT, verifyMPTWithMerkleProof } from '@ethereumjs/mpt';\nimport {\n MINTING_GATEWAY_BURN_FOR_TRANSFER_EVENT_NAME,\n mintingGatewayArtifact,\n} from '@argonprotocol/ethereum-contracts';\nimport type { IArgonQueryable } from './index';\nimport {\n bytesToHex,\n createPublicClient,\n encodeEventTopics,\n getAddress,\n type Hex,\n hexToBytes,\n http,\n toHex,\n toRlp,\n} from 'viem';\n\ntype VerifyEventLog = IArgonQueryable['call']['ethereumApis']['verifyEventLog'];\nexport type EthereumVerifyEventLogResult = Awaited<ReturnType<VerifyEventLog>>;\ntype EthGetBlockByHashRpc = {\n Method: 'eth_getBlockByHash';\n Parameters: [Hex, true];\n ReturnType: JSONRPCBlock;\n};\ntype EthGetBlockByNumberRpc = {\n Method: 'eth_getBlockByNumber';\n Parameters: [Hex, true];\n ReturnType: JSONRPCBlock;\n};\n\nexport type EthereumReceipt = Awaited<\n ReturnType<ReturnType<typeof createPublicClient>['getTransactionReceipt']>\n>;\nexport type EthereumExecutionClient = ReturnType<typeof createPublicClient>;\nexport type RetainedExecutionAnchor = {\n blockHash: Hex;\n blockNumber: bigint;\n};\n\nexport type EthereumEventLocator = {\n txHash: Hex;\n logIndex?: number;\n executionRpcUrl?: string;\n executionClient?: EthereumExecutionClient;\n receipt?: EthereumReceipt;\n};\n\nexport type EthereumEventLog = {\n address: Hex;\n topics: Hex[];\n data: Hex;\n};\n\nexport type EthereumExecutionHeaderProof = {\n rlp: Hex;\n};\n\nexport type EthereumExecutionBlockProof = {\n anchorBlockHash: Hex;\n targetToAnchorHeaderChain: EthereumExecutionHeaderProof[];\n};\n\nexport type EthereumReceiptProof = {\n transactionIndex: number;\n nodes: Hex[];\n};\n\nexport type EthereumEventProof = {\n eventLog: EthereumEventLog;\n proof: {\n executionBlockProof: EthereumExecutionBlockProof;\n receiptProof: EthereumReceiptProof;\n };\n};\n\nconst ethereumBurnForTransferTopic = encodeEventTopics({\n abi: mintingGatewayArtifact.abi,\n eventName: MINTING_GATEWAY_BURN_FOR_TRANSFER_EVENT_NAME,\n})[0]?.toLowerCase();\n\nexport function encodeReceiptTrieKey(transactionIndex: number): Uint8Array {\n return transactionIndex === 0 ? Uint8Array.from([0x80]) : toRlp(toHex(transactionIndex), 'bytes');\n}\n\nexport function encodeEthereumReceiptForProof(receipt: EthereumReceipt): Uint8Array {\n const payload = toRlp(\n [\n receipt.root ?? (receipt.status === 'success' ? '0x1' : '0x0'),\n toHex(receipt.cumulativeGasUsed),\n receipt.logsBloom,\n receipt.logs.map(log => [log.address, [...log.topics], log.data]),\n ],\n 'bytes',\n );\n\n switch (receipt.type) {\n case 'legacy':\n return payload;\n case 'eip2930':\n return Uint8Array.from([...hexToBytes('0x01'), ...payload]);\n case 'eip1559':\n return Uint8Array.from([...hexToBytes('0x02'), ...payload]);\n case 'eip4844':\n return Uint8Array.from([...hexToBytes('0x03'), ...payload]);\n case 'eip7702':\n return Uint8Array.from([...hexToBytes('0x04'), ...payload]);\n default:\n throw new Error(`Unsupported Ethereum receipt type ${String(receipt.type)}`);\n }\n}\n\nexport async function buildEthereumEventProof(\n client: IArgonQueryable,\n { txHash, logIndex = 0, receipt: providedReceipt, ...executionSource }: EthereumEventLocator,\n): Promise<EthereumEventProof> {\n const executionClient = getExecutionClient(executionSource);\n const receipt = await loadEthereumReceipt(txHash, providedReceipt, executionClient);\n const log = receipt.logs[logIndex];\n\n if (!log) throw new Error(`Missing log ${logIndex} in receipt ${txHash}`);\n\n const [targetHeader, anchor] = await Promise.all([\n loadExecutionHeader(executionClient, receipt.blockHash),\n getLatestRetainedAnchor(client),\n ]);\n\n if (anchor.blockNumber < targetHeader.number) {\n throw new Error(\n `Latest retained execution anchor ${anchor.blockHash} is behind target block ${receipt.blockHash}; wait for relayer sync`,\n );\n }\n\n const [headerChain, receiptProofNodes] = await Promise.all([\n buildExecutionHeaderChain(executionClient, targetHeader.number, anchor.blockNumber),\n buildReceiptProofNodes(\n executionClient,\n receipt.blockHash,\n receipt.transactionIndex,\n bytesToHex(targetHeader.receiptTrie),\n ),\n ]);\n\n const eventLog: EthereumEventProof['eventLog'] = {\n address: log.address,\n topics: [...log.topics],\n data: log.data,\n };\n const proof: EthereumEventProof['proof'] = {\n executionBlockProof: {\n anchorBlockHash: anchor.blockHash,\n targetToAnchorHeaderChain: headerChain.map(rlp => ({ rlp })),\n },\n receiptProof: {\n transactionIndex: receipt.transactionIndex,\n nodes: receiptProofNodes,\n },\n };\n\n return { eventLog, proof };\n}\n\nexport function findEthereumBurnForTransferLogIndex(\n receipt: EthereumReceipt,\n gatewayAddress: Hex,\n): number {\n const normalizedGatewayAddress = getAddress(gatewayAddress).toLowerCase();\n\n const index = receipt.logs.findIndex(log => {\n return (\n log.address.toLowerCase() === normalizedGatewayAddress &&\n log.topics[0]?.toLowerCase() === ethereumBurnForTransferTopic\n );\n });\n\n if (index === -1) {\n throw new Error(\n `Ethereum receipt ${receipt.transactionHash} did not emit BurnForTransfer from gateway ${gatewayAddress}`,\n );\n }\n\n return index;\n}\n\nexport async function getLatestRetainedAnchor(\n client: IArgonQueryable,\n): Promise<RetainedExecutionAnchor> {\n const verifierQuery = client.query.ethereumVerifier;\n const latestAnchorHash = await verifierQuery.latestExecutionHeaderAnchorBlockHash();\n\n if (latestAnchorHash.isNone) {\n throw new Error(\n 'No retained ethereum execution anchor is available yet; wait for relayer sync',\n );\n }\n\n const blockHash = latestAnchorHash.unwrap().toHex();\n const anchor = await verifierQuery.executionHeaderAnchors(blockHash);\n\n if (anchor.isNone) {\n throw new Error(`Retained ethereum execution anchor ${blockHash} is missing`);\n }\n\n return {\n blockHash,\n blockNumber: anchor.unwrap().blockNumber.toBigInt(),\n };\n}\n\nexport async function waitForRetainedExecutionAnchor(\n client: IArgonQueryable,\n targetBlockNumber: bigint,\n options: { pollMs?: number; timeoutMs?: number } = {},\n): Promise<RetainedExecutionAnchor> {\n const pollMs = options.pollMs ?? 3_000;\n const timeoutMs = options.timeoutMs ?? 5 * 60_000;\n const startedAt = Date.now();\n let lastError: Error | undefined;\n\n while (Date.now() - startedAt < timeoutMs) {\n try {\n const anchor = await getLatestRetainedAnchor(client);\n if (anchor.blockNumber >= targetBlockNumber) {\n return anchor;\n }\n } catch (error) {\n if (!(error instanceof Error)) {\n throw error;\n }\n lastError = error;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollMs));\n }\n\n throw (\n lastError ??\n new Error(\n `Retained ethereum execution anchor did not reach block ${targetBlockNumber} within ${Math.floor(timeoutMs / 1000)}s`,\n )\n );\n}\n\nfunction getExecutionClient(\n source: Pick<EthereumEventLocator, 'executionRpcUrl' | 'executionClient'>,\n): EthereumExecutionClient {\n if (source.executionClient) {\n return source.executionClient;\n }\n if (source.executionRpcUrl) {\n return createPublicClient({ transport: http(source.executionRpcUrl) });\n }\n\n throw new Error('Ethereum event proof requires an execution client or execution RPC URL');\n}\n\nasync function loadEthereumReceipt(\n txHash: Hex,\n providedReceipt: EthereumReceipt | undefined,\n executionClient: EthereumExecutionClient,\n) {\n return (\n providedReceipt ??\n (await waitForIndexed(() => executionClient.getTransactionReceipt({ hash: txHash })))\n );\n}\n\nasync function loadExecutionHeader(\n executionClient: EthereumExecutionClient,\n blockTag: Hex | bigint,\n) {\n const blockData = await waitForIndexed(() =>\n typeof blockTag === 'string'\n ? executionClient.request<EthGetBlockByHashRpc>({\n method: 'eth_getBlockByHash',\n params: [blockTag, true],\n })\n : executionClient.request<EthGetBlockByNumberRpc>({\n method: 'eth_getBlockByNumber',\n params: [toHex(blockTag), true],\n }),\n );\n const header = createBlockHeaderFromRPC(blockData);\n\n if (\n typeof blockTag === 'string' &&\n bytesToHex(header.hash()).toLowerCase() !== blockTag.toLowerCase()\n ) {\n throw new Error(`Execution header hash mismatch for block ${blockTag}`);\n }\n\n return header;\n}\n\nasync function buildExecutionHeaderChain(\n executionClient: EthereumExecutionClient,\n targetBlockNumber: bigint,\n anchorBlockNumber: bigint,\n): Promise<Hex[]> {\n const headers: Hex[] = [];\n\n for (let blockNumber = targetBlockNumber; blockNumber < anchorBlockNumber; blockNumber += 1n) {\n const header = await loadExecutionHeader(executionClient, blockNumber);\n headers.push(bytesToHex(header.serialize()));\n }\n\n return headers;\n}\n\nasync function buildReceiptProofNodes(\n executionClient: EthereumExecutionClient,\n blockHash: Hex,\n transactionIndex: number,\n receiptsRoot: Hex,\n): Promise<Hex[]> {\n const block = await waitForIndexed(() => executionClient.getBlock({ blockHash }));\n const receipts = await Promise.all(\n block.transactions.map(hash =>\n waitForIndexed(() => executionClient.getTransactionReceipt({ hash })),\n ),\n );\n\n const trie = await createMPT();\n\n for (const receipt of receipts) {\n await trie.put(\n encodeReceiptTrieKey(receipt.transactionIndex),\n encodeEthereumReceiptForProof(receipt),\n );\n }\n\n if (bytesToHex(trie.root()).toLowerCase() !== receiptsRoot.toLowerCase()) {\n throw new Error(`Receipt trie root mismatch for block ${blockHash}`);\n }\n\n const key = encodeReceiptTrieKey(transactionIndex);\n const proof = await createMerkleProof(trie, key);\n const verifiedReceipt = await verifyMPTWithMerkleProof(trie, trie.root(), key, proof);\n\n if (!verifiedReceipt) {\n throw new Error(`Receipt proof verification failed for transaction index ${transactionIndex}`);\n }\n\n return proof.map(node => bytesToHex(node));\n}\nasync function waitForIndexed<TResult>(request: () => Promise<TResult>): Promise<TResult> {\n const startedAt = Date.now();\n let lastError: Error | undefined;\n\n while (Date.now() - startedAt < 30_000) {\n try {\n return await request();\n } catch (error) {\n if (!(error instanceof Error) || !error.message.includes('indexing is in progress')) {\n throw error;\n }\n\n lastError = error;\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n\n throw lastError ?? new Error('Timed out waiting for execution RPC indexing');\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport type { SubmittableExtrinsic } from '@polkadot/api/promise/types';\nimport type {\n EthereumBeaconConfigSpecResponse,\n EthereumBeaconGenesisResponse,\n EthereumBeaconHeaderDetailsResponse,\n EthereumLightClientBootstrapResponse,\n EthereumLightClientHeader,\n EthereumLightClientUpdate,\n EthereumLightClientUpdatesResponse,\n} from './EthereumBeaconTypes';\nimport type { ArgonClient } from './index';\nimport { type Hex, hexToBytes } from 'viem';\n\ntype BeaconPreset = 'mainnet' | 'minimal';\ntype BeaconNetworkParams = {\n epochsPerSyncCommitteePeriod: bigint;\n preset: BeaconPreset;\n slotsPerEpoch: bigint;\n};\ntype EthereumBeaconSyncState =\n | {\n isBootstrapped: false;\n hasNextSyncCommittee: boolean;\n latestFinalizedBlockRoot: string;\n latestSyncCommitteeUpdatePeriod: bigint;\n headerInterval: bigint;\n }\n | {\n isBootstrapped: true;\n hasNextSyncCommittee: boolean;\n latestFinalizedBlockRoot: string;\n latestFinalizedSlot: bigint;\n nextRecommendedFinalizedSlot: bigint;\n latestSyncCommitteeUpdatePeriod: bigint;\n headerInterval: bigint;\n };\n\nconst lightClientUpdateRetryIntervalMs = 500;\nconst lightClientUpdateRetryTimeoutMs = 30_000;\nconst expectedBeaconPresetPromises = new WeakMap<ArgonClient, Promise<BeaconPreset | undefined>>();\nconst beaconNetworkParamsPromises = new Map<string, Promise<BeaconNetworkParams>>();\n\nexport async function getEthereumBeaconSyncBootstrapTx(\n client: ArgonClient,\n beaconApiUrl: string,\n): Promise<SubmittableExtrinsic> {\n const expectedPreset = await getExpectedBeaconPreset(client);\n const [genesis, spec, finalizedHeader] = await Promise.all([\n getBeaconJson<EthereumBeaconGenesisResponse>(beaconApiUrl, '/eth/v1/beacon/genesis'),\n getBeaconJson<EthereumBeaconConfigSpecResponse>(beaconApiUrl, '/eth/v1/config/spec'),\n getBeaconJson<EthereumBeaconHeaderDetailsResponse>(\n beaconApiUrl,\n '/eth/v1/beacon/headers/finalized',\n ),\n ]);\n const bootstrap = await getBeaconJson<EthereumLightClientBootstrapResponse>(\n beaconApiUrl,\n `/eth/v1/beacon/light_client/bootstrap/${finalizedHeader.data.root}`,\n );\n const specData = spec.data;\n parseBeaconNetworkParams(specData, expectedPreset);\n\n return client.tx.ethereumVerifier.forceCheckpoint(\n {\n header: camelcaseKeys(bootstrap.data.header.beacon),\n currentSyncCommittee: camelcaseKeys(bootstrap.data.current_sync_committee),\n currentSyncCommitteeBranch: bootstrap.data.current_sync_committee_branch,\n validatorsRoot: genesis.data.genesis_validators_root,\n },\n {\n genesis: {\n version: genesis.data.genesis_fork_version,\n epoch: 0n,\n },\n altair: buildFork(specData, 'ALTAIR'),\n bellatrix: buildFork(specData, 'BELLATRIX'),\n capella: buildFork(specData, 'CAPELLA'),\n deneb: buildFork(specData, 'DENEB'),\n electra: buildFork(specData, 'ELECTRA'),\n fulu: buildFork(specData, 'FULU'),\n },\n );\n}\n\nexport async function getNextEthereumBeaconSyncTxs(\n client: ArgonClient,\n beaconApiUrl: string,\n): Promise<SubmittableExtrinsic[]> {\n const state = await getEthereumBeaconSyncState(client);\n\n if (!state.isBootstrapped) {\n return [];\n }\n\n const expectedPreset = await getExpectedBeaconPreset(client);\n const beaconNetworkParams = await getBeaconNetworkParams(beaconApiUrl, expectedPreset);\n const storedPeriod = computePeriod(state.latestFinalizedSlot, beaconNetworkParams);\n const txs: SubmittableExtrinsic[] = [];\n let anchorHeader: EthereumLightClientHeader | undefined;\n const startedAt = Date.now();\n\n while (Date.now() - startedAt < lightClientUpdateRetryTimeoutMs) {\n const finalityUpdate = (\n await getBeaconJson<{ data: EthereumLightClientUpdate }>(\n beaconApiUrl,\n '/eth/v1/beacon/light_client/finality_update',\n )\n ).data;\n\n const missingNextSyncCommittee = !state.hasNextSyncCommittee;\n const finalityUpdateHasNextSyncCommittee = hasNextSyncCommitteeUpdate(finalityUpdate);\n const finalityFinalizedSlot = BigInt(finalityUpdate.finalized_header.beacon.slot);\n const finalityFinalizedPeriod = computePeriod(finalityFinalizedSlot, beaconNetworkParams);\n const needsNewSyncCommitteePeriod =\n finalityFinalizedPeriod > state.latestSyncCommitteeUpdatePeriod;\n const needsCommitteeData = missingNextSyncCommittee || needsNewSyncCommitteePeriod;\n const nextCommitteePeriod = missingNextSyncCommittee\n ? storedPeriod\n : state.latestSyncCommitteeUpdatePeriod + 1n;\n const needsCurrentPeriodUpdate =\n missingNextSyncCommittee ||\n (needsNewSyncCommitteePeriod && !finalityUpdateHasNextSyncCommittee);\n let submitUpdate: EthereumLightClientUpdate | undefined = finalityUpdate;\n\n if (needsCommitteeData && needsCurrentPeriodUpdate) {\n const periodUpdates = await getBeaconJson<EthereumLightClientUpdatesResponse>(\n beaconApiUrl,\n `/eth/v1/beacon/light_client/updates?count=1&start_period=${nextCommitteePeriod}`,\n );\n const currentPeriodUpdate = periodUpdates[0]?.data;\n const currentPeriodUpdateHasNextSyncCommittee =\n hasNextSyncCommitteeUpdate(currentPeriodUpdate);\n\n if (currentPeriodUpdateHasNextSyncCommittee) {\n submitUpdate = currentPeriodUpdate;\n } else if (!missingNextSyncCommittee && !finalityUpdateHasNextSyncCommittee) {\n submitUpdate = undefined;\n }\n }\n\n // make sure the update we choose has a supermajority of sync committee participants\n if (\n submitUpdate &&\n !hasSyncCommitteeSupermajority(submitUpdate.sync_aggregate.sync_committee_bits)\n ) {\n await new Promise(resolve => setTimeout(resolve, lightClientUpdateRetryIntervalMs));\n continue;\n }\n\n if (submitUpdate) {\n const finalizedSlot = BigInt(submitUpdate.finalized_header.beacon.slot);\n const attestedSlot = BigInt(submitUpdate.attested_header.beacon.slot);\n\n const finalizedPeriod = computePeriod(finalizedSlot, beaconNetworkParams);\n const attestedPeriod = computePeriod(attestedSlot, beaconNetworkParams);\n\n const isNewerThanStoredFinalized = finalizedSlot > state.latestFinalizedSlot;\n const hasReachedNextFinalizedWindow = finalizedSlot >= state.nextRecommendedFinalizedSlot;\n const canAdvanceFinalized = isNewerThanStoredFinalized && hasReachedNextFinalizedWindow;\n const advancesSyncCommitteePeriod = finalizedPeriod > state.latestSyncCommitteeUpdatePeriod;\n const canUseNextSyncCommittee = missingNextSyncCommittee || advancesSyncCommitteePeriod;\n const includesNextSyncCommittee =\n hasNextSyncCommitteeUpdate(submitUpdate) && canUseNextSyncCommittee;\n const fillsMissingNextSyncCommittee =\n missingNextSyncCommittee && includesNextSyncCommittee && attestedPeriod === storedPeriod;\n\n if (canAdvanceFinalized || fillsMissingNextSyncCommittee) {\n const nextSyncCommitteeUpdate = includesNextSyncCommittee\n ? {\n nextSyncCommitteeUpdate: {\n nextSyncCommittee: camelcaseKeys(submitUpdate.next_sync_committee!),\n nextSyncCommitteeBranch: submitUpdate.next_sync_committee_branch!,\n },\n }\n : {};\n txs.push(\n client.tx.ethereumVerifier.submit({\n attestedHeader: camelcaseKeys(submitUpdate.attested_header.beacon),\n syncAggregate: camelcaseKeys(submitUpdate.sync_aggregate),\n signatureSlot: submitUpdate.signature_slot,\n ...nextSyncCommitteeUpdate,\n finalizedHeader: camelcaseKeys(submitUpdate.finalized_header.beacon),\n finalityBranch: submitUpdate.finality_branch,\n }),\n );\n }\n\n if (canAdvanceFinalized) {\n anchorHeader = submitUpdate.finalized_header;\n }\n }\n\n break;\n }\n\n anchorHeader ??= await getFinalizedHeaderByRoot(beaconApiUrl, state.latestFinalizedBlockRoot);\n\n if (anchorHeader) {\n const anchorTx = await createExecutionHeaderAnchorTx(client, anchorHeader);\n if (anchorTx) {\n txs.push(anchorTx);\n }\n }\n\n return txs;\n}\n\nexport async function getEthereumBeaconSyncState(\n client: ArgonClient,\n): Promise<EthereumBeaconSyncState> {\n const latestFinalizedBlockRoot = (await client.query.ethereumVerifier.latestFinalizedBlockRoot())\n .toHex()\n .toLowerCase();\n const finalizedState =\n await client.query.ethereumVerifier.finalizedBeaconState(latestFinalizedBlockRoot);\n const latestSyncCommitteeUpdatePeriod = (\n await client.query.ethereumVerifier.latestSyncCommitteeUpdatePeriod()\n ).toBigInt();\n const headerInterval = client.consts.ethereumVerifier.freeHeadersInterval.toBigInt();\n const hasNextSyncCommittee = !(\n await client.query.ethereumVerifier.nextSyncCommittee.size()\n ).isZero();\n\n if (finalizedState.isNone) {\n return {\n isBootstrapped: false,\n hasNextSyncCommittee,\n latestFinalizedBlockRoot,\n latestSyncCommitteeUpdatePeriod,\n headerInterval,\n };\n }\n\n const latestFinalizedSlot = finalizedState.unwrap().slot.toBigInt();\n\n return {\n isBootstrapped: true,\n hasNextSyncCommittee,\n latestFinalizedBlockRoot,\n latestFinalizedSlot,\n nextRecommendedFinalizedSlot: latestFinalizedSlot + headerInterval,\n latestSyncCommitteeUpdatePeriod,\n headerInterval,\n };\n}\n\nfunction buildExecutionHeaderAnchorProof(finalizedHeader: EthereumLightClientHeader) {\n return {\n header: camelcaseKeys(finalizedHeader.beacon),\n executionHeader: buildExecutionPayloadHeader(finalizedHeader.execution),\n executionBranch: finalizedHeader.execution_branch.map(witness => witness.toLowerCase() as Hex),\n };\n}\n\nasync function createExecutionHeaderAnchorTx(\n client: ArgonClient,\n finalizedHeader: EthereumLightClientHeader,\n): Promise<SubmittableExtrinsic | undefined> {\n const executionProof = buildExecutionHeaderAnchorProof(finalizedHeader);\n const executionHeader = executionProof.executionHeader;\n const blockHash =\n 'Deneb' in executionHeader && executionHeader.Deneb\n ? executionHeader.Deneb.blockHash\n : executionHeader.Capella.blockHash;\n const existingAnchor = await client.query.ethereumVerifier.executionHeaderAnchors(blockHash);\n\n if (!existingAnchor.isNone) {\n return;\n }\n\n return client.tx.ethereumVerifier.importExecutionHeaderAnchor(executionProof);\n}\n\nasync function getFinalizedHeaderByRoot(\n beaconApiUrl: string,\n finalizedBlockRoot: string,\n): Promise<EthereumLightClientHeader | undefined> {\n const bootstrap = await getBeaconJson<EthereumLightClientBootstrapResponse>(\n beaconApiUrl,\n `/eth/v1/beacon/light_client/bootstrap/${finalizedBlockRoot}`,\n );\n\n return bootstrap.data.header;\n}\n\nfunction buildFork(spec: Record<string, string>, name: string) {\n const version = spec[`${name}_FORK_VERSION`];\n const epoch = spec[`${name}_FORK_EPOCH`];\n\n if (!version) throw new Error(`Missing beacon spec value for ${name}_FORK_VERSION`);\n if (!epoch) throw new Error(`Missing beacon spec value for ${name}_FORK_EPOCH`);\n\n return {\n version,\n epoch: BigInt(epoch),\n };\n}\n\nfunction hasNextSyncCommitteeUpdate(\n update?: Pick<EthereumLightClientUpdate, 'next_sync_committee' | 'next_sync_committee_branch'>,\n): boolean {\n return !!update?.next_sync_committee && !!update?.next_sync_committee_branch;\n}\n\nfunction buildExecutionPayloadHeader(header: EthereumLightClientHeader['execution']) {\n const executionHeader = {\n parentHash: header.parent_hash,\n feeRecipient: header.fee_recipient,\n stateRoot: header.state_root,\n receiptsRoot: header.receipts_root,\n logsBloom: header.logs_bloom,\n prevRandao: header.prev_randao,\n blockNumber: header.block_number,\n gasLimit: header.gas_limit,\n gasUsed: header.gas_used,\n timestamp: header.timestamp,\n extraData: header.extra_data,\n baseFeePerGas: header.base_fee_per_gas,\n blockHash: header.block_hash,\n transactionsRoot: header.transactions_root,\n withdrawalsRoot: header.withdrawals_root,\n };\n\n if (header.blob_gas_used && header.excess_blob_gas) {\n return {\n Deneb: {\n ...executionHeader,\n blobGasUsed: header.blob_gas_used,\n excessBlobGas: header.excess_blob_gas,\n },\n };\n }\n\n return { Capella: executionHeader };\n}\n\nfunction detectBeaconPreset(spec: Record<string, string>): BeaconPreset {\n return spec.SLOTS_PER_HISTORICAL_ROOT === '64' ? 'minimal' : 'mainnet';\n}\n\nasync function getBeaconNetworkParams(\n beaconApiUrl: string,\n expectedPreset?: BeaconPreset,\n): Promise<BeaconNetworkParams> {\n let paramsPromise = beaconNetworkParamsPromises.get(beaconApiUrl);\n\n if (!paramsPromise) {\n paramsPromise = getBeaconJson<EthereumBeaconConfigSpecResponse>(\n beaconApiUrl,\n '/eth/v1/config/spec',\n ).then(({ data }) => parseBeaconNetworkParams(data));\n beaconNetworkParamsPromises.set(beaconApiUrl, paramsPromise);\n }\n\n const beaconNetworkParams = await paramsPromise;\n\n if (beaconNetworkParams.preset !== expectedPreset) {\n throw new Error(\n `Beacon preset mismatch: chain expects ${expectedPreset}, but endpoint reports ${beaconNetworkParams.preset}`,\n );\n }\n\n return beaconNetworkParams;\n}\n\nfunction parseBeaconNetworkParams(\n spec: Record<string, string>,\n expectedPreset?: BeaconPreset,\n): BeaconNetworkParams {\n const slotsPerEpoch = spec.SLOTS_PER_EPOCH;\n const epochsPerSyncCommitteePeriod = spec.EPOCHS_PER_SYNC_COMMITTEE_PERIOD;\n\n if (!slotsPerEpoch) {\n throw new Error('Missing beacon spec value for SLOTS_PER_EPOCH');\n }\n if (!epochsPerSyncCommitteePeriod) {\n throw new Error('Missing beacon spec value for EPOCHS_PER_SYNC_COMMITTEE_PERIOD');\n }\n\n const preset = detectBeaconPreset(spec);\n\n if (expectedPreset && preset !== expectedPreset) {\n throw new Error(\n `Beacon preset mismatch: chain expects ${expectedPreset}, but endpoint reports ${preset}`,\n );\n }\n\n return {\n preset,\n slotsPerEpoch: BigInt(slotsPerEpoch),\n epochsPerSyncCommitteePeriod: BigInt(epochsPerSyncCommitteePeriod),\n };\n}\n\nasync function getExpectedBeaconPreset(client: ArgonClient): Promise<BeaconPreset | undefined> {\n let presetPromise = expectedBeaconPresetPromises.get(client);\n\n if (!presetPromise) {\n const beaconPresetQuery = (\n client.query.ethereumVerifier as {\n beaconPreset?: () => Promise<{\n isMainnet: boolean;\n isMinimal: boolean;\n toString(): string;\n }>;\n }\n ).beaconPreset;\n\n if (!beaconPresetQuery) {\n return;\n }\n\n presetPromise = beaconPresetQuery.call(client.query.ethereumVerifier).then(preset => {\n if (preset.isMainnet) {\n return 'mainnet';\n }\n if (preset.isMinimal) {\n return 'minimal';\n }\n\n throw new Error(`Unknown ethereum verifier beacon preset: ${preset.toString()}`);\n });\n expectedBeaconPresetPromises.set(client, presetPromise);\n }\n\n try {\n return await presetPromise;\n } catch (error) {\n expectedBeaconPresetPromises.delete(client);\n throw error;\n }\n}\n\nfunction computePeriod(slot: bigint, beaconNetworkParams: BeaconNetworkParams) {\n return (\n slot / beaconNetworkParams.slotsPerEpoch / beaconNetworkParams.epochsPerSyncCommitteePeriod\n );\n}\n\nfunction hasSyncCommitteeSupermajority(syncCommitteeBits: string) {\n const bytes = hexToBytes(syncCommitteeBits as Hex);\n const totalBits = bytes.length * 8;\n const participants = bytes.reduce((total, byte) => {\n let count = 0;\n\n for (let value = byte; value > 0; value >>= 1) {\n count += value & 1;\n }\n\n return total + count;\n }, 0);\n\n return participants * 3 >= totalBits * 2;\n}\n\nasync function getBeaconJson<T>(beaconApiUrl: string, path: string): Promise<T> {\n const response = await fetch(\n new URL(path, beaconApiUrl.endsWith('/') ? beaconApiUrl : `${beaconApiUrl}/`),\n );\n\n if (!response.ok) {\n throw new Error(\n `Beacon API request failed for ${path}: ${response.status} ${response.statusText}`,\n );\n }\n\n return (await response.json()) as T;\n}\n"]}
|