From 8529e2718f6b6c1c55bef3851a02a6325b22a8ad Mon Sep 17 00:00:00 2001 From: Hugo Trentesaux <hugo@trentesaux.fr> Date: Sun, 19 Feb 2023 19:25:27 +0100 Subject: [PATCH] cargo xtask gen-calls-doc and update metadata --- docs/api/runtime-calls.md | 253 ++++++++++++++++++++------------------ resources/metadata.scale | Bin 127710 -> 131886 bytes 2 files changed, 135 insertions(+), 118 deletions(-) diff --git a/docs/api/runtime-calls.md b/docs/api/runtime-calls.md index ad32cf07e..42672b72f 100644 --- a/docs/api/runtime-calls.md +++ b/docs/api/runtime-calls.md @@ -25,7 +25,7 @@ There are **68** user calls from **21** pallets. when: T::BlockNumber maybe_periodic: Option<schedule::Period<T::BlockNumber>> priority: schedule::Priority -call: Box<CallOrHashOf<T>> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -50,11 +50,11 @@ Cancel an anonymously scheduled task. <details><summary><code>schedule_named(id, when, maybe_periodic, priority, call)</code></summary> ```rust -id: Vec<u8> +id: TaskName when: T::BlockNumber maybe_periodic: Option<schedule::Period<T::BlockNumber>> priority: schedule::Priority -call: Box<CallOrHashOf<T>> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -66,7 +66,7 @@ Schedule a named task. <details><summary><code>cancel_named(id)</code></summary> ```rust -id: Vec<u8> +id: TaskName ``` </details> @@ -81,7 +81,7 @@ Cancel a named scheduled task. after: T::BlockNumber maybe_periodic: Option<schedule::Period<T::BlockNumber>> priority: schedule::Priority -call: Box<CallOrHashOf<T>> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -94,11 +94,11 @@ Anonymously schedule a task after a delay. <details><summary><code>schedule_named_after(id, after, maybe_periodic, priority, call)</code></summary> ```rust -id: Vec<u8> +id: TaskName after: T::BlockNumber maybe_periodic: Option<schedule::Period<T::BlockNumber>> priority: schedule::Priority -call: Box<CallOrHashOf<T>> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -131,7 +131,7 @@ be reported. <details><summary><code>transfer(dest, value)</code></summary> ```rust -dest: <T::Lookup as StaticLookup>::Source +dest: AccountIdLookupOf<T> value: T::Balance ``` </details> @@ -151,7 +151,7 @@ The dispatch origin for this call must be `Signed` by the transactor. <details><summary><code>transfer_keep_alive(dest, value)</code></summary> ```rust -dest: <T::Lookup as StaticLookup>::Source +dest: AccountIdLookupOf<T> value: T::Balance ``` </details> @@ -169,7 +169,7 @@ origin account. <details><summary><code>transfer_all(dest, keep_alive)</code></summary> ```rust -dest: <T::Lookup as StaticLookup>::Source +dest: AccountIdLookupOf<T> keep_alive: bool ``` </details> @@ -265,7 +265,7 @@ and the remaining amount to another account. </details> - +ask to leave the set of validators two sessions after #### go_online - 1 @@ -276,7 +276,7 @@ and the remaining amount to another account. </details> - +ask to join the set of validators two sessions after #### set_session_keys - 2 @@ -288,7 +288,7 @@ keys: T::KeysWrapper </details> - +declare new session keys to replace current ones ### Grandpa - 15 @@ -356,6 +356,11 @@ hash: T::Hash Clear an unrequested preimage from the runtime storage. +If `len` is provided, then it will be a much cheaper operation. + +- `hash`: The hash of the preimage to be removed from the store. +- `len`: The length of the preimage of `hash`. + #### request_preimage - 2 <details><summary><code>request_preimage(hash)</code></summary> @@ -443,7 +448,39 @@ Transaction fees will be waived if the member is voting on any particular propos for the first time and the call is successful. Subsequent vote changes will charge a fee. -#### close - 4 +#### close_old_weight - 4 + +<details><summary><code>close_old_weight(proposal_hash, index, proposal_weight_bound, length_bound)</code></summary> + +```rust +proposal_hash: T::Hash +index: ProposalIndex +proposal_weight_bound: OldWeight +length_bound: u32 +``` +</details> + + +Close a vote that is either approved, disapproved or whose voting period has ended. + +May be called by any signed account in order to finish voting and close the proposal. + +If called before the end of the voting period it will only close the vote if it is +has enough votes to be approved or disapproved. + +If called after the end of the voting period abstentions are counted as rejections +unless there is a prime member set and the prime member cast an approval. + +If the close operation completes successfully with disapproval, the transaction fee will +be waived. Otherwise execution of the approved operation will be charged to the caller. + ++ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed +proposal. ++ `length_bound`: The upper bound for the length of the proposal in storage. Checked via +`storage::read` so it is `size_of::<u32>() == 4` larger than the pure length. + + +#### close - 6 <details><summary><code>close(proposal_hash, index, proposal_weight_bound, length_bound)</code></summary> @@ -514,19 +551,6 @@ value: BalanceOf<T> Transfer some liquid free balance to another account, in milliUD. -#### force_set_first_eligible_ud - 3 - -<details><summary><code>force_set_first_eligible_ud(who, first_eligible_ud)</code></summary> - -```rust -who: T::AccountId -first_eligible_ud: FirstEligibleUd -``` -</details> - - - - ### Identity - 41 #### create_identity - 0 @@ -571,7 +595,7 @@ idty_index: T::IdtyIndex </details> - +validate the owned identity (must meet the main wot requirements) #### change_owner_key - 3 @@ -624,22 +648,10 @@ inc: bool </details> - +change sufficient ref count for given key ### Membership - 42 -#### request_membership - 1 - -<details><summary><code>request_membership(metadata)</code></summary> - -```rust -metadata: T::MetaData -``` -</details> - - - - #### renew_membership - 3 <details><summary><code>renew_membership(maybe_idty_id)</code></summary> @@ -650,7 +662,7 @@ maybe_idty_id: Option<T::IdtyId> </details> - +extend the validity period of an active membership ### Cert - 43 @@ -683,7 +695,21 @@ metadata: T::MetaData </details> +submit a membership request (must have a declared identity) +(only available for sub wot, automatic for main wot) + +#### claim_membership - 2 +<details><summary><code>claim_membership(maybe_idty_id)</code></summary> + +```rust +maybe_idty_id: Option<T::IdtyId> +``` +</details> + + +claim that the previously requested membership fullfills the requirements +(only available for sub wot, automatic for main wot) #### renew_membership - 3 @@ -695,7 +721,7 @@ maybe_idty_id: Option<T::IdtyId> </details> - +extend the validity period of an active membership #### revoke_membership - 4 @@ -707,7 +733,8 @@ maybe_idty_id: Option<T::IdtyId> </details> - +revoke an active membership +(only available for sub wot, automatic for main wot) ### SmithsCert - 53 @@ -801,7 +828,7 @@ The dispatch origin for this call must be _Signed_. ```rust other_signatories: Vec<T::AccountId> -call: Box<<T as Config>::Call> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -819,14 +846,13 @@ Result is equivalent to the dispatched result. #### as_multi - 1 -<details><summary><code>as_multi(threshold, other_signatories, maybe_timepoint, call, store_call, max_weight)</code></summary> +<details><summary><code>as_multi(threshold, other_signatories, maybe_timepoint, call, max_weight)</code></summary> ```rust threshold: u16 other_signatories: Vec<T::AccountId> maybe_timepoint: Option<Timepoint<T::BlockNumber>> -call: OpaqueCall<T> -store_call: bool +call: Box<<T as Config>::RuntimeCall> max_weight: Weight ``` </details> @@ -941,9 +967,9 @@ Request a randomness <details><summary><code>proxy(real, force_proxy_type, call)</code></summary> ```rust -real: T::AccountId +real: AccountIdLookupOf<T> force_proxy_type: Option<T::ProxyType> -call: Box<<T as Config>::Call> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -960,13 +986,12 @@ Parameters: - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. - `call`: The call to be made by the `real` account. - #### add_proxy - 1 <details><summary><code>add_proxy(delegate, proxy_type, delay)</code></summary> ```rust -delegate: T::AccountId +delegate: AccountIdLookupOf<T> proxy_type: T::ProxyType delay: T::BlockNumber ``` @@ -983,13 +1008,12 @@ Parameters: - `delay`: The announcement period required of the initial proxy. Will generally be zero. - #### remove_proxy - 2 <details><summary><code>remove_proxy(delegate, proxy_type, delay)</code></summary> ```rust -delegate: T::AccountId +delegate: AccountIdLookupOf<T> proxy_type: T::ProxyType delay: T::BlockNumber ``` @@ -1004,7 +1028,6 @@ Parameters: - `proxy`: The account that the `caller` would like to remove as a proxy. - `proxy_type`: The permissions currently enabled for the removed proxy account. - #### remove_proxies - 3 <details><summary><code>remove_proxies()</code></summary> @@ -1018,13 +1041,12 @@ Unregister all proxy accounts for the sender. The dispatch origin for this call must be _Signed_. -WARNING: This may be called on accounts created by `anonymous`, however if done, then +WARNING: This may be called on accounts created by `pure`, however if done, then the unreserved fees will be inaccessible. **All access to this account will be lost.** +#### create_pure - 4 -#### anonymous - 4 - -<details><summary><code>anonymous(proxy_type, delay, index)</code></summary> +<details><summary><code>create_pure(proxy_type, delay, index)</code></summary> ```rust proxy_type: T::ProxyType @@ -1053,13 +1075,12 @@ same sender, with the same parameters. Fails if there are insufficient funds to pay for deposit. +#### kill_pure - 5 -#### kill_anonymous - 5 - -<details><summary><code>kill_anonymous(spawner, proxy_type, index, height, ext_index)</code></summary> +<details><summary><code>kill_pure(spawner, proxy_type, index, height, ext_index)</code></summary> ```rust -spawner: T::AccountId +spawner: AccountIdLookupOf<T> proxy_type: T::ProxyType index: u16 height: T::BlockNumber @@ -1068,30 +1089,29 @@ ext_index: u32 </details> -Removes a previously spawned anonymous proxy. +Removes a previously spawned pure proxy. WARNING: **All access to this account will be lost.** Any funds held in it will be inaccessible. Requires a `Signed` origin, and the sender account must have been created by a call to -`anonymous` with corresponding parameters. - -- `spawner`: The account that originally called `anonymous` to create this account. -- `index`: The disambiguation index originally passed to `anonymous`. Probably `0`. -- `proxy_type`: The proxy type originally passed to `anonymous`. -- `height`: The height of the chain when the call to `anonymous` was processed. -- `ext_index`: The extrinsic index in which the call to `anonymous` was processed. +`pure` with corresponding parameters. -Fails with `NoPermission` in case the caller is not a previously created anonymous -account whose `anonymous` call has corresponding parameters. +- `spawner`: The account that originally called `pure` to create this account. +- `index`: The disambiguation index originally passed to `pure`. Probably `0`. +- `proxy_type`: The proxy type originally passed to `pure`. +- `height`: The height of the chain when the call to `pure` was processed. +- `ext_index`: The extrinsic index in which the call to `pure` was processed. +Fails with `NoPermission` in case the caller is not a previously created pure +account whose `pure` call has corresponding parameters. #### announce - 6 <details><summary><code>announce(real, call_hash)</code></summary> ```rust -real: T::AccountId +real: AccountIdLookupOf<T> call_hash: CallHashOf<T> ``` </details> @@ -1113,13 +1133,12 @@ Parameters: - `real`: The account that the proxy will make a call on behalf of. - `call_hash`: The hash of the call to be made by the `real` account. - #### remove_announcement - 7 <details><summary><code>remove_announcement(real, call_hash)</code></summary> ```rust -real: T::AccountId +real: AccountIdLookupOf<T> call_hash: CallHashOf<T> ``` </details> @@ -1136,13 +1155,12 @@ Parameters: - `real`: The account that the proxy will make a call on behalf of. - `call_hash`: The hash of the call to be made by the `real` account. - #### reject_announcement - 8 <details><summary><code>reject_announcement(delegate, call_hash)</code></summary> ```rust -delegate: T::AccountId +delegate: AccountIdLookupOf<T> call_hash: CallHashOf<T> ``` </details> @@ -1159,16 +1177,15 @@ Parameters: - `delegate`: The account that previously announced the call. - `call_hash`: The hash of the call to be made. - #### proxy_announced - 9 <details><summary><code>proxy_announced(delegate, real, force_proxy_type, call)</code></summary> ```rust -delegate: T::AccountId -real: T::AccountId +delegate: AccountIdLookupOf<T> +real: AccountIdLookupOf<T> force_proxy_type: Option<T::ProxyType> -call: Box<<T as Config>::Call> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -1185,7 +1202,6 @@ Parameters: - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. - `call`: The call to be made by the `real` account. - ### Utility - 64 #### batch - 0 @@ -1193,7 +1209,7 @@ Parameters: <details><summary><code>batch(calls)</code></summary> ```rust -calls: Vec<<T as Config>::Call> +calls: Vec<<T as Config>::RuntimeCall> ``` </details> @@ -1215,7 +1231,7 @@ bypassing `frame_system::Config::BaseCallFilter`). ```rust index: u16 -call: Box<<T as Config>::Call> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -1239,7 +1255,7 @@ The dispatch origin for this call must be _Signed_. <details><summary><code>batch_all(calls)</code></summary> ```rust -calls: Vec<<T as Config>::Call> +calls: Vec<<T as Config>::RuntimeCall> ``` </details> @@ -1261,7 +1277,7 @@ bypassing `frame_system::Config::BaseCallFilter`). <details><summary><code>force_batch(calls)</code></summary> ```rust -calls: Vec<<T as Config>::Call> +calls: Vec<<T as Config>::RuntimeCall> ``` </details> @@ -1286,7 +1302,7 @@ bypassing `frame_system::Config::BaseCallFilter`). ```rust value: BalanceOf<T, I> -beneficiary: <T::Lookup as StaticLookup>::Source +beneficiary: AccountIdLookupOf<T> ``` </details> @@ -1302,7 +1318,7 @@ proposal is awarded. ```rust amount: BalanceOf<T, I> -beneficiary: <T::Lookup as StaticLookup>::Source +beneficiary: AccountIdLookupOf<T> ``` </details> @@ -1455,7 +1471,7 @@ not been enacted yet. <details><summary><code>set_balance(who, new_free, new_reserved)</code></summary> ```rust -who: <T::Lookup as StaticLookup>::Source +who: AccountIdLookupOf<T> new_free: T::Balance new_reserved: T::Balance ``` @@ -1476,8 +1492,8 @@ The dispatch origin for this call is `root`. <details><summary><code>force_transfer(source, dest, value)</code></summary> ```rust -source: <T::Lookup as StaticLookup>::Source -dest: <T::Lookup as StaticLookup>::Source +source: AccountIdLookupOf<T> +dest: AccountIdLookupOf<T> value: T::Balance ``` </details> @@ -1491,7 +1507,7 @@ specified. <details><summary><code>force_unreserve(who, amount)</code></summary> ```rust -who: <T::Lookup as StaticLookup>::Source +who: AccountIdLookupOf<T> amount: T::Balance ``` </details> @@ -1513,7 +1529,7 @@ member_id: T::MemberId </details> - +remove an identity from the set of authorities ### Grandpa - 15 @@ -1607,7 +1623,7 @@ idty_name: Option<IdtyName> </details> - +remove an identity from storage #### prune_item_identities_names - 6 @@ -1619,7 +1635,7 @@ names: Vec<IdtyName> </details> - +remove identity names from storage ### Membership - 42 @@ -1634,7 +1650,7 @@ metadata: T::MetaData </details> - +request membership without checks ### Cert - 43 @@ -1650,7 +1666,7 @@ verify_rules: bool </details> - +add a certification without checks (only root) #### del_cert - 2 @@ -1663,7 +1679,7 @@ receiver: T::IdtyIndex </details> - +remove a certification (only root) #### remove_all_certs_received_by - 3 @@ -1675,7 +1691,7 @@ idty_index: T::IdtyIndex </details> - +remove all certifications received by an identity (only root) ### SmithsMembership - 52 @@ -1690,7 +1706,7 @@ metadata: T::MetaData </details> - +request membership without checks ### SmithsCert - 53 @@ -1706,7 +1722,7 @@ verify_rules: bool </details> - +add a certification without checks (only root) #### del_cert - 2 @@ -1719,7 +1735,7 @@ receiver: T::IdtyIndex </details> - +remove a certification (only root) #### remove_all_certs_received_by - 3 @@ -1731,7 +1747,7 @@ idty_index: T::IdtyIndex </details> - +remove all certifications received by an identity (only root) ### Utility - 64 @@ -1741,7 +1757,7 @@ idty_index: T::IdtyIndex ```rust as_origin: Box<T::PalletsOrigin> -call: Box<<T as Config>::Call> +call: Box<<T as Config>::RuntimeCall> ``` </details> @@ -1758,7 +1774,7 @@ The dispatch origin for this call must be _Root_. ## Disabled calls -There are **7** disabled calls from **4** pallets. +There are **7** disabled calls from **3** pallets. ### System - 0 @@ -1828,21 +1844,22 @@ usually means being a stash account). ### Membership - 42 -#### claim_membership - 2 +#### request_membership - 1 -<details><summary><code>claim_membership(maybe_idty_id)</code></summary> +<details><summary><code>request_membership(metadata)</code></summary> ```rust -maybe_idty_id: Option<T::IdtyId> +metadata: T::MetaData ``` </details> +submit a membership request (must have a declared identity) +(only available for sub wot, automatic for main wot) +#### claim_membership - 2 -#### revoke_membership - 4 - -<details><summary><code>revoke_membership(maybe_idty_id)</code></summary> +<details><summary><code>claim_membership(maybe_idty_id)</code></summary> ```rust maybe_idty_id: Option<T::IdtyId> @@ -1850,13 +1867,12 @@ maybe_idty_id: Option<T::IdtyId> </details> +claim that the previously requested membership fullfills the requirements +(only available for sub wot, automatic for main wot) +#### revoke_membership - 4 -### SmithsMembership - 52 - -#### claim_membership - 2 - -<details><summary><code>claim_membership(maybe_idty_id)</code></summary> +<details><summary><code>revoke_membership(maybe_idty_id)</code></summary> ```rust maybe_idty_id: Option<T::IdtyId> @@ -1864,5 +1880,6 @@ maybe_idty_id: Option<T::IdtyId> </details> - +revoke an active membership +(only available for sub wot, automatic for main wot) diff --git a/resources/metadata.scale b/resources/metadata.scale index ff4c1c40a4d58bf8b3d8dc74373830583ef1ddbb..06d4f6891828dfade5738b4d106249ba753edd96 100644 GIT binary patch delta 17461 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 E0HSSS2mk;8 delta 14231 zcmZ42#&Pc{J6mpQNh06Ljcm6V!)3}-Gt)CliX8${i(E2`3ld9`Gn{i0i;G!ULKr0& zco-$}@{4j4b0ip9LKqlz@(WUn5=%1k^I#$>xruoxi6!|(m0%SN8Vn3f91J>>PccbP zp3fv8ZNO*~mYQtil9`@bT;f@hnrp|vV8Fn@WWr!F`4p2Gqs3%KW>F~(Mj4Q*QVTl< zHU<^v{Ji4SyyDVg4hFEaD3UY_gFtX<Vh&V>QDbrevk0Tc<W^=aK??>3W)=np1`Y-r z1_mYv28YQ9nB}5eSV9;T7<d>(3NjLlQ(YMuMFKz!21b$8vedj17e*FW21bdJ{DREn zVoyd!36MKN>=+naI1JKLQp@6tO7luGb5liJL8=)Tb0mT*i%U{-Sr|Mf+p}mh=P=Hg z_+D&sI;$W*BZEqCaz<)OX-;Yp3q!%=#ViJl9h0xHSTatS%*X1$IAyXws~z(K#s!lV zXGlz5!79hNV)AiTRmKgI-?FMOZka5^rpkC?vIUzC<AcemYzB-kCQoD2VSF?BFq<Xw z2gW~>71@O+3$Z&h|6p7)x!|Vc<U)2iM#jk#*o_!DCl_!y@EY1NXfX&lrxum4Fz`+m z;D~1woLs;W#3(vhfWv(<7pD-T<YZY+V@B1<ft;2sx{Qns(-k`yB_}WE6k;@;yo*zZ z(RT84PBliy$$VUDj2@HE#)(h%;nHUGnOwmY&KNQI0+&3a&*l$Ywv0|bJSJ&HiMgrq z#ia!W`9&qLRAc~4LY{eP`3#`c14&*Ij1uACbjH9ak_<{+0h0@Oq!dFK1p*Q)iy0UK zaF{oF4UdIS2o6bzUPca{$kbv`wEN{VFfuSiaA*`4z+%k=<{sCgqWmHTMvcjay!wnW zlM{IZ<PsP)Lh`dy^B_{}3>uC_nI##ysU?}oEDR}=&-1ECWiWb#6eZ>rCniIZJVYrc z14GPYb3T1Wi^=JH>Wm4K`}wLFQzmosdoyNC4(GRH%$fLBV)HtFb4JFQlONh@%aj@G zLsOAHIL#I7Cg!E+rh=SQJXughfw5q6fS?Maz~oZF1&k$=4TY6tDj0423qY2Fb5E&- zogD+CL{VySX--Ma<WM0^NeAb|oE)G0{Or;Kx5Uhx)D#{@fs(}HY_N6>Y}!S@7Pc_z zKy-oqGWoQSzc`BlIBgdzlvEa^>Xk4suy6<nFjP!l7o%cW!y*v`wv~e=gt39el`(>m zgTp_Yg`t6gfq{X?wWx@NA%X!E?hOnKEDQ`S)8EH3iWw;sLo))hWekiQGNF0ddHLme z3=9k^PKhaQprWM&q`PDKd2dFk$rU<0o9~MlGBfsU7L@o)Z1^$th)n+w%P2azU&@Gi z0#C+d0amHW_oN;W8T`yscp@eTvWiW1l)20@gOQPOa*nJ6Cj+BMN@{V5(VWSNvYUxC zNpA)y@E9Z*=CDXWq7PJx&S2ya@XOCjWnf?s2+q$<Wnq{B4zUH3<!2~PJ}alhxMcDN zxemr9n=9qt6YFR8B@7Hq0t_oA-&8aZUc)Hhotc-yz^DK!s)}>+OEf0SDBa>-!@$5S z0LmH+8zwU<A0yHij9Vrfsn|2_m|UbXn>a0sd<+asdl>eBe1AZK;lSiJRTa@Aj5et$ zMy95QmR42)rAaxN$qWofChu3(WIQqbZaky(WG@-6$$V;xjAtersLf)$GWoPxE^*c= zFrJw_YlGV4lj_`}7Z`1di_mPjF!`mrCjS)%2BsSfH$ZM;xWjN~vZ971<Acf38YYZ2 zlP75SF+Q1mU!#e!W^$6IIkDD0narZ4!uVqH?QL?C-L;e%YbIxF`4Fr5&2--+Mybg* z+FOay!Kke?y)l(hdUJ)24kP22%}aG>GcwjpcGT}@tl4}~pNr^p@`Ztcm4V^M<h+|o zlk*HM8UJivX{g4?_-FD(qi!&1HhGG%EHO?JR8e66!@$7G!oWCL+2lPV>t<ooNMhZ= z!OF<Mz{<qHIr*Mh3}eP*YjX?U1V@G3)ZC=hqT-Cqg2@{!#3tL=@=l&_uELlx`L2y6 zcY|Y|LS{;8UP)%j<b>B^lNZ{EPd2as$>!M>5$R$kUdHL`${59_Kd58m+?;Kf$jJC* z@>%;EL}|BFp8UWpik_|&rNFf+3XGDI1su~DWha+ArZaw-eBbdfqwM6xPVS6~lV3aO zGb&D&cFtf@Wt_a>o5bX~&W9N_Cnvh>29y3A@Y<!swG=GmH`&5Xhp1puQDD@ZeBLdX zNtbcDd<UcS^a&k|oRdA==P?>ie(tVCq!~<xVBLz7=XvBZnKDji>}C|7tm3K2STotp z(^=NRF)u%_GB>}p*tsY*u_QG`fKeq8CNz1Dry--|<a3^C!haZfN)62z7&%_RHEd?} zGG=77oNg$@s5v>wI~B(K=q*8{+ZZh;m-wVH*)mQ)sKzKh`LmA!W5i|^-wH;?h{<#P z@)&C-U(^?#EbmXOc}$Ls(--zLN^Rcj@5M}v8yfwUCKm^X@Ov^cFfb`F_=2bshQP_! zg3TF2C-a3UF|tlJ43XmqWn^Gr6JUs(93EoA7(2NqB!N+5^4pN@j2fGlhMr?&)Yx1S z?!d^HIC*P?6JzG&9}$j>8k?;mr5PDDCWl2eF~u@YSLkPyoBSh6Kr#_zNh%{lDkG>2 z)zDzb1PN#`<W5$MHqu6F(y8PoR>UXe<R@n%3l^jn#e>^=g_G-|)zS(XaWvzw_B=`% z8Q@)yQbvrv2UG~r`G5#8lulNR7MrXXqb!Bw5)+W~QY%V|GV_WvlPf33#mF*NPOgcO z5vycmw1CvpHjw729Roup<Me=jMis_duu(5#L>L<<|BI25Y{cdM$wsjrLai9GlN)1| zq!F#&@}kU=RD`1#Iw$Xl)skanWHbqabTEQJ?n`H2RLRUO$cfKO%uQvT6c^3dJ2@uK z*0`6Eg~vI+9Mqba$jHFLFp-gg0ZcGWWn`ENj-Q!~0t_=585o#3z!m=7&1d2+F-0r{ zMcGnDhNX<iEs~Xt7)_FujNmrON=6Qcg2bGh)RK5u6Rt=H)~iVgGZqj4wL2NtPBu-l z5I}EbPPQ%9lv>Nk2v)<uXpx&(nUoq|kXn?PpOTrpbMoFK7pAq0;1*&wqJ`)SQst3Y zoROLWYGiI?6aaA;6&N{0!V+^zQ&|``f)fA(16YEEK>?xy)NI_yh}uho+KlL=MKUt3 zogA1RGg&l6o^k7B{nYr$Q&MDE_A)Xq1q%zN$}&FPte<Ml#@IP|Vt)MOQ`wqKy-brg zrp8SU&QW4qIoU5ge)82EIhL(VP%Xi^Dl9vh7_Wl$U(eNIJP1~kn5QzCF)v~A(>x`n zlVAfjr{^m$F>Pg>93Ut;c~PM)<Ic$s3WH?VGBO4@<yY8%0@A+-<X8VRn-DuY1_qV_ z$H^OugeT_~6>%eVc_%jrN>08|$Pdvkjzj<Cj$&Odgs#a4ilYf=m{3wKgwVjiD3X{~ zl3FzRW04X8jT=k%tM5cfP$d}YsRW#y_D-H&=E-<)^20JS#;cPHD?}zcEaKj5Ue3e_ z6Wm-_@q&^0CL`lyhdQy%MOE1#nS0d+N=F$vJX09YGBOA-D&(i7rRJri7M*1T2{JGW zfSR}$CmYm=sUKxzl<-JROi3+bU^FRCP0r6tiO&G@kz^Q-PR^|{W;{80VT}f3=;Tv1 z{yaL25|A+o28NT9Rclok&rbHLRmR$!yg0e3R*muM<dwCqjG2?)*P1ZhWSm~<$S6J8 zp-!Ih?&O3zS-FRdj0TQ5Ir-(ODZx4UCB>k`c^8~7B_tRgPM%#?%J_7$V7)%mOUBKP z^$VETUxEs135LlJ8?7f--O>SxTQzmDF!oGVn4+x3z^IUyS{|QPl$!dIkx?VW%E~D* zCowNMm4VR!BvF)FoLW?tn(~ryGh_Q4Mu;v(hRKDuOhG2y>X2lFnmSpq>+R&KTWUNS z*{P`o@rgN^WvO2_D|R1ahG?2xC@MZ#xc@d|!{qn<=8PJX)hD<!HcZZ+(8~0ZadMxG z@n(&Qsmvfl`=*>?=3`Jv&yUZ~%gM}3Wng5Od~t>jBg16<nOcktlP6aDOujnvB;(P^ z^JjT7YHWTvE0LA)z+~?Qwv1;dcP?;XJTv*!g58W4Hn%PO#=&@Ca_uT@#siyIu2N-W zJTUqEY7po5>QEL&jmd!<tQj>X_iotAxN)-VcG=D88&w&>Oc_o_3Fv^r=AE1Jp#Gk0 zv*jbiGaL+z0?COvIUsE^n{&6WhiF@lq50MJOi+y%vhxok%jCda7K{#)<Mt?Rj^8cD z#3(VjY_B=EcObF(*j_VM#*LHz9x`MM-K>AuhmkRKa?KG*xX_6sp)8D{ljTlIF@D)> zdGa;m<Oi2PDU9>7hSW<&#Gr>kPHJ9yNk)89eraAx=;pbno!KY9y%9P&@1_o;z~tFC zGeLpPdTSwwT7D};CMPYwC^<F0IJG1`EwiY&BtA7KGd(jYCpEq_W%33Iadj6A;XjNv zZXl(uP?e!649wt2VeH-Paa)p+k#%#@9d|}XhRJX5S};!BtadM%k#XwguKODq#TPO$ zIza0|&y<o%zr@^BI|f#U$wd!UM3yo!nt;Z{5E5(*lg~ah<od!Wkd&XF!@v%<g=r$w zWJL|h$ul2WF;1O)<x#HWOeRK$)Z~=nL@TS{%=Em(lG3771||lEnUkX)%X!abVpNDO zwXjw&GmT|nn9Ib#!0ZUFxE3-Y*Ho;SH5I5M!N|a{l!<|XiItIICDY{lW>S+syz~%S z%fzS?VrAu<T9W9JSdz%Vz%V)Il^ljJBg16g*NTiACp$b7WnyBOyzwcF!^|*Q_L&k` zMhudonbtB*pP0!gVj%(=94Yqjh4)urwy>x;CMV~Y=9PG+fbu&710zC!fnnq1ug_E& zw@yCzwgw(x3=EquJeLB+1m8<*s5LtgzSxW17wEzy`C>05a#Y?%fZK_(lV`nEV?0Q} zRlbZ&lLZ~6Cr|$n%BZ;c?FTMq5#;JZ0x~M5xS9LQVkX9ulh=RC1m`o^&9>hanRq1_ zRZ237Qj0V4b5j0H&iU!Ucy{vIpW4P3nHWv{3la-UQ$ZD=O^6)>qegK_eo<;XDCfcw z6{7~I(FV)woWCx!Gbu7ozsty|FRh~h(papZk(s8DfY6zssmeH=mx<9p5~qUcwoHsR zj0nf5O@GA1sKh9-ot2q!DI4RT>1#L{t-yUBx$Uf6jE|U^L>Z^Q;AOPqgc>QyI9;8O z(SZ%(g2|2BBDBt;Bv(z$<f;j2SY2cSwR@yBUBZhJ3kp(;yi-#PAi)4?)NN#B;9vl? z-C=E=t4#2o6#H~8enwSB!|4Y6jGOow7!5+Ktl&v*y1xpe5hU0dZKf|*VRYL*Lx3@k zF_%F@S-}Ppes+H#ja!AxVueJ7w9>p}(7>WXewso_Myf(yDX0ey;uRF-S7fFZgGEb= zQ;QTb5{nfy0yOn>lof3Bp=PNhrliD!R95mZDx{?5q^2j9q)y)GDFf+LX)&5?j}c-l zW2~o@0}P5%bMwnmG2DO_Fq02>@<N=X$;70y-CBf^i*|0ZKyp)NYB2+|#+J~$qSW-v z;*!)Ng~Xg31#pN>&k<$xXAGUbN0iZ&6W({7{#BH*fM&sk=p*wmYJgo44=Twl8Nul& zpeVnhGNiH~b-IHPqx9qlf^3}7{xeI=_MKvkKFl<8SWk$*i@%kEFKG5jAt_ZMzbv&# z0bGz~=A|nbDiozArdVWWisj_Q!-GnMQKq;cu{<xe2%6&Tr5MEppe|;V$N*0<gicSF zVwB|$Wn|<jH8x^k4cIchUy4x{DZn>KF&^e#kpMS#dZjd@BBSs0+0u+gNXjlsGfFc0 zPJb=UXe|v_o1mu<P?VpPn3PkgkYJFY$H+L{T87b-2T6hL^l}+Sb18&~LV02_C<P>^ z78j?c=y^^*EW>DpWF(qAgXeT%Sw=4%xB(v$AvKIbc}9M5ssh5{2@0Sx6O>P<*Gn@> zr_(6UD<tOS<(K9qr*bd~6s0ESOcr#Lo;=S>kclm1`vY0Vg-j@kBmqZhV>Lrp!O;p_ zx**CNn8~@Rc_qaPxrr&MdJA+F0??I#5-xhtgj6gsmDo*hRA7{bJB;07`(*{jK-3&R z01i_uvGXZP%}Px!iAVM+2U5`q3rh}%?Nv&Q%>(XaP+0y|W|US%D^M9AagQd7sDEUb zI9;|cS7BT-;69lC$B5By`gAo$J`qdI`q*;%PBlhrkpxhi)+R(Du~@-5KQApa-OkEt zJHI+(C^H|dJVA6NwolVy%xA)`M?sgdoC#b5%djwOoN$>uajX3Fd-{yuuq%IWz?i_q zxN&=cF{3mSsJXv3NS@^*v?sHDu_<FRBV*`xc5_BU5N&C}Xvv77YLzA96p*aFHRBGZ z$pM1WT%f5$7SIH}!1NS5#!pNvYo{w_GFsrBd7QqmiBW?0FOvXbzI3`^6r-*&BQr}d zXfltL88I8q$P5|-Jj*D-z{<?Pz{JSRz{!lP@k219%JhB*Ms^!sBwf59wJZ#R%*ai8 zQD%(60#RlLP={G`dW9pS%=C8-jN*)v)7cyu)fr`{>p3#&Fe*-uc4U-clmsbAV7xf} zjT58Q^otIRveONm7`-_zGBOH)y4}-D9U0}PFLGk^gsNduWuBZOqQa;-UEP_{5Ykr{ z#^|dv=x*<HW}M8(NNlJv8gB1#WxU7CXgWRHld+N45+y7^fhcMV4MbO@;IN%;;l-%W zICFZ27o#4ZBQv8+P-<dveqJ#HgX8oiUW_K9uAl(3WoGb1F%T5EqP|cA1Cb2$ov!T7 zXe2z7Q3g6Zz$n4M!N`%BGIM%{H=`zJAjmjhW`@w|v%DFN86&r!^JY|LBHo*^(-Zv| zwS*Fx83jrWjVu@#5}6qoSlJm;r_c3cv}MU;hD@Ap|Ki7Zj`+}H%4MD`KSOG|Zy;mq zbi+VKneFca89RyB&s&NaI+f7SsYME%%ITURj1_WE;A6awr6n2pMRuU1RtpN5N@j+} z?fXL*>xs9Uv32^oFh(oB8w?zXVW}I_zlAYss&#_%$QliXUXbAvnHeU61sEim7^Z?* zGnq9QW=?kvXO!o)V3Yy(eoa7~-|dCrplrWz`qc==X^cy!=R`85Fs___F_KYTW+M}$ z3bbqPXUD*>62<GFlqS3fl3RBmGV9vyfl-Wih>vI9jToj%pMjXV6)8Nog1mKxVdwOB zv5a~`dzoQfmc7iN@p*>5)AiyQ%NP$%UmC|~&v<nD(>TUJ-h&t>PtT2KWS7uDxb`T9 z619WS*gT13`$>@P2bmepf`d|kf#KrxJMoOw#3$yf(~l=GW;5QLZk)*I%FMzrXZqem zMtM~R29==H!qU{@lGGFy1_4N;k&%JnE{d~2SrF`U9we7PobHpvsLH7jlArIBSd^Z+ zy&{QmDe-BE_bG-IA_|aTM_!2Za{9Rx#tn>bx7VjKrjQV+A2Cc<{|XJ)pGe{Q6&#*_ zBp7~z0{AO4!(V35T=Dc%8H{1X2QK6EJ9&%})BSQ8^|@JD7$g`4QW8rNS*Lg8GP*Hx zPCuW^m?$X7!l>byQc@XQl2}q&%)r1p-7$~RlKBtg3ea+<>C^KVg^f5_kgEz_7L2Nb zmjzr^fG8FY1_1^^kj25mqAUyyOp+`Nk}RNlN<ff>L3X-RKBJ0ON(p$nFu%wzzXUo! z8<GzeN(H%vfq`WKn3rEPU9NypTrm?e-<+9R8~~Dc%mMX7D#1;JqTJLJ2FB@i`HTjP zOw-qcDCX%8@)=DSS*D8?FuF3bPLD2NG+<<#-c!J+&&WP~4~WMx{cQoGF(c=6#X?49 zMy~0ug^cQq+|zRl8Fd+Xrq3>9G-l+Te!h^=iIH!*P!XdcBmZ=lB1X;n7!(KR=cQ#9 z<$_$qAiz@NmtO+vRf0yF6-x3Ik|DCNx$?>cWUXO|IhiSmB@o{VvNWLSErUwKH5d5h zmjtC2PcJEA6lWBg-c!VA!zeucB#083&Q{E5$tXJAp_tK(QEYm7F{3%7`1JL~j4F~6 zECE5_u3SofYOz9Ieu+YAMP_jc(G3w$6<@;W&7{gQ`M#OV^anMJJkxh&GQJeD@yr9e z5jNh&z&!nb4Wlw6%XIcqMk7Yn=~ktTmW*uEC)6?;F|tozUdm|5$T9t9DWeM`=XAL; zM!D%$wT#>bL8)c=*{LZ(smZB%B{`K0Tr4?=u{?z$h^#^pRGN5aYffKV#@NZI3!=n9 ziwr~=C8mF?V>EZR0IkGB!~_E)O94nEGc7Y2yn<38FF#Kqv9u(=D6{zR%2XH6;^NZO zl#u*<-^9F1kV*!o>5lb`5sb{!XVo)mGO|oRQqO3`$U6OhJ);BBIg`n7Xa(r>HD!zv zgD@PqEx{!V0}F#K%Va@E+3nXF7)yvR>lq!V?`mT7VAPz>+{~ED>k2ZA=OPn>1cN6F zXgS9Are;PJ7NTR7(-&0U1+p*%PM7Oo3}p-jQ8J))7w$xxAsz{G1V=231VbzfdRtyJ zkp)r{rLrJu>cr`jI~mOxEvKLEWHe#4oYuvtBA*I!NFobECfKlC772!2Ov4JHhLs{2 zRye(~i?NQg6r{h9g`sj=H=_pewHs3{3wSBU^bNg?rbK(0v2l86A7dwPD~1z=1t8vC zg79tUboqWpeVtww4%D@-3IX8xanBS`A895dv>|5^%fK*k`+|PPm5hv2r+ZCg^fTYc zr~;q(V4TV%;#yHsl*l-fg@FaMN}6FND8v-zvMgj-%CeGWEz4GxgDgi`80Jn-n8YYG z{pCbP1IC3Aw#g($ZN{Y_wj<+85G6Hz&m=}A#<dXk&q<7GTpL*!d0dMU85lNh*PP6_ zQGjJD3#4&A{mWuTX||mpTlY>EUBaj!yORZV(p(0*0s*w5b1%fmoF$BM{Gp7D3L#cj zo_Q&$6$}gqAu^knFe<PdW#IrXvYh^L38MnjOUCI!OBr7<CQJ`p$|y0NaT()JMvdve zmoffh)S3QkIin||&32a+jJ=GEzS}RYWQ=BF44kgFhOwCS3kw5_?{ulPjLOqbu3_|H z{4!l^En@?t>-6bs88zx785un!44gpAN+2Uj#kq{Fj1MlZv;!@EU{LT{d6AKUp`oVH z3*>Od2Jen!J@8ojjPG`_U<OE>0a?lATW1%6WuTfF89IWpN*EXzCY)7ag{o$`pa8aW zy3;yFE5_RCwd)u+@V7ELG;Dgt2Uc=wmi2U-^^Adxozwf)GfFb*Okc5{v4fFuy5R;! zGpRouS_~p96hbmm6;e`*!Si0JDGI^C7N*miHZWdhoI5>iBVz!218AW-W6t!o8yN%n zI3yg?Q}a?185vnv1r|<M+QgV5qfx@bz{1F=09mZ7kXDqR3$LQ5&)>wTt-!dIk+Fco z#5b`bGq*Gs5=0UT3=MhhC5#LV9In%YH#2$}f(G_;Qj3e1C=?WB<`-p_R4SBYB<3k3 zz?OGdS$Q}Hxx~A;I=c9H`ne`dpSzh+hKWOV`bS14iRqU&Ga5{<KFMgo%=nXOI@=aT zPo}?2(*w6K>M~xOUcZI0mgyqnbj2-<BHM+wGU_lf-kff~opBG-U#9JUw=>RSWaOMa zV<%%Iqu}&UI~kWUsWMNWv5WBwW6Ad3-Hi22jGEJV_c2y6YEJLi$Joobce~hr#wsR8 z-RTn#GDb0enf~S=qY>lN?ed2hs~A}fnF|@GFFec`J3V13Bg^!EhZ$3tOqr)|T+XPt zz4ZvA5i_IZ^c}|;dl)^ZyPjaQXAGU*dV(>Cv19v<6O1N|jFHoMPchmt#!mM+#i+uS z3f?HdIDsW$`u;PF65A)8V!X=CGKGOLb9(kUMk`qc4@h4zvm`UM*cmjtms-TgAOKoR z%fK+5@jRng{Sp=i1{Z(uOgNHSMh1|$kAG=NdVXeJI);o4w9&x;it1dDD{P=5t`!BD zMXCOI;6wm2B*3?{xFjgQB(WsbJGHXdDK#y>C>1Wt%E-#ZxM2F)3yc|zh110@GAc8c zPPe+q=*0MCdhJEVr;Lr$lP@tUGqz4|zr<L=+{x@Y{of_Vbfz^L+tV*I>M}B}m_GFi z<6Oos(~Yk(b}{x&-*=U9G2@c$N!J)PK_ytvbw*#74GfHPr{BHKD8smL`mgJZmW)fM zo7`Y*WGvaf?FM5PBjc9oj<*;M7}stuy2V(=#JF+#%R7vLOeH&~+uUWG#&wn%5?~yn z(;e?J8cgT8$LPy=VtUj)#*2&>r|aBj43~Pqz<8Be#3ZyJy(lpy)xRh+Ju{Div66}L z#q_!N8PynXPCs&=(b7cWE;9=Q%M@^~Dkw_L%uP&BEmi=}{iP@*fl_p4u>xe-k{)9% z6XP2O#)s2+9x$3QKArCTfYFk1<Mi4Gj4q5Xw;y`IsK&_hfr0Vu^fwO~lNtX^4}8RU zpYh{#!^ey=ES*e@Kc)vhX3SuW-M;HF<5EVZzs%DUpE7DPewp6=l+l5aVfwkJjH;}R zEG!HR)8(HrCP_2cc*1)Oeu=rM#SDxr46KZx{5}2sGe$9Ih7g2;AkfrRVp0w)nnhVy z7+4Av5DGw^fy^bPD1aB#G4?VsGH&1UoROW8QFi*C7mSi(G8)hnlaW~fPDYAg*9g31 zOlAS4o9T1kF^aRUWdb>o?-iqh7f8?r+Wtk;3UX!!hE#DtQE6Ukihmy1c#w9+l}wDB zj6Bm5-ZS3Pb^vLBv|$6lYr7!P%;L+a;G3BTDvT6TN+G+1rhj<PD5|fJlv+}rnwqDO z2ySRYv??U#r6?pS<fWD?q~?_rRVoxgdf|+!(-U4ZsxxX%FZjUd%IG`&+-pW#M&Ic? zZy1$8i?Dd7OMPU_nm*?ZV+Et`bkVnr#>`(>7^n9>Wwc}im(L8-d)_jt5E)E+sT)i? znHUA>6ikNGZ9Xs>V-Kc-OpKzSV0y%8I{oiQMjakY7FkA6$N4A|qvUqePmC5!nzk%9 z3cjT|C7H#U>5Om|hYC!rn1PXlmC2IDar(3`j9Q{1;7NA|Miw>}S5SImJjukUy8Y-E zMgb<aKO9^PEN`aY`^_jm{qr|QRYuS0lHVE28GWZu{LU!H=sSJGcScdhhUv$?GX^p0 zPM7?_SjZSUz555FEMw&Kl|LBwFlJ6q`^jj-Xu5szPsSD&kxCYOnb4BVoXnC+2F8a> zjJAv{KGPo>G73-k`^RX^SUbJxA7dJ0<MfyR7!4R(r%U~3bQg4Flrab>$}h+-PRw!2 z&r9jtUi6<)n~|xKaq4`gNsOJ-jTo827<;#OGBU9;)=y+{oXWzY;NhH+nw;&IpBI%{ zlphRUV>Xwi!2v89T#%X^mReMtnV+|iMZf|q7E%EfS;`_{02Xmi%}XuLEMCc?08!za sUsRF^a`;*n1r4wYzx=%9)U7NHI$$28o@PGC(g12aNwOYgY1qjE09C-&)&Kwi -- GitLab