From cdb0e7911d6286da1edb5dc1555d13ec244749a7 Mon Sep 17 00:00:00 2001 From: t4sk Date: Fri, 3 Jan 2025 18:53:20 +0900 Subject: [PATCH] Updates --- 404.html | 4 ++-- abi-decode/index.html | 4 ++-- abi-encode/index.html | 4 ++-- app/airdrop/index.html | 4 ++-- app/assembly-bin-exp/index.html | 4 ++-- app/bi-directional-payment-channel/index.html | 4 ++-- app/create2/index.html | 4 ++-- app/crowd-fund/index.html | 4 ++-- app/deploy-any-contract/index.html | 4 ++-- app/dutch-auction/index.html | 4 ++-- app/english-auction/index.html | 4 ++-- app/erc1155/index.html | 4 ++-- app/erc20/index.html | 4 ++-- app/erc721/index.html | 4 ++-- app/ether-wallet/index.html | 4 ++-- app/gasless-token-transfer/index.html | 4 ++-- app/iterable-mapping/index.html | 4 ++-- app/merkle-tree/index.html | 4 ++-- app/minimal-proxy/index.html | 4 ++-- app/multi-call/index.html | 4 ++-- app/multi-delegatecall/index.html | 4 ++-- app/multi-sig-wallet/index.html | 4 ++-- app/simple-bytecode-contract/index.html | 4 ++-- app/time-lock/index.html | 4 ++-- app/uni-directional-payment-channel/index.html | 4 ++-- app/upgradeable-proxy/index.html | 4 ++-- app/write-to-any-slot/index.html | 4 ++-- array/index.html | 4 ++-- assembly-error/index.html | 4 ++-- assembly-if/index.html | 4 ++-- assembly-loop/index.html | 4 ++-- assembly-math/index.html | 4 ++-- assembly-variable/index.html | 4 ++-- assets/{index-7963GDT_.css => index-BKNVEr8z.css} | 0 assets/{index-B8Mk5gJv.js => index-DvPvLrZA.js} | 14 +++++++------- bitwise/index.html | 4 ++-- call/index.html | 4 ++-- calling-contract/index.html | 4 ++-- constants/index.html | 4 ++-- constructor/index.html | 4 ++-- data-locations/index.html | 4 ++-- defi/chainlink-price-oracle/index.html | 4 ++-- defi/constant-product-amm/index.html | 4 ++-- defi/constant-sum-amm/index.html | 4 ++-- defi/dai-proxy/index.html | 4 ++-- defi/discrete-staking-rewards/index.html | 4 ++-- defi/stable-swap-amm/index.html | 4 ++-- defi/staking-rewards/index.html | 4 ++-- defi/uniswap-v2-add-remove-liquidity/index.html | 4 ++-- defi/uniswap-v2-flash-swap/index.html | 4 ++-- .../uniswap-v2-optimal-one-sided-supply/index.html | 4 ++-- defi/uniswap-v2/index.html | 4 ++-- defi/uniswap-v3-flash-swap/index.html | 4 ++-- defi/uniswap-v3-flash/index.html | 4 ++-- defi/uniswap-v3-liquidity/index.html | 4 ++-- defi/uniswap-v3-swap/index.html | 4 ++-- defi/vault/index.html | 4 ++-- delegatecall/index.html | 4 ++-- enum/index.html | 4 ++-- error/index.html | 4 ++-- ether-units/index.html | 4 ++-- events-advanced/index.html | 4 ++-- events/index.html | 4 ++-- evm/memory/index.html | 4 ++-- evm/storage/index.html | 4 ++-- fallback/index.html | 4 ++-- first-app/index.html | 4 ++-- foundry/auth/index.html | 4 ++-- foundry/basic/index.html | 4 ++-- foundry/error/index.html | 4 ++-- foundry/event/index.html | 4 ++-- foundry/label/index.html | 4 ++-- foundry/mock-call/index.html | 4 ++-- foundry/send/index.html | 4 ++-- foundry/sign/index.html | 4 ++-- foundry/time/index.html | 4 ++-- function-modifier/index.html | 4 ++-- function-selector/index.html | 4 ++-- function/index.html | 4 ++-- gas-golf/index.html | 4 ++-- gas/index.html | 4 ++-- hacks/accessing-private-data/index.html | 4 ++-- hacks/block-timestamp-manipulation/index.html | 4 ++-- hacks/contract-size/index.html | 4 ++-- hacks/delegatecall/index.html | 4 ++-- hacks/denial-of-service/index.html | 4 ++-- .../index.html | 4 ++-- hacks/front-running/index.html | 4 ++-- .../index.html | 4 ++-- hacks/honeypot/index.html | 4 ++-- hacks/overflow/index.html | 4 ++-- hacks/phishing-with-tx-origin/index.html | 4 ++-- hacks/randomness/index.html | 4 ++-- hacks/re-entrancy/index.html | 4 ++-- hacks/self-destruct/index.html | 4 ++-- hacks/signature-replay/index.html | 4 ++-- hacks/vault-inflation/index.html | 4 ++-- hacks/weth-permit/index.html | 4 ++-- hashing/index.html | 4 ++-- hello-world/index.html | 4 ++-- if-else/index.html | 4 ++-- immutable/index.html | 4 ++-- import/index.html | 4 ++-- index.html | 4 ++-- inheritance/index.html | 4 ++-- interface/index.html | 4 ++-- library/index.html | 4 ++-- loop/index.html | 4 ++-- mapping/index.html | 4 ++-- new-contract/index.html | 4 ++-- payable/index.html | 4 ++-- primitives/index.html | 4 ++-- sending-ether/index.html | 4 ++-- shadowing-inherited-state-variables/index.html | 4 ++-- signature/index.html | 4 ++-- state-variables/index.html | 4 ++-- structs/index.html | 4 ++-- super/index.html | 4 ++-- tests/echidna/index.html | 4 ++-- transient-storage/index.html | 4 ++-- try-catch/index.html | 4 ++-- unchecked-math/index.html | 4 ++-- user-defined-value-types/index.html | 4 ++-- variables/index.html | 4 ++-- view-and-pure-functions/index.html | 4 ++-- visibility/index.html | 4 ++-- 126 files changed, 255 insertions(+), 255 deletions(-) rename assets/{index-7963GDT_.css => index-BKNVEr8z.css} (100%) rename assets/{index-B8Mk5gJv.js => index-DvPvLrZA.js} (99%) diff --git a/404.html b/404.html index 6bd2e84bd..7bfe49367 100644 --- a/404.html +++ b/404.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/abi-decode/index.html b/abi-decode/index.html index 6bd2e84bd..7bfe49367 100644 --- a/abi-decode/index.html +++ b/abi-decode/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/abi-encode/index.html b/abi-encode/index.html index 6bd2e84bd..7bfe49367 100644 --- a/abi-encode/index.html +++ b/abi-encode/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/airdrop/index.html b/app/airdrop/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/airdrop/index.html +++ b/app/airdrop/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/assembly-bin-exp/index.html b/app/assembly-bin-exp/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/assembly-bin-exp/index.html +++ b/app/assembly-bin-exp/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/bi-directional-payment-channel/index.html b/app/bi-directional-payment-channel/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/bi-directional-payment-channel/index.html +++ b/app/bi-directional-payment-channel/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/create2/index.html b/app/create2/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/create2/index.html +++ b/app/create2/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/crowd-fund/index.html b/app/crowd-fund/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/crowd-fund/index.html +++ b/app/crowd-fund/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/deploy-any-contract/index.html b/app/deploy-any-contract/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/deploy-any-contract/index.html +++ b/app/deploy-any-contract/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/dutch-auction/index.html b/app/dutch-auction/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/dutch-auction/index.html +++ b/app/dutch-auction/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/english-auction/index.html b/app/english-auction/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/english-auction/index.html +++ b/app/english-auction/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/erc1155/index.html b/app/erc1155/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/erc1155/index.html +++ b/app/erc1155/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/erc20/index.html b/app/erc20/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/erc20/index.html +++ b/app/erc20/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/erc721/index.html b/app/erc721/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/erc721/index.html +++ b/app/erc721/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/ether-wallet/index.html b/app/ether-wallet/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/ether-wallet/index.html +++ b/app/ether-wallet/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/gasless-token-transfer/index.html b/app/gasless-token-transfer/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/gasless-token-transfer/index.html +++ b/app/gasless-token-transfer/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/iterable-mapping/index.html b/app/iterable-mapping/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/iterable-mapping/index.html +++ b/app/iterable-mapping/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/merkle-tree/index.html b/app/merkle-tree/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/merkle-tree/index.html +++ b/app/merkle-tree/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/minimal-proxy/index.html b/app/minimal-proxy/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/minimal-proxy/index.html +++ b/app/minimal-proxy/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/multi-call/index.html b/app/multi-call/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/multi-call/index.html +++ b/app/multi-call/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/multi-delegatecall/index.html b/app/multi-delegatecall/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/multi-delegatecall/index.html +++ b/app/multi-delegatecall/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/multi-sig-wallet/index.html b/app/multi-sig-wallet/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/multi-sig-wallet/index.html +++ b/app/multi-sig-wallet/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/simple-bytecode-contract/index.html b/app/simple-bytecode-contract/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/simple-bytecode-contract/index.html +++ b/app/simple-bytecode-contract/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/time-lock/index.html b/app/time-lock/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/time-lock/index.html +++ b/app/time-lock/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/uni-directional-payment-channel/index.html b/app/uni-directional-payment-channel/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/uni-directional-payment-channel/index.html +++ b/app/uni-directional-payment-channel/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/upgradeable-proxy/index.html b/app/upgradeable-proxy/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/upgradeable-proxy/index.html +++ b/app/upgradeable-proxy/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/app/write-to-any-slot/index.html b/app/write-to-any-slot/index.html index 6bd2e84bd..7bfe49367 100644 --- a/app/write-to-any-slot/index.html +++ b/app/write-to-any-slot/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/array/index.html b/array/index.html index 6bd2e84bd..7bfe49367 100644 --- a/array/index.html +++ b/array/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/assembly-error/index.html b/assembly-error/index.html index 6bd2e84bd..7bfe49367 100644 --- a/assembly-error/index.html +++ b/assembly-error/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/assembly-if/index.html b/assembly-if/index.html index 6bd2e84bd..7bfe49367 100644 --- a/assembly-if/index.html +++ b/assembly-if/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/assembly-loop/index.html b/assembly-loop/index.html index 6bd2e84bd..7bfe49367 100644 --- a/assembly-loop/index.html +++ b/assembly-loop/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/assembly-math/index.html b/assembly-math/index.html index 6bd2e84bd..7bfe49367 100644 --- a/assembly-math/index.html +++ b/assembly-math/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/assembly-variable/index.html b/assembly-variable/index.html index 6bd2e84bd..7bfe49367 100644 --- a/assembly-variable/index.html +++ b/assembly-variable/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/assets/index-7963GDT_.css b/assets/index-BKNVEr8z.css similarity index 100% rename from assets/index-7963GDT_.css rename to assets/index-BKNVEr8z.css diff --git a/assets/index-B8Mk5gJv.js b/assets/index-DvPvLrZA.js similarity index 99% rename from assets/index-B8Mk5gJv.js rename to assets/index-DvPvLrZA.js index e81991d64..9f6b4d867 100644 --- a/assets/index-B8Mk5gJv.js +++ b/assets/index-DvPvLrZA.js @@ -38,7 +38,7 @@ function Ag(s,a){for(var n=0;nLa||(s.current=Je[La],Je[La]=null,La--)}function F(s,a){La++,Je[La]=s.current,s.current=a}var ua={},os=ma(ua),Cs=ma(!1),Ra=ua;function cn(s,a){var n=s.type.contextTypes;if(!n)return ua;var l=s.stateNode;if(l&&l.__reactInternalMemoizedUnmaskedChildContext===a)return l.__reactInternalMemoizedMaskedChildContext;var p={},e;for(e in n)p[e]=a[e];return l&&(s=s.stateNode,s.__reactInternalMemoizedUnmaskedChildContext=a,s.__reactInternalMemoizedMaskedChildContext=p),p}function js(s){return s=s.childContextTypes,s!=null}function sp(){S(Cs),S(os)}function Et(s,a,n){if(os.current!==ua)throw Error(w(168));F(os,a),F(Cs,n)}function Lr(s,a,n){var l=s.stateNode;if(a=a.childContextTypes,typeof l.getChildContext!="function")return n;l=l.getChildContext();for(var p in l)if(!(p in a))throw Error(w(108,Lg(s)||"Unknown",p));return E({},n,l)}function ap(s){return s=(s=s.stateNode)&&s.__reactInternalMemoizedMergedChildContext||ua,Ra=os.current,F(os,s),F(Cs,Cs.current),!0}function Qt(s,a,n){var l=s.stateNode;if(!l)throw Error(w(169));n?(s=Lr(s,a,Ra),l.__reactInternalMemoizedMergedChildContext=s,S(Cs),S(os),F(os,s)):S(Cs),F(Cs,n)}var Ts=null,kp=!1,le=!1;function Ur(s){Ts===null?Ts=[s]:Ts.push(s)}function iI(s){kp=!0,Ur(s)}function ba(){if(!le&&Ts!==null){le=!0;var s=0,a=K;try{var n=Ts;for(K=1;s>=c,p-=c,Ls=1<<32-Ks(a)+p|n<Y?(x=B,B=null):x=B.sibling;var N=j(h,B,C[Y],y);if(N===null){B===null&&(B=x);break}s&&B&&N.alternate===null&&a(h,B),g=e(N,g,Y),k===null?Z=N:k.sibling=N,k=N,B=x}if(Y===C.length)return n(h,B),J&&Za(h,Y),Z;if(B===null){for(;YY?(x=B,B=null):x=B.sibling;var Xs=j(h,B,N.value,y);if(Xs===null){B===null&&(B=x);break}s&&B&&Xs.alternate===null&&a(h,B),g=e(Xs,g,Y),k===null?Z=Xs:k.sibling=Xs,k=Xs,B=x}if(N.done)return n(h,B),J&&Za(h,Y),Z;if(B===null){for(;!N.done;Y++,N=C.next())N=d(h,N.value,y),N!==null&&(g=e(N,g,Y),k===null?Z=N:k.sibling=N,k=N);return J&&Za(h,Y),Z}for(B=l(h,B);!N.done;Y++,N=C.next())N=u(B,h,Y,N.value,y),N!==null&&(s&&N.alternate!==null&&B.delete(N.key===null?Y:N.key),g=e(N,g,Y),k===null?Z=N:k.sibling=N,k=N);return s&&B.forEach(function(un){return a(h,un)}),J&&Za(h,Y),Z}function G(h,g,C,y){if(typeof C=="object"&&C!==null&&C.type===za&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case Cl:s:{for(var Z=C.key,k=g;k!==null;){if(k.key===Z){if(Z=C.type,Z===za){if(k.tag===7){n(h,k.sibling),g=p(k,C.props.children),g.return=h,h=g;break s}}else if(k.elementType===Z||typeof Z=="object"&&Z!==null&&Z.$$typeof===na&&Ut(Z)===k.type){n(h,k.sibling),g=p(k,C.props),g.ref=Wn(h,k,C),g.return=h,h=g;break s}n(h,k);break}else a(h,k);k=k.sibling}C.type===za?(g=Ya(C.props.children,h.mode,y,C.key),g.return=h,h=g):(y=El(C.type,C.key,C.props,null,h.mode,y),y.ref=Wn(h,g,C),y.return=h,h=y)}return c(h);case Ja:s:{for(k=C.key;g!==null;){if(g.key===k)if(g.tag===4&&g.stateNode.containerInfo===C.containerInfo&&g.stateNode.implementation===C.implementation){n(h,g.sibling),g=p(g,C.children||[]),g.return=h,h=g;break s}else{n(h,g);break}else a(h,g);g=g.sibling}g=ge(C,h.mode,y),g.return=h,h=g}return c(h);case na:return k=C._init,G(h,g,k(C._payload),y)}if(Vn(C))return m(h,g,C,y);if(mn(C))return b(h,g,C,y);Gl(h,C)}return typeof C=="string"&&C!==""||typeof C=="number"?(C=""+C,g!==null&&g.tag===6?(n(h,g.sibling),g=p(g,C),g.return=h,h=g):(n(h,g),g=ie(C,h.mode,y),g.return=h,h=g),c(h)):n(h,g)}return G}var on=$r(!0),qr=$r(!1),pp=ma(null),ep=null,Oa=null,Kc=null;function Fc(){Kc=Oa=ep=null}function Mc(s){var a=pp.current;S(pp),s._currentValue=a}function Ee(s,a,n){for(;s!==null;){var l=s.alternate;if((s.childLanes&a)!==a?(s.childLanes|=a,l!==null&&(l.childLanes|=a)):l!==null&&(l.childLanes&a)!==a&&(l.childLanes|=a),s===n)break;s=s.return}}function ln(s,a){ep=s,Kc=Oa=null,s=s.dependencies,s!==null&&s.firstContext!==null&&(s.lanes&a&&(ds=!0),s.firstContext=null)}function Vs(s){var a=s._currentValue;if(Kc!==s)if(s={context:s,memoizedValue:a,next:null},Oa===null){if(ep===null)throw Error(w(308));Oa=s,ep.dependencies={lanes:0,firstContext:s}}else Oa=Oa.next=s;return a}var Ba=null;function Sc(s){Ba===null?Ba=[s]:Ba.push(s)}function si(s,a,n,l){var p=a.interleaved;return p===null?(n.next=n,Sc(a)):(n.next=p.next,p.next=n),a.interleaved=n,$s(s,l)}function $s(s,a){s.lanes|=a;var n=s.alternate;for(n!==null&&(n.lanes|=a),n=s,s=s.return;s!==null;)s.childLanes|=a,n=s.alternate,n!==null&&(n.childLanes|=a),n=s,s=s.return;return n.tag===3?n.stateNode:null}var la=!1;function xc(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ai(s,a){s=s.updateQueue,a.updateQueue===s&&(a.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,effects:s.effects})}function _s(s,a){return{eventTime:s,lane:a,tag:0,payload:null,callback:null,next:null}}function Ia(s,a,n){var l=s.updateQueue;if(l===null)return null;if(l=l.shared,H&2){var p=l.pending;return p===null?a.next=a:(a.next=p.next,p.next=a),l.pending=a,$s(s,n)}return p=l.interleaved,p===null?(a.next=a,Sc(l)):(a.next=p.next,p.next=a),l.interleaved=a,$s(s,n)}function Ml(s,a,n){if(a=a.updateQueue,a!==null&&(a=a.shared,(n&4194240)!==0)){var l=a.lanes;l&=s.pendingLanes,n|=l,a.lanes=n,Wc(s,n)}}function _t(s,a){var n=s.updateQueue,l=s.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var p=null,e=null;if(n=n.firstBaseUpdate,n!==null){do{var c={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};e===null?p=e=c:e=e.next=c,n=n.next}while(n!==null);e===null?p=e=a:e=e.next=a}else p=e=a;n={baseState:l.baseState,firstBaseUpdate:p,lastBaseUpdate:e,shared:l.shared,effects:l.effects},s.updateQueue=n;return}s=n.lastBaseUpdate,s===null?n.firstBaseUpdate=a:s.next=a,n.lastBaseUpdate=a}function cp(s,a,n,l){var p=s.updateQueue;la=!1;var e=p.firstBaseUpdate,c=p.lastBaseUpdate,t=p.shared.pending;if(t!==null){p.shared.pending=null;var o=t,i=o.next;o.next=null,c===null?e=i:c.next=i,c=o;var I=s.alternate;I!==null&&(I=I.updateQueue,t=I.lastBaseUpdate,t!==c&&(t===null?I.firstBaseUpdate=i:t.next=i,I.lastBaseUpdate=o))}if(e!==null){var d=p.baseState;c=0,I=i=o=null,t=e;do{var j=t.lane,u=t.eventTime;if((l&j)===j){I!==null&&(I=I.next={eventTime:u,lane:0,tag:t.tag,payload:t.payload,callback:t.callback,next:null});s:{var m=s,b=t;switch(j=a,u=n,b.tag){case 1:if(m=b.payload,typeof m=="function"){d=m.call(u,d,j);break s}d=m;break s;case 3:m.flags=m.flags&-65537|128;case 0:if(m=b.payload,j=typeof m=="function"?m.call(u,d,j):m,j==null)break s;d=E({},d,j);break s;case 2:la=!0}}t.callback!==null&&t.lane!==0&&(s.flags|=64,j=p.effects,j===null?p.effects=[t]:j.push(t))}else u={eventTime:u,lane:j,tag:t.tag,payload:t.payload,callback:t.callback,next:null},I===null?(i=I=u,o=d):I=I.next=u,c|=j;if(t=t.next,t===null){if(t=p.shared.pending,t===null)break;j=t,t=j.next,j.next=null,p.lastBaseUpdate=j,p.shared.pending=null}}while(!0);if(I===null&&(o=d),p.baseState=o,p.firstBaseUpdate=i,p.lastBaseUpdate=I,a=p.shared.interleaved,a!==null){p=a;do c|=p.lane,p=p.next;while(p!==a)}else e===null&&(p.shared.lanes=0);Ha|=c,s.lanes=c,s.memoizedState=d}}function Ot(s,a,n){if(s=a.effects,a.effects=null,s!==null)for(a=0;an?n:4,s(!0);var l=ee.transition;ee.transition={};try{s(!1),a()}finally{K=n,ee.transition=l}}function ui(){return Ys().memoizedState}function dI(s,a,n){var l=Ca(s);if(n={lane:l,action:n,hasEagerState:!1,eagerState:null,next:null},yi(s))mi(a,n);else if(n=si(s,a,n,l),n!==null){var p=is();Fs(n,s,l,p),bi(n,a,l)}}function CI(s,a,n){var l=Ca(s),p={lane:l,action:n,hasEagerState:!1,eagerState:null,next:null};if(yi(s))mi(a,p);else{var e=s.alternate;if(s.lanes===0&&(e===null||e.lanes===0)&&(e=a.lastRenderedReducer,e!==null))try{var c=a.lastRenderedState,t=e(c,n);if(p.hasEagerState=!0,p.eagerState=t,Ms(t,c)){var o=a.interleaved;o===null?(p.next=p,Sc(a)):(p.next=o.next,o.next=p),a.interleaved=p;return}}catch{}finally{}n=si(s,a,p,l),n!==null&&(p=is(),Fs(n,s,l,p),bi(n,a,l))}}function yi(s){var a=s.alternate;return s===D||a!==null&&a===D}function mi(s,a){Fn=op=!0;var n=s.pending;n===null?a.next=a:(a.next=n.next,n.next=a),s.pending=a}function bi(s,a,n){if(n&4194240){var l=a.lanes;l&=s.pendingLanes,n|=l,a.lanes=n,Wc(s,n)}}var rp={readContext:Vs,useCallback:es,useContext:es,useEffect:es,useImperativeHandle:es,useInsertionEffect:es,useLayoutEffect:es,useMemo:es,useReducer:es,useRef:es,useState:es,useDebugValue:es,useDeferredValue:es,useTransition:es,useMutableSource:es,useSyncExternalStore:es,useId:es,unstable_isNewReconciler:!1},jI={readContext:Vs,useCallback:function(s,a){return xs().memoizedState=[s,a===void 0?null:a],s},useContext:Vs,useEffect:$t,useImperativeHandle:function(s,a,n){return n=n!=null?n.concat([s]):null,xl(4194308,4,Ii.bind(null,a,s),n)},useLayoutEffect:function(s,a){return xl(4194308,4,s,a)},useInsertionEffect:function(s,a){return xl(4,2,s,a)},useMemo:function(s,a){var n=xs();return a=a===void 0?null:a,s=s(),n.memoizedState=[s,a],s},useReducer:function(s,a,n){var l=xs();return a=n!==void 0?n(a):a,l.memoizedState=l.baseState=a,s={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:a},l.queue=s,s=s.dispatch=dI.bind(null,D,s),[l.memoizedState,s]},useRef:function(s){var a=xs();return s={current:s},a.memoizedState=s},useState:Pt,useDebugValue:Uc,useDeferredValue:function(s){return xs().memoizedState=s},useTransition:function(){var s=Pt(!1),a=s[0];return s=II.bind(null,s[1]),xs().memoizedState=s,[a,s]},useMutableSource:function(){},useSyncExternalStore:function(s,a,n){var l=D,p=xs();if(J){if(n===void 0)throw Error(w(407));n=n()}else{if(n=a(),ss===null)throw Error(w(349));Na&30||ei(l,a,n)}p.memoizedState=n;var e={value:n,getSnapshot:a};return p.queue=e,$t(ti.bind(null,l,e,s),[s]),l.flags|=2048,nl(9,ci.bind(null,l,e,n,a),void 0,null),n},useId:function(){var s=xs(),a=ss.identifierPrefix;if(J){var n=Us,l=Ls;n=(l&~(1<<32-Ks(l)-1)).toString(32)+n,a=":"+a+"R"+n,n=sl++,0<\/script>",s=s.removeChild(s.firstChild)):typeof l.is=="string"?s=c.createElement(n,{is:l.is}):(s=c.createElement(n),n==="select"&&(c=s,l.multiple?c.multiple=!0:l.size&&(c.size=l.size))):s=c.createElementNS(s,n),s[Js]=a,s[Pn]=l,Xi(s,a,!1,!1),a.stateNode=s;s:{switch(c=Ge(n,l),n){case"dialog":M("cancel",s),M("close",s),p=l;break;case"iframe":case"object":case"embed":M("load",s),p=l;break;case"video":case"audio":for(p=0;phn&&(a.flags|=128,l=!0,Gn(e,!1),a.lanes=4194304)}else{if(!l)if(s=tp(c),s!==null){if(a.flags|=128,l=!0,n=s.updateQueue,n!==null&&(a.updateQueue=n,a.flags|=4),Gn(e,!0),e.tail===null&&e.tailMode==="hidden"&&!c.alternate&&!J)return cs(a),null}else 2*L()-e.renderingStartTime>hn&&n!==1073741824&&(a.flags|=128,l=!0,Gn(e,!1),a.lanes=4194304);e.isBackwards?(c.sibling=a.child,a.child=c):(n=e.last,n!==null?n.sibling=c:a.child=c,e.last=c)}return e.tail!==null?(a=e.tail,e.rendering=a,e.tail=a.sibling,e.renderingStartTime=L(),a.sibling=null,n=z.current,F(z,l?n&1|2:n&1),a):(cs(a),null);case 22:case 23:return st(),l=a.memoizedState!==null,s!==null&&s.memoizedState!==null!==l&&(a.flags|=8192),l&&a.mode&1?ys&1073741824&&(cs(a),a.subtreeFlags&6&&(a.flags|=8192)):cs(a),null;case 24:return null;case 25:return null}throw Error(w(156,a.tag))}function ZI(s,a){switch(Nc(a),a.tag){case 1:return js(a.type)&&sp(),s=a.flags,s&65536?(a.flags=s&-65537|128,a):null;case 3:return rn(),S(Cs),S(os),Dc(),s=a.flags,s&65536&&!(s&128)?(a.flags=s&-65537|128,a):null;case 5:return zc(a),null;case 13:if(S(z),s=a.memoizedState,s!==null&&s.dehydrated!==null){if(a.alternate===null)throw Error(w(340));tn()}return s=a.flags,s&65536?(a.flags=s&-65537|128,a):null;case 19:return S(z),null;case 4:return rn(),null;case 10:return Mc(a.type._context),null;case 22:case 23:return st(),null;case 24:return null;default:return null}}var fl=!1,ts=!1,WI=typeof WeakSet=="function"?WeakSet:Set,f=null;function Pa(s,a){var n=s.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(l){Q(s,a,l)}else n.current=null}function qe(s,a,n){try{n()}catch(l){Q(s,a,l)}}var ro=!1;function GI(s,a){if(Ke=Ol,s=Mr(),Rc(s)){if("selectionStart"in s)var n={start:s.selectionStart,end:s.selectionEnd};else s:{n=(n=s.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var p=l.anchorOffset,e=l.focusNode;l=l.focusOffset;try{n.nodeType,e.nodeType}catch{n=null;break s}var c=0,t=-1,o=-1,i=0,I=0,d=s,j=null;a:for(;;){for(var u;d!==n||p!==0&&d.nodeType!==3||(t=c+p),d!==e||l!==0&&d.nodeType!==3||(o=c+l),d.nodeType===3&&(c+=d.nodeValue.length),(u=d.firstChild)!==null;)j=d,d=u;for(;;){if(d===s)break a;if(j===n&&++i===p&&(t=c),j===e&&++I===l&&(o=c),(u=d.nextSibling)!==null)break;d=j,j=d.parentNode}d=u}n=t===-1||o===-1?null:{start:t,end:o}}else n=null}n=n||{start:0,end:0}}else n=null;for(Fe={focusedElem:s,selectionRange:n},Ol=!1,f=a;f!==null;)if(a=f,s=a.child,(a.subtreeFlags&1028)!==0&&s!==null)s.return=a,f=s;else for(;f!==null;){a=f;try{var m=a.alternate;if(a.flags&1024)switch(a.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var b=m.memoizedProps,G=m.memoizedState,h=a.stateNode,g=h.getSnapshotBeforeUpdate(a.elementType===a.type?b:vs(a.type,b),G);h.__reactInternalSnapshotBeforeUpdate=g}break;case 3:var C=a.stateNode.containerInfo;C.nodeType===1?C.textContent="":C.nodeType===9&&C.documentElement&&C.removeChild(C.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(w(163))}}catch(y){Q(a,a.return,y)}if(s=a.sibling,s!==null){s.return=a.return,f=s;break}f=a.return}return m=ro,ro=!1,m}function Mn(s,a,n){var l=a.updateQueue;if(l=l!==null?l.lastEffect:null,l!==null){var p=l=l.next;do{if((p.tag&s)===s){var e=p.destroy;p.destroy=void 0,e!==void 0&&qe(a,n,e)}p=p.next}while(p!==l)}}function Gp(s,a){if(a=a.updateQueue,a=a!==null?a.lastEffect:null,a!==null){var n=a=a.next;do{if((n.tag&s)===s){var l=n.create;n.destroy=l()}n=n.next}while(n!==a)}}function sc(s){var a=s.ref;if(a!==null){var n=s.stateNode;switch(s.tag){case 5:s=n;break;default:s=n}typeof a=="function"?a(s):a.current=s}}function Ni(s){var a=s.alternate;a!==null&&(s.alternate=null,Ni(a)),s.child=null,s.deletions=null,s.sibling=null,s.tag===5&&(a=s.stateNode,a!==null&&(delete a[Js],delete a[Pn],delete a[xe],delete a[oI],delete a[rI])),s.stateNode=null,s.return=null,s.dependencies=null,s.memoizedProps=null,s.memoizedState=null,s.pendingProps=null,s.stateNode=null,s.updateQueue=null}function Hi(s){return s.tag===5||s.tag===3||s.tag===4}function io(s){s:for(;;){for(;s.sibling===null;){if(s.return===null||Hi(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.flags&2||s.child===null||s.tag===4)continue s;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function ac(s,a,n){var l=s.tag;if(l===5||l===6)s=s.stateNode,a?n.nodeType===8?n.parentNode.insertBefore(s,a):n.insertBefore(s,a):(n.nodeType===8?(a=n.parentNode,a.insertBefore(s,n)):(a=n,a.appendChild(s)),n=n._reactRootContainer,n!=null||a.onclick!==null||(a.onclick=ql));else if(l!==4&&(s=s.child,s!==null))for(ac(s,a,n),s=s.sibling;s!==null;)ac(s,a,n),s=s.sibling}function nc(s,a,n){var l=s.tag;if(l===5||l===6)s=s.stateNode,a?n.insertBefore(s,a):n.appendChild(s);else if(l!==4&&(s=s.child,s!==null))for(nc(s,a,n),s=s.sibling;s!==null;)nc(s,a,n),s=s.sibling}var ns=null,Ns=!1;function aa(s,a,n){for(n=n.child;n!==null;)Ki(s,a,n),n=n.sibling}function Ki(s,a,n){if(zs&&typeof zs.onCommitFiberUnmount=="function")try{zs.onCommitFiberUnmount(up,n)}catch{}switch(n.tag){case 5:ts||Pa(n,a);case 6:var l=ns,p=Ns;ns=null,aa(s,a,n),ns=l,Ns=p,ns!==null&&(Ns?(s=ns,n=n.stateNode,s.nodeType===8?s.parentNode.removeChild(n):s.removeChild(n)):ns.removeChild(n.stateNode));break;case 18:ns!==null&&(Ns?(s=ns,n=n.stateNode,s.nodeType===8?ne(s.parentNode,n):s.nodeType===1&&ne(s,n),Tn(s)):ne(ns,n.stateNode));break;case 4:l=ns,p=Ns,ns=n.stateNode.containerInfo,Ns=!0,aa(s,a,n),ns=l,Ns=p;break;case 0:case 11:case 14:case 15:if(!ts&&(l=n.updateQueue,l!==null&&(l=l.lastEffect,l!==null))){p=l=l.next;do{var e=p,c=e.destroy;e=e.tag,c!==void 0&&(e&2||e&4)&&qe(n,a,c),p=p.next}while(p!==l)}aa(s,a,n);break;case 1:if(!ts&&(Pa(n,a),l=n.stateNode,typeof l.componentWillUnmount=="function"))try{l.props=n.memoizedProps,l.state=n.memoizedState,l.componentWillUnmount()}catch(t){Q(n,a,t)}aa(s,a,n);break;case 21:aa(s,a,n);break;case 22:n.mode&1?(ts=(l=ts)||n.memoizedState!==null,aa(s,a,n),ts=l):aa(s,a,n);break;default:aa(s,a,n)}}function go(s){var a=s.updateQueue;if(a!==null){s.updateQueue=null;var n=s.stateNode;n===null&&(n=s.stateNode=new WI),a.forEach(function(l){var p=HI.bind(null,s,l);n.has(l)||(n.add(l),l.then(p,p))})}}function Rs(s,a){var n=a.deletions;if(n!==null)for(var l=0;lp&&(p=c),l&=~e}if(l=p,l=L()-l,l=(120>l?120:480>l?480:1080>l?1080:1920>l?1920:3e3>l?3e3:4320>l?4320:1960*fI(l/1960))-l,10s?16:s,ta===null)var l=!1;else{if(s=ta,ta=null,hp=0,H&6)throw Error(w(331));var p=H;for(H|=4,f=s.current;f!==null;){var e=f,c=e.child;if(f.flags&16){var t=e.deletions;if(t!==null){for(var o=0;oL()-$c?Va(s,0):Pc|=n),As(s,a)}function Ei(s,a){a===0&&(s.mode&1?(a=yl,yl<<=1,!(yl&130023424)&&(yl=4194304)):a=1);var n=is();s=$s(s,a),s!==null&&(tl(s,a,n),As(s,n))}function NI(s){var a=s.memoizedState,n=0;a!==null&&(n=a.retryLane),Ei(s,n)}function HI(s,a){var n=0;switch(s.tag){case 13:var l=s.stateNode,p=s.memoizedState;p!==null&&(n=p.retryLane);break;case 19:l=s.stateNode;break;default:throw Error(w(314))}l!==null&&l.delete(a),Ei(s,n)}var Qi;Qi=function(s,a,n){if(s!==null)if(s.memoizedProps!==a.pendingProps||Cs.current)ds=!0;else{if(!(s.lanes&n)&&!(a.flags&128))return ds=!1,wI(s,a,n);ds=!!(s.flags&131072)}else ds=!1,J&&a.flags&1048576&&_r(a,lp,a.index);switch(a.lanes=0,a.tag){case 2:var l=a.type;Jl(s,a),s=a.pendingProps;var p=cn(a,os.current);ln(a,n),p=Qc(null,a,l,s,p,n);var e=Tc();return a.flags|=1,typeof p=="object"&&p!==null&&typeof p.render=="function"&&p.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,js(l)?(e=!0,ap(a)):e=!1,a.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,xc(a),p.updater=Wp,a.stateNode=p,p._reactInternals=a,Te(a,l,s,n),a=_e(null,a,l,!0,e,n)):(a.tag=0,J&&e&&vc(a),rs(null,a,p,n),a=a.child),a;case 16:l=a.elementType;s:{switch(Jl(s,a),s=a.pendingProps,p=l._init,l=p(l._payload),a.type=l,p=a.tag=FI(l),s=vs(l,s),p){case 0:a=Ue(null,a,l,s,n);break s;case 1:a=co(null,a,l,s,n);break s;case 11:a=po(null,a,l,s,n);break s;case 14:a=eo(null,a,l,vs(l.type,s),n);break s}throw Error(w(306,l,""))}return a;case 0:return l=a.type,p=a.pendingProps,p=a.elementType===l?p:vs(l,p),Ue(s,a,l,p,n);case 1:return l=a.type,p=a.pendingProps,p=a.elementType===l?p:vs(l,p),co(s,a,l,p,n);case 3:s:{if(fi(a),s===null)throw Error(w(387));l=a.pendingProps,e=a.memoizedState,p=e.element,ai(s,a),cp(a,l,null,n);var c=a.memoizedState;if(l=c.element,e.isDehydrated)if(e={element:l,isDehydrated:!1,cache:c.cache,pendingSuspenseBoundaries:c.pendingSuspenseBoundaries,transitions:c.transitions},a.updateQueue.baseState=e,a.memoizedState=e,a.flags&256){p=gn(Error(w(423)),a),a=to(s,a,l,n,p);break s}else if(l!==p){p=gn(Error(w(424)),a),a=to(s,a,l,n,p);break s}else for(ms=ha(a.stateNode.containerInfo.firstChild),bs=a,J=!0,Hs=null,n=qr(a,null,l,n),a.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(tn(),l===p){a=qs(s,a,n);break s}rs(s,a,l,n)}a=a.child}return a;case 5:return ni(a),s===null&&De(a),l=a.type,p=a.pendingProps,e=s!==null?s.memoizedProps:null,c=p.children,Me(l,p)?c=null:e!==null&&Me(l,e)&&(a.flags|=32),Bi(s,a),rs(s,a,c,n),a.child;case 6:return s===null&&De(a),null;case 13:return Vi(s,a,n);case 4:return Jc(a,a.stateNode.containerInfo),l=a.pendingProps,s===null?a.child=on(a,null,l,n):rs(s,a,l,n),a.child;case 11:return l=a.type,p=a.pendingProps,p=a.elementType===l?p:vs(l,p),po(s,a,l,p,n);case 7:return rs(s,a,a.pendingProps,n),a.child;case 8:return rs(s,a,a.pendingProps.children,n),a.child;case 12:return rs(s,a,a.pendingProps.children,n),a.child;case 10:s:{if(l=a.type._context,p=a.pendingProps,e=a.memoizedProps,c=p.value,F(pp,l._currentValue),l._currentValue=c,e!==null)if(Ms(e.value,c)){if(e.children===p.children&&!Cs.current){a=qs(s,a,n);break s}}else for(e=a.child,e!==null&&(e.return=a);e!==null;){var t=e.dependencies;if(t!==null){c=e.child;for(var o=t.firstContext;o!==null;){if(o.context===l){if(e.tag===1){o=_s(-1,n&-n),o.tag=2;var i=e.updateQueue;if(i!==null){i=i.shared;var I=i.pending;I===null?o.next=o:(o.next=I.next,I.next=o),i.pending=o}}e.lanes|=n,o=e.alternate,o!==null&&(o.lanes|=n),Ee(e.return,n,a),t.lanes|=n;break}o=o.next}}else if(e.tag===10)c=e.type===a.type?null:e.child;else if(e.tag===18){if(c=e.return,c===null)throw Error(w(341));c.lanes|=n,t=c.alternate,t!==null&&(t.lanes|=n),Ee(c,n,a),c=e.sibling}else c=e.child;if(c!==null)c.return=e;else for(c=e;c!==null;){if(c===a){c=null;break}if(e=c.sibling,e!==null){e.return=c.return,c=e;break}c=c.return}e=c}rs(s,a,p.children,n),a=a.child}return a;case 9:return p=a.type,l=a.pendingProps.children,ln(a,n),p=Vs(p),l=l(p),a.flags|=1,rs(s,a,l,n),a.child;case 14:return l=a.type,p=vs(l,a.pendingProps),p=vs(l.type,p),eo(s,a,l,p,n);case 15:return Wi(s,a,a.type,a.pendingProps,n);case 17:return l=a.type,p=a.pendingProps,p=a.elementType===l?p:vs(l,p),Jl(s,a),a.tag=1,js(l)?(s=!0,ap(a)):s=!1,ln(a,n),wi(a,l,p),Te(a,l,p,n),_e(null,a,l,!0,s,n);case 19:return Yi(s,a,n);case 22:return Gi(s,a,n)}throw Error(w(156,a.tag))};function Ti(s,a){return yr(s,a)}function KI(s,a,n,l){this.tag=s,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bs(s,a,n,l){return new KI(s,a,n,l)}function nt(s){return s=s.prototype,!(!s||!s.isReactComponent)}function FI(s){if(typeof s=="function")return nt(s)?1:0;if(s!=null){if(s=s.$$typeof,s===bc)return 11;if(s===wc)return 14}return 2}function ja(s,a){var n=s.alternate;return n===null?(n=Bs(s.tag,a,s.key,s.mode),n.elementType=s.elementType,n.type=s.type,n.stateNode=s.stateNode,n.alternate=s,s.alternate=n):(n.pendingProps=a,n.type=s.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=s.flags&14680064,n.childLanes=s.childLanes,n.lanes=s.lanes,n.child=s.child,n.memoizedProps=s.memoizedProps,n.memoizedState=s.memoizedState,n.updateQueue=s.updateQueue,a=s.dependencies,n.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},n.sibling=s.sibling,n.index=s.index,n.ref=s.ref,n}function El(s,a,n,l,p,e){var c=2;if(l=s,typeof s=="function")nt(s)&&(c=1);else if(typeof s=="string")c=5;else s:switch(s){case za:return Ya(n.children,p,e,a);case mc:c=8,p|=8;break;case je:return s=Bs(12,n,a,p|2),s.elementType=je,s.lanes=e,s;case Ae:return s=Bs(13,n,a,p),s.elementType=Ae,s.lanes=e,s;case ue:return s=Bs(19,n,a,p),s.elementType=ue,s.lanes=e,s;case nr:return fp(n,p,e,a);default:if(typeof s=="object"&&s!==null)switch(s.$$typeof){case sr:c=10;break s;case ar:c=9;break s;case bc:c=11;break s;case wc:c=14;break s;case na:c=16,l=null;break s}throw Error(w(130,s==null?s:typeof s,""))}return a=Bs(c,n,a,p),a.elementType=s,a.type=l,a.lanes=e,a}function Ya(s,a,n,l){return s=Bs(7,s,l,a),s.lanes=n,s}function fp(s,a,n,l){return s=Bs(22,s,l,a),s.elementType=nr,s.lanes=n,s.stateNode={isHidden:!1},s}function ie(s,a,n){return s=Bs(6,s,null,a),s.lanes=n,s}function ge(s,a,n){return a=Bs(4,s.children!==null?s.children:[],s.key,a),a.lanes=n,a.stateNode={containerInfo:s.containerInfo,pendingChildren:null,implementation:s.implementation},a}function MI(s,a,n,l,p){this.tag=a,this.containerInfo=s,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Qp(0),this.expirationTimes=Qp(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Qp(0),this.identifierPrefix=l,this.onRecoverableError=p,this.mutableSourceEagerHydrationData=null}function lt(s,a,n,l,p,e,c,t,o){return s=new MI(s,a,n,t,o),a===1?(a=1,e===!0&&(a|=8)):a=0,e=Bs(3,null,null,a),s.current=e,e.stateNode=s,e.memoizedState={element:l,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},xc(e),s}function SI(s,a,n){var l=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Oi)}catch(s){console.error(s)}}Oi(),Oo.exports=ks;var EI=Oo.exports,Pi,$i,mo=EI;$i=mo.createRoot,Pi=mo.hydrateRoot;const qi={theme:"light",sideNav:!0,initialized:!1},sg=W.createContext({state:qi,init:s=>{},setTheme:s=>{},toggleSideNav:()=>{}});function tt(){return W.useContext(sg)}function bo(s,a){try{localStorage.setItem(s,a)}catch(n){console.error(n)}}const wo=({children:s})=>{const[a,n]=W.useState(qi);function l(t){t=="dark"?(document.body.classList.remove("light"),document.body.classList.add("dark")):(document.body.classList.remove("dark"),document.body.classList.add("light"))}function p(t){try{const o=localStorage.getItem("theme")||"light";let i=t.width>=500;{const I=localStorage.getItem("sideNav");I&&(i=I=="true")}l(o),n(I=>({...I,theme:o,sideNav:i}))}catch(o){console.error(o)}n(o=>({...o,initialized:!0}))}function e(t){l(t),n({...a,theme:t}),bo("theme",t)}function c(){const t=!a.sideNav;n({...a,sideNav:t}),bo("sideNav",t)}return r.jsx(sg.Provider,{value:W.useMemo(()=>({state:a,init:p,setTheme:e,toggleSideNav:c}),[a]),children:s})};/** - * @remix-run/router v1.19.1 + * @remix-run/router v1.20.0 * * Copyright (c) Remix Software Inc. * @@ -47,7 +47,7 @@ Error generating stack: `+e.message+` * * @license MIT */function pl(){return pl=Object.assign?Object.assign.bind():function(s){for(var a=1;a"u")throw new Error(a)}function ag(s,a){if(!s){typeof console<"u"&&console.warn(a);try{throw new Error(a)}catch{}}}function TI(){return Math.random().toString(36).substr(2,8)}function Zo(s,a){return{usr:s.state,key:s.key,idx:a}}function tc(s,a,n,l){return n===void 0&&(n=null),pl({pathname:typeof s=="string"?s:s.pathname,search:"",hash:""},typeof a=="string"?jn(a):a,{state:n,key:a&&a.key||l||TI()})}function ng(s){let{pathname:a="/",search:n="",hash:l=""}=s;return n&&n!=="?"&&(a+=n.charAt(0)==="?"?n:"?"+n),l&&l!=="#"&&(a+=l.charAt(0)==="#"?l:"#"+l),a}function jn(s){let a={};if(s){let n=s.indexOf("#");n>=0&&(a.hash=s.substr(n),s=s.substr(0,n));let l=s.indexOf("?");l>=0&&(a.search=s.substr(l),s=s.substr(0,l)),s&&(a.pathname=s)}return a}function LI(s,a,n,l){l===void 0&&(l={});let{window:p=document.defaultView,v5Compat:e=!1}=l,c=p.history,t=oa.Pop,o=null,i=I();i==null&&(i=0,c.replaceState(pl({},c.state,{idx:i}),""));function I(){return(c.state||{idx:null}).idx}function d(){t=oa.Pop;let G=I(),h=G==null?null:G-i;i=G,o&&o({action:t,location:b.location,delta:h})}function j(G,h){t=oa.Push;let g=tc(b.location,G,h);i=I()+1;let C=Zo(g,i),y=b.createHref(g);try{c.pushState(C,"",y)}catch(Z){if(Z instanceof DOMException&&Z.name==="DataCloneError")throw Z;p.location.assign(y)}e&&o&&o({action:t,location:b.location,delta:1})}function u(G,h){t=oa.Replace;let g=tc(b.location,G,h);i=I();let C=Zo(g,i),y=b.createHref(g);c.replaceState(C,"",y),e&&o&&o({action:t,location:b.location,delta:0})}function m(G){let h=p.location.origin!=="null"?p.location.origin:p.location.href,g=typeof G=="string"?G:ng(G);return g=g.replace(/ $/,"%20"),P(h,"No window.location.(origin|href) available to create URL for href: "+g),new URL(g,h)}let b={get action(){return t},get location(){return s(p,c)},listen(G){if(o)throw new Error("A history only accepts one active listener");return p.addEventListener(ko,d),o=G,()=>{p.removeEventListener(ko,d),o=null}},createHref(G){return a(p,G)},createURL:m,encodeLocation(G){let h=m(G);return{pathname:h.pathname,search:h.search,hash:h.hash}},push:j,replace:u,go(G){return c.go(G)}};return b}var Wo;(function(s){s.data="data",s.deferred="deferred",s.redirect="redirect",s.error="error"})(Wo||(Wo={}));function UI(s,a,n){return n===void 0&&(n="/"),_I(s,a,n,!1)}function _I(s,a,n,l){let p=typeof a=="string"?jn(a):a,e=eg(p.pathname||"/",n);if(e==null)return null;let c=lg(s);OI(c);let t=null;for(let o=0;t==null&&o{let o={relativePath:t===void 0?e.path||"":t,caseSensitive:e.caseSensitive===!0,childrenIndex:c,route:e};o.relativePath.startsWith("/")&&(P(o.relativePath.startsWith(l),'Absolute route path "'+o.relativePath+'" nested under path '+('"'+l+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),o.relativePath=o.relativePath.slice(l.length));let i=Xa([l,o.relativePath]),I=n.concat(o);e.children&&e.children.length>0&&(P(e.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+i+'".')),lg(e.children,a,I,i)),!(e.path==null&&!e.index)&&a.push({path:i,score:ld(i,e.index),routesMeta:I})};return s.forEach((e,c)=>{var t;if(e.path===""||!((t=e.path)!=null&&t.includes("?")))p(e,c);else for(let o of pg(e.path))p(e,c,o)}),a}function pg(s){let a=s.split("/");if(a.length===0)return[];let[n,...l]=a,p=n.endsWith("?"),e=n.replace(/\?$/,"");if(l.length===0)return p?[e,""]:[e];let c=pg(l.join("/")),t=[];return t.push(...c.map(o=>o===""?e:[e,o].join("/"))),p&&t.push(...c),t.map(o=>s.startsWith("/")&&o===""?"/":o)}function OI(s){s.sort((a,n)=>a.score!==n.score?n.score-a.score:pd(a.routesMeta.map(l=>l.childrenIndex),n.routesMeta.map(l=>l.childrenIndex)))}const PI=/^:[\w-]+$/,$I=3,qI=2,sd=1,ad=10,nd=-2,Go=s=>s==="*";function ld(s,a){let n=s.split("/"),l=n.length;return n.some(Go)&&(l+=nd),a&&(l+=qI),n.filter(p=>!Go(p)).reduce((p,e)=>p+(PI.test(e)?$I:e===""?sd:ad),l)}function pd(s,a){return s.length===a.length&&s.slice(0,-1).every((l,p)=>l===a[p])?s[s.length-1]-a[a.length-1]:0}function ed(s,a,n){let{routesMeta:l}=s,p={},e="/",c=[];for(let t=0;t{let{paramName:j,isOptional:u}=I;if(j==="*"){let b=t[d]||"";c=e.slice(0,e.length-b.length).replace(/(.)\/+$/,"$1")}const m=t[d];return u&&!m?i[j]=void 0:i[j]=(m||"").replace(/%2F/g,"/"),i},{}),pathname:e,pathnameBase:c,pattern:s}}function cd(s,a,n){a===void 0&&(a=!1),n===void 0&&(n=!0),ag(s==="*"||!s.endsWith("*")||s.endsWith("/*"),'Route path "'+s+'" will be treated as if it were '+('"'+s.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+s.replace(/\*$/,"/*")+'".'));let l=[],p="^"+s.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(c,t,o)=>(l.push({paramName:t,isOptional:o!=null}),o?"/?([^\\/]+)?":"/([^\\/]+)"));return s.endsWith("*")?(l.push({paramName:"*"}),p+=s==="*"||s==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?p+="\\/*$":s!==""&&s!=="/"&&(p+="(?:(?=\\/|$))"),[new RegExp(p,a?void 0:"i"),l]}function td(s){try{return s.split("/").map(a=>decodeURIComponent(a).replace(/\//g,"%2F")).join("/")}catch(a){return ag(!1,'The URL path "'+s+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+a+").")),s}}function eg(s,a){if(a==="/")return s;if(!s.toLowerCase().startsWith(a.toLowerCase()))return null;let n=a.endsWith("/")?a.length-1:a.length,l=s.charAt(n);return l&&l!=="/"?null:s.slice(n)||"/"}function od(s,a){a===void 0&&(a="/");let{pathname:n,search:l="",hash:p=""}=typeof s=="string"?jn(s):s;return{pathname:n?n.startsWith("/")?n:rd(n,a):a,search:dd(l),hash:Cd(p)}}function rd(s,a){let n=a.replace(/\/+$/,"").split("/");return s.split("/").forEach(p=>{p===".."?n.length>1&&n.pop():p!=="."&&n.push(p)}),n.length>1?n.join("/"):"/"}function he(s,a,n,l){return"Cannot include a '"+s+"' character in a manually specified "+("`to."+a+"` field ["+JSON.stringify(l)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function id(s){return s.filter((a,n)=>n===0||a.route.path&&a.route.path.length>0)}function gd(s,a){let n=id(s);return a?n.map((l,p)=>p===n.length-1?l.pathname:l.pathnameBase):n.map(l=>l.pathnameBase)}function hd(s,a,n,l){l===void 0&&(l=!1);let p;typeof s=="string"?p=jn(s):(p=pl({},s),P(!p.pathname||!p.pathname.includes("?"),he("?","pathname","search",p)),P(!p.pathname||!p.pathname.includes("#"),he("#","pathname","hash",p)),P(!p.search||!p.search.includes("#"),he("#","search","hash",p)));let e=s===""||p.pathname==="",c=e?"/":p.pathname,t;if(c==null)t=n;else{let d=a.length-1;if(!l&&c.startsWith("..")){let j=c.split("/");for(;j[0]==="..";)j.shift(),d-=1;p.pathname=j.join("/")}t=d>=0?a[d]:"/"}let o=od(p,t),i=c&&c!=="/"&&c.endsWith("/"),I=(e||c===".")&&n.endsWith("/");return!o.pathname.endsWith("/")&&(i||I)&&(o.pathname+="/"),o}const Xa=s=>s.join("/").replace(/\/\/+/g,"/"),Id=s=>s.replace(/\/+$/,"").replace(/^\/*/,"/"),dd=s=>!s||s==="?"?"":s.startsWith("?")?s:"?"+s,Cd=s=>!s||s==="#"?"":s.startsWith("#")?s:"#"+s;function jd(s){return s!=null&&typeof s.status=="number"&&typeof s.statusText=="string"&&typeof s.internal=="boolean"&&"data"in s}const cg=["post","put","patch","delete"];new Set(cg);const Ad=["get",...cg];new Set(Ad);/** - * React Router v6.26.1 + * React Router v6.27.0 * * Copyright (c) Remix Software Inc. * @@ -56,7 +56,7 @@ Error generating stack: `+e.message+` * * @license MIT */function el(){return el=Object.assign?Object.assign.bind():function(s){for(var a=1;a{t.current=!0}),W.useCallback(function(i,I){if(I===void 0&&(I={}),!t.current)return;if(typeof i=="number"){l.go(i);return}let d=hd(i,JSON.parse(c),e,I.relative==="path");s==null&&a!=="/"&&(d.pathname=d.pathname==="/"?a:Xa([a,d.pathname])),(I.replace?l.replace:l.push)(d,I.state,I)},[a,l,c,e,s])}function bd(s,a){return wd(s,a)}function wd(s,a,n,l){Hp()||P(!1);let{navigator:p}=W.useContext(vp),{matches:e}=W.useContext(An),c=e[e.length-1],t=c?c.params:{};c&&c.pathname;let o=c?c.pathnameBase:"/";c&&c.route;let i=Kp(),I;if(a){var d;let G=typeof a=="string"?jn(a):a;o==="/"||(d=G.pathname)!=null&&d.startsWith(o)||P(!1),I=G}else I=i;let j=I.pathname||"/",u=j;if(o!=="/"){let G=o.replace(/^\//,"").split("/");u="/"+j.replace(/^\//,"").split("/").slice(G.length).join("/")}let m=UI(s,{pathname:u}),b=Bd(m&&m.map(G=>Object.assign({},G,{params:Object.assign({},t,G.params),pathname:Xa([o,p.encodeLocation?p.encodeLocation(G.pathname).pathname:G.pathname]),pathnameBase:G.pathnameBase==="/"?o:Xa([o,p.encodeLocation?p.encodeLocation(G.pathnameBase).pathname:G.pathnameBase])})),e,n,l);return a&&b?W.createElement(Np.Provider,{value:{location:el({pathname:"/",search:"",hash:"",state:null,key:"default"},I),navigationType:oa.Pop}},b):b}function kd(){let s=Xd(),a=jd(s)?s.status+" "+s.statusText:s instanceof Error?s.message:JSON.stringify(s),n=s instanceof Error?s.stack:null,p={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return W.createElement(W.Fragment,null,W.createElement("h2",null,"Unexpected Application Error!"),W.createElement("h3",{style:{fontStyle:"italic"}},a),n?W.createElement("pre",{style:p},n):null,null)}const Zd=W.createElement(kd,null);class Wd extends W.Component{constructor(a){super(a),this.state={location:a.location,revalidation:a.revalidation,error:a.error}}static getDerivedStateFromError(a){return{error:a}}static getDerivedStateFromProps(a,n){return n.location!==a.location||n.revalidation!=="idle"&&a.revalidation==="idle"?{error:a.error,location:a.location,revalidation:a.revalidation}:{error:a.error!==void 0?a.error:n.error,location:n.location,revalidation:a.revalidation||n.revalidation}}componentDidCatch(a,n){console.error("React Router caught the following error during render",a,n)}render(){return this.state.error!==void 0?W.createElement(An.Provider,{value:this.props.routeContext},W.createElement(tg.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Gd(s){let{routeContext:a,match:n,children:l}=s,p=W.useContext(ot);return p&&p.static&&p.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(p.staticContext._deepestRenderedBoundaryId=n.route.id),W.createElement(An.Provider,{value:a},l)}function Bd(s,a,n,l){var p;if(a===void 0&&(a=[]),n===void 0&&(n=null),l===void 0&&(l=null),s==null){var e;if(!n)return null;if(n.errors)s=n.matches;else if((e=l)!=null&&e.v7_partialHydration&&a.length===0&&!n.initialized&&n.matches.length>0)s=n.matches;else return null}let c=s,t=(p=n)==null?void 0:p.errors;if(t!=null){let I=c.findIndex(d=>d.route.id&&(t==null?void 0:t[d.route.id])!==void 0);I>=0||P(!1),c=c.slice(0,Math.min(c.length,I+1))}let o=!1,i=-1;if(n&&l&&l.v7_partialHydration)for(let I=0;I=0?c=c.slice(0,i+1):c=[c[0]];break}}}return c.reduceRight((I,d,j)=>{let u,m=!1,b=null,G=null;n&&(u=t&&d.route.id?t[d.route.id]:void 0,b=d.route.errorElement||Zd,o&&(i<0&&j===0?(m=!0,G=null):i===j&&(m=!0,G=d.route.hydrateFallbackElement||null)));let h=a.concat(c.slice(0,j+1)),g=()=>{let C;return u?C=b:m?C=G:d.route.Component?C=W.createElement(d.route.Component,null):d.route.element?C=d.route.element:C=I,W.createElement(Gd,{match:d,routeContext:{outlet:I,matches:h,isDataRoute:n!=null},children:C})};return n&&(d.route.ErrorBoundary||d.route.errorElement||j===0)?W.createElement(Wd,{location:n.location,revalidation:n.revalidation,component:b,error:u,children:g(),routeContext:{outlet:null,matches:h,isDataRoute:!0}}):g()},null)}var rg=function(s){return s.UseBlocker="useBlocker",s.UseRevalidator="useRevalidator",s.UseNavigateStable="useNavigate",s}(rg||{}),Cp=function(s){return s.UseBlocker="useBlocker",s.UseLoaderData="useLoaderData",s.UseActionData="useActionData",s.UseRouteError="useRouteError",s.UseNavigation="useNavigation",s.UseRouteLoaderData="useRouteLoaderData",s.UseMatches="useMatches",s.UseRevalidator="useRevalidator",s.UseNavigateStable="useNavigate",s.UseRouteId="useRouteId",s}(Cp||{});function fd(s){let a=W.useContext(ot);return a||P(!1),a}function Vd(s){let a=W.useContext(ud);return a||P(!1),a}function Yd(s){let a=W.useContext(An);return a||P(!1),a}function ig(s){let a=Yd(),n=a.matches[a.matches.length-1];return n.route.id||P(!1),n.route.id}function Xd(){var s;let a=W.useContext(tg),n=Vd(Cp.UseRouteError),l=ig(Cp.UseRouteError);return a!==void 0?a:(s=n.errors)==null?void 0:s[l]}function Rd(){let{router:s}=fd(rg.UseNavigateStable),a=ig(Cp.UseNavigateStable),n=W.useRef(!1);return og(()=>{n.current=!0}),W.useCallback(function(p,e){e===void 0&&(e={}),n.current&&(typeof p=="number"?s.navigate(p):s.navigate(p,el({fromRouteId:a},e)))},[s,a])}function gg(s){P(!1)}function vd(s){let{basename:a="/",children:n=null,location:l,navigationType:p=oa.Pop,navigator:e,static:c=!1,future:t}=s;Hp()&&P(!1);let o=a.replace(/^\/*/,"/"),i=W.useMemo(()=>({basename:o,navigator:e,static:c,future:el({v7_relativeSplatPath:!1},t)}),[o,t,e,c]);typeof l=="string"&&(l=jn(l));let{pathname:I="/",search:d="",hash:j="",state:u=null,key:m="default"}=l,b=W.useMemo(()=>{let G=eg(I,o);return G==null?null:{location:{pathname:G,search:d,hash:j,state:u,key:m},navigationType:p}},[o,I,d,j,u,m,p]);return b==null?null:W.createElement(vp.Provider,{value:i},W.createElement(Np.Provider,{children:n,value:b}))}function Nd(s){let{children:a,location:n}=s;return bd(rc(a),n)}new Promise(()=>{});function rc(s,a){a===void 0&&(a=[]);let n=[];return W.Children.forEach(s,(l,p)=>{if(!W.isValidElement(l))return;let e=[...a,p];if(l.type===W.Fragment){n.push.apply(n,rc(l.props.children,e));return}l.type!==gg&&P(!1),!l.props.index||!l.props.children||P(!1);let c={id:l.props.id||e.join("-"),caseSensitive:l.props.caseSensitive,element:l.props.element,Component:l.props.Component,index:l.props.index,path:l.props.path,loader:l.props.loader,action:l.props.action,errorElement:l.props.errorElement,ErrorBoundary:l.props.ErrorBoundary,hasErrorBoundary:l.props.ErrorBoundary!=null||l.props.errorElement!=null,shouldRevalidate:l.props.shouldRevalidate,handle:l.props.handle,lazy:l.props.lazy};l.props.children&&(c.children=rc(l.props.children,e)),n.push(c)}),n}/** - * React Router DOM v6.26.1 + * React Router DOM v6.27.0 * * Copyright (c) Remix Software Inc. * @@ -10206,7 +10206,7 @@ DeployerDeployer -- create2 --> Deployer -- create --> Attack selfdestruct(payable(address(0))); } } -`,KW=({prev:s,next:a})=>r.jsx(A,{version:YW,title:XW,description:RW,cyfrinLink:vW,html:HW,prev:s,next:a,codes:NW}),FW="0.8.26",MW="Front Running",SW="An example of a Solidity contract vulnerable to front running",xW="",JW=[{fileName:"FrontRunning.sol",code:"Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVApwcmFnbWEgc29saWRpdHkgXjAuOC4yNjsKCi8qCkFsaWNlIGNyZWF0ZXMgYSBndWVzc2luZyBnYW1lLgpZb3Ugd2luIDEwIGV0aGVyIGlmIHlvdSBjYW4gZmluZCB0aGUgY29ycmVjdCBzdHJpbmcgdGhhdCBoYXNoZXMgdG8gdGhlIHRhcmdldApoYXNoLiBMZXQncyBzZWUgaG93IHRoaXMgY29udHJhY3QgaXMgdnVsbmVyYWJsZSB0byBmcm9udCBydW5uaW5nLgoqLwoKLyoKMS4gQWxpY2UgZGVwbG95cyBGaW5kVGhpc0hhc2ggd2l0aCAxMCBFdGhlci4KMi4gQm9iIGZpbmRzIHRoZSBjb3JyZWN0IHN0cmluZyB0aGF0IHdpbGwgaGFzaCB0byB0aGUgdGFyZ2V0IGhhc2guICgiRXRoZXJldW0iKQozLiBCb2IgY2FsbHMgc29sdmUoIkV0aGVyZXVtIikgd2l0aCBnYXMgcHJpY2Ugc2V0IHRvIDE1IGd3ZWkuCjQuIEV2ZSBpcyB3YXRjaGluZyB0aGUgdHJhbnNhY3Rpb24gcG9vbCBmb3IgdGhlIGFuc3dlciB0byBiZSBzdWJtaXR0ZWQuCjUuIEV2ZSBzZWVzIEJvYidzIGFuc3dlciBhbmQgY2FsbHMgc29sdmUoIkV0aGVyZXVtIikgd2l0aCBhIGhpZ2hlciBnYXMgcHJpY2UKICAgdGhhbiBCb2IgKDEwMCBnd2VpKS4KNi4gRXZlJ3MgdHJhbnNhY3Rpb24gd2FzIG1pbmVkIGJlZm9yZSBCb2IncyB0cmFuc2FjdGlvbi4KICAgRXZlIHdvbiB0aGUgcmV3YXJkIG9mIDEwIGV0aGVyLgoKV2hhdCBoYXBwZW5lZD8KVHJhbnNhY3Rpb25zIHRha2Ugc29tZSB0aW1lIGJlZm9yZSB0aGV5IGFyZSBtaW5lZC4KVHJhbnNhY3Rpb25zIG5vdCB5ZXQgbWluZWQgYXJlIHB1dCBpbiB0aGUgdHJhbnNhY3Rpb24gcG9vbC4KVHJhbnNhY3Rpb25zIHdpdGggaGlnaGVyIGdhcyBwcmljZSBhcmUgdHlwaWNhbGx5IG1pbmVkIGZpcnN0LgpBbiBhdHRhY2tlciBjYW4gZ2V0IHRoZSBhbnN3ZXIgZnJvbSB0aGUgdHJhbnNhY3Rpb24gcG9vbCwgc2VuZCBhIHRyYW5zYWN0aW9uCndpdGggYSBoaWdoZXIgZ2FzIHByaWNlIHNvIHRoYXQgdGhlaXIgdHJhbnNhY3Rpb24gd2lsbCBiZSBpbmNsdWRlZCBpbiBhIGJsb2NrCmJlZm9yZSB0aGUgb3JpZ2luYWwuCiovCgpjb250cmFjdCBGaW5kVGhpc0hhc2ggewogICAgYnl0ZXMzMiBwdWJsaWMgY29uc3RhbnQgaGFzaCA9CiAgICAgICAgMHg1NjRjY2FmNzU5NGQ2NmIxZWFhZWEyNGZlMDFmMDU4NWJmNTJlZTcwODUyYWY0ZWFjMGNjNGIwNDcxMWNkMGUyOwoKICAgIGNvbnN0cnVjdG9yKCkgcGF5YWJsZSB7fQoKICAgIGZ1bmN0aW9uIHNvbHZlKHN0cmluZyBtZW1vcnkgc29sdXRpb24pIHB1YmxpYyB7CiAgICAgICAgcmVxdWlyZSgKICAgICAgICAgICAgaGFzaCA9PSBrZWNjYWsyNTYoYWJpLmVuY29kZVBhY2tlZChzb2x1dGlvbikpLCAiSW5jb3JyZWN0IGFuc3dlciIKICAgICAgICApOwoKICAgICAgICAoYm9vbCBzZW50LCkgPSBtc2cuc2VuZGVyLmNhbGx7dmFsdWU6IDEwIGV0aGVyfSgiIik7CiAgICAgICAgcmVxdWlyZShzZW50LCAiRmFpbGVkIHRvIHNlbmQgRXRoZXIiKTsKICAgIH0KfQo="},{fileName:"PreventFrontRunning.sol",code:"Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVApwcmFnbWEgc29saWRpdHkgXjAuOC4yNjsKCi8qCiAgIE5vdyBMZXQncyBzZWUgaG93IHRvIGd1YXJkIGZyb20gZnJvbnQgcnVubmluZyB1c2luZyBjb21taXQgcmV2ZWFsIHNjaGVtZS4KKi8KCi8qCjEuIEFsaWNlIGRlcGxveXMgU2VjdXJlZEZpbmRUaGlzSGFzaCB3aXRoIDEwIEV0aGVyLgoyLiBCb2IgZmluZHMgdGhlIGNvcnJlY3Qgc3RyaW5nIHRoYXQgd2lsbCBoYXNoIHRvIHRoZSB0YXJnZXQgaGFzaC4gKCJFdGhlcmV1bSIpLgozLiBCb2IgdGhlbiBmaW5kcyB0aGUga2VjY2FrMjU2KEFkZHJlc3MgaW4gbG93ZXJjYXNlICsgU29sdXRpb24gKyBTZWNyZXQpLiAKICAgQWRkcmVzcyBpcyBoaXMgd2FsbGV0IGFkZHJlc3MgaW4gbG93ZXJjYXNlLCBzb2x1dGlvbiBpcyAiRXRoZXJldW0iLCBTZWNyZXQgaXMgbGlrZSBhbiBwYXNzd29yZCAoIm15c2VjcmV0IikgCiAgIHRoYXQgb25seSBCb2Iga25vd3Mgd2hpY2ggQm9iIHVzZXMgdG8gY29tbWl0IGFuZCByZXZlYWwgdGhlIHNvbHV0aW9uLgogICBrZWNjYWsyNTY2KCIweGYzOUZkNmU1MWFhZDg4RjZGNGNlNmFCODgyNzI3OWNmZkZiOTIyNjZFdGhlcmV1bW15c2VjcmV0IikgPSAnMHhmOTViMWRkNjFlZGMzYmQ5NjJjZGVhMzk4N2M2ZjU1YmNiNzE0YTAyYTJjM2ViNzNiZDk2MGQ2YjQzODdmYzM2JwozLiBCb2IgdGhlbiBjYWxscyBjb21taXRTb2x1dGlvbigiMHhmOTViMWRkNjFlZGMzYmQ5NjJjZGVhMzk4N2M2ZjU1YmNiNzE0YTAyYTJjM2ViNzNiZDk2MGQ2YjQzODdmYzM2IiksIAogICB3aGVyZSBoZSBjb21taXRzIHRoZSBjYWxjdWxhdGVkIHNvbHV0aW9uIGhhc2ggd2l0aCBnYXMgcHJpY2Ugc2V0IHRvIDE1IGd3ZWkuCjQuIEV2ZSBpcyB3YXRjaGluZyB0aGUgdHJhbnNhY3Rpb24gcG9vbCBmb3IgdGhlIGFuc3dlciB0byBiZSBzdWJtaXR0ZWQuCjUuIEV2ZSBzZWVzIEJvYidzIGFuc3dlciBhbmQgaGUgYWxzbyBjYWxscyBjb21taXRTb2x1dGlvbigiMHhmOTViMWRkNjFlZGMzYmQ5NjJjZGVhMzk4N2M2ZjU1YmNiNzE0YTAyYTJjM2ViNzNiZDk2MGQ2YjQzODdmYzM2IikKICAgd2l0aCBhIGhpZ2hlciBnYXMgcHJpY2UgdGhhbiBCb2IgKDEwMCBnd2VpKS4KNi4gRXZlJ3MgdHJhbnNhY3Rpb24gd2FzIG1pbmVkIGJlZm9yZSBCb2IncyB0cmFuc2FjdGlvbiwgYnV0IEV2ZSBoYXMgbm90IGdvdCB0aGUgcmV3YXJkIHlldC4KICAgSGUgbmVlZHMgdG8gY2FsbCByZXZlYWxTb2x1dGlvbigpIHdpdGggZXhhY3Qgc2VjcmV0IGFuZCBzb2x1dGlvbiwgc28gbGV0cyBzYXkgaGUgaXMgd2F0Y2hpbmcgdGhlIHRyYW5zYWN0aW9uIHBvb2wKICAgdG8gZnJvbnQgcnVuIEJvYiBhcyBoZSBkaWQgcHJldmlvdXNseQo3LiBUaGVuIEJvYiBjYWxscyB0aGUgcmV2ZWFsU29sdXRpb24oIkV0aGVyZXVtIiwgIm15c2VjcmV0Iikgd2l0aCBnYXMgcHJpY2Ugc2V0IHRvIDE1IGd3ZWk7CjguIExldCdzIGNvbnNpZGVyIHRoYXQgRXZlJ3Mgd2hvJ3Mgd2F0Y2hpbmcgdGhlIHRyYW5zYWN0aW9uIHBvb2wsIGZpbmQncyBCb2IncyByZXZlYWwgc29sdXRpb24gdHJhbnNhY3Rpb24gYW5kIGhlIGFsc28gY2FsbHMgCiAgIHJldmVhbFNvbHV0aW9uKCJFdGhlcmV1bSIsICJteXNlY3JldCIpIHdpdGggaGlnaGVyIGdhcyBwcmljZSB0aGFuIEJvYiAoMTAwIGd3ZWkpCjkuIExldCdzIGNvbnNpZGVyIHRoYXQgdGhpcyB0aW1lIGFsc28gRXZlJ3MgcmV2ZWFsIHRyYW5zYWN0aW9uIHdhcyBtaW5lZCBiZWZvcmUgQm9iJ3MgdHJhbnNhY3Rpb24sIGJ1dCBFdmUgd2lsbCBiZQogICByZXZlcnRlZCB3aXRoICJIYXNoIGRvZXNuJ3QgbWF0Y2giIGVycm9yLiBTaW5jZSB0aGUgcmV2ZWFsU29sdXRpb24oKSBmdW5jdGlvbiBjaGVja3MgdGhlIGhhc2ggdXNpbmcgCiAgIGtlY2NhazI1Nihtc2cuc2VuZGVyICsgc29sdXRpb24gKyBzZWNyZXQpLiBTbyB0aGlzIHRpbWUgZXZlIGZhaWxzIHRvIHdpbiB0aGUgcmV3YXJkLgoxMC5CdXQgQm9iJ3MgcmV2ZWFsU29sdXRpb24oIkV0aGVyZXVtIiwgIm15c2VjcmV0IikgcGFzc2VzIHRoZSBoYXNoIGNoZWNrIGFuZCBnZXRzIHRoZSByZXdhcmQgb2YgMTAgZXRoZXIuCiovCgpjb250cmFjdCBTZWN1cmVkRmluZFRoaXNIYXNoIHsKICAgIC8vIFN0cnVjdCBpcyB1c2VkIHRvIHN0b3JlIHRoZSBjb21taXQgZGV0YWlscwogICAgc3RydWN0IENvbW1pdCB7CiAgICAgICAgYnl0ZXMzMiBzb2x1dGlvbkhhc2g7CiAgICAgICAgdWludDI1NiBjb21taXRUaW1lOwogICAgICAgIGJvb2wgcmV2ZWFsZWQ7CiAgICB9CgogICAgLy8gVGhlIGhhc2ggdGhhdCBpcyBuZWVkZWQgdG8gYmUgc29sdmVkCiAgICBieXRlczMyIHB1YmxpYyBoYXNoID0KICAgICAgICAweDU2NGNjYWY3NTk0ZDY2YjFlYWFlYTI0ZmUwMWYwNTg1YmY1MmVlNzA4NTJhZjRlYWMwY2M0YjA0NzExY2QwZTI7CgogICAgLy8gQWRkcmVzcyBvZiB0aGUgd2lubmVyCiAgICBhZGRyZXNzIHB1YmxpYyB3aW5uZXI7CgogICAgLy8gUHJpY2UgdG8gYmUgcmV3YXJkZWQKICAgIHVpbnQyNTYgcHVibGljIHJld2FyZDsKCiAgICAvLyBTdGF0dXMgb2YgZ2FtZQogICAgYm9vbCBwdWJsaWMgZW5kZWQ7CgogICAgLy8gTWFwcGluZyB0byBzdG9yZSB0aGUgY29tbWl0IGRldGFpbHMgd2l0aCBhZGRyZXNzCiAgICBtYXBwaW5nKGFkZHJlc3MgPT4gQ29tbWl0KSBjb21taXRzOwoKICAgIC8vIE1vZGlmaWVyIHRvIGNoZWNrIGlmIHRoZSBnYW1lIGlzIGFjdGl2ZQogICAgbW9kaWZpZXIgZ2FtZUFjdGl2ZSgpIHsKICAgICAgICByZXF1aXJlKCFlbmRlZCwgIkFscmVhZHkgZW5kZWQiKTsKICAgICAgICBfOwogICAgfQoKICAgIGNvbnN0cnVjdG9yKCkgcGF5YWJsZSB7CiAgICAgICAgcmV3YXJkID0gbXNnLnZhbHVlOwogICAgfQoKICAgIC8qIAogICAgICAgQ29tbWl0IGZ1bmN0aW9uIHRvIHN0b3JlIHRoZSBoYXNoIGNhbGN1bGF0ZWQgdXNpbmcga2VjY2FrMjU2KGFkZHJlc3MgaW4gbG93ZXJjYXNlICsgc29sdXRpb24gKyBzZWNyZXQpLiAKICAgICAgIFVzZXJzIGNhbiBvbmx5IGNvbW1pdCBvbmNlIGFuZCBpZiB0aGUgZ2FtZSBpcyBhY3RpdmUuCiAgICAqLwogICAgZnVuY3Rpb24gY29tbWl0U29sdXRpb24oYnl0ZXMzMiBfc29sdXRpb25IYXNoKSBwdWJsaWMgZ2FtZUFjdGl2ZSB7CiAgICAgICAgQ29tbWl0IHN0b3JhZ2UgY29tbWl0ID0gY29tbWl0c1ttc2cuc2VuZGVyXTsKICAgICAgICByZXF1aXJlKGNvbW1pdC5jb21taXRUaW1lID09IDAsICJBbHJlYWR5IGNvbW1pdHRlZCIpOwogICAgICAgIGNvbW1pdC5zb2x1dGlvbkhhc2ggPSBfc29sdXRpb25IYXNoOwogICAgICAgIGNvbW1pdC5jb21taXRUaW1lID0gYmxvY2sudGltZXN0YW1wOwogICAgICAgIGNvbW1pdC5yZXZlYWxlZCA9IGZhbHNlOwogICAgfQoKICAgIC8qIAogICAgICAgIEZ1bmN0aW9uIHRvIGdldCB0aGUgY29tbWl0IGRldGFpbHMuIEl0IHJldHVybnMgYSB0dXBsZSBvZiAoc29sdXRpb25IYXNoLCBjb21taXRUaW1lLCByZXZlYWxTdGF0dXMpOyAgCiAgICAgICAgVXNlcnMgY2FuIGdldCBzb2x1dGlvbiBvbmx5IGlmIHRoZSBnYW1lIGlzIGFjdGl2ZSBhbmQgdGhleSBoYXZlIGNvbW1pdHRlZCBhIHNvbHV0aW9uSGFzaAogICAgKi8KICAgIGZ1bmN0aW9uIGdldE15U29sdXRpb24oKQogICAgICAgIHB1YmxpYwogICAgICAgIHZpZXcKICAgICAgICBnYW1lQWN0aXZlCiAgICAgICAgcmV0dXJucyAoYnl0ZXMzMiwgdWludDI1NiwgYm9vbCkKICAgIHsKICAgICAgICBDb21taXQgc3RvcmFnZSBjb21taXQgPSBjb21taXRzW21zZy5zZW5kZXJdOwogICAgICAgIHJlcXVpcmUoY29tbWl0LmNvbW1pdFRpbWUgIT0gMCwgIk5vdCBjb21taXR0ZWQgeWV0Iik7CiAgICAgICAgcmV0dXJuIChjb21taXQuc29sdXRpb25IYXNoLCBjb21taXQuY29tbWl0VGltZSwgY29tbWl0LnJldmVhbGVkKTsKICAgIH0KICAgIC8qIAogICAgICAgIEZ1bmN0aW9uIHRvIHJldmVhbCB0aGUgY29tbWl0IGFuZCBnZXQgdGhlIHJld2FyZC4gCiAgICAgICAgVXNlcnMgY2FuIGdldCByZXZlYWwgc29sdXRpb24gb25seSBpZiB0aGUgZ2FtZSBpcyBhY3RpdmUgYW5kIHRoZXkgaGF2ZSBjb21taXR0ZWQgYSBzb2x1dGlvbkhhc2ggYmVmb3JlIHRoaXMgYmxvY2sgYW5kIG5vdCByZXZlYWxlZCB5ZXQuCiAgICAgICAgSXQgZ2VuZXJhdGVzIGFuIGtlY2NhazI1Nihtc2cuc2VuZGVyICsgc29sdXRpb24gKyBzZWNyZXQpIGFuZCBjaGVja3MgaXQgd2l0aCB0aGUgcHJldmlvdXNseSBjb21taXR0ZWQgaGFzaC4gIAogICAgICAgIEFzc3VtaW5nIHRoYXQgYSBjb21taXQgd2FzIGFscmVhZHkgaW5jbHVkZWQgb24gY2hhaW4sIGZyb250IHJ1bm5lcnMgd2lsbCBub3QgYmUgYWJsZSB0byBwYXNzIHRoaXMgY2hlY2sgc2luY2UgdGhlIG1zZy5zZW5kZXIgaXMgZGlmZmVyZW50LgogICAgICAgIFRoZW4gdGhlIGFjdHVhbCBzb2x1dGlvbiBpcyBjaGVja2VkIHVzaW5nIGtlY2NhazI1Nihzb2x1dGlvbiksIGlmIHRoZSBzb2x1dGlvbiBtYXRjaGVzLCB0aGUgd2lubmVyIGlzIGRlY2xhcmVkLCAKICAgICAgICB0aGUgZ2FtZSBpcyBlbmRlZCBhbmQgdGhlIHJld2FyZCBhbW91bnQgaXMgc2VudCB0byB0aGUgd2lubmVyLgogICAgKi8KCiAgICBmdW5jdGlvbiByZXZlYWxTb2x1dGlvbihzdHJpbmcgbWVtb3J5IF9zb2x1dGlvbiwgc3RyaW5nIG1lbW9yeSBfc2VjcmV0KQogICAgICAgIHB1YmxpYwogICAgICAgIGdhbWVBY3RpdmUKICAgIHsKICAgICAgICBDb21taXQgc3RvcmFnZSBjb21taXQgPSBjb21taXRzW21zZy5zZW5kZXJdOwogICAgICAgIHJlcXVpcmUoY29tbWl0LmNvbW1pdFRpbWUgIT0gMCwgIk5vdCBjb21taXR0ZWQgeWV0Iik7CiAgICAgICAgcmVxdWlyZSgKICAgICAgICAgICAgY29tbWl0LmNvbW1pdFRpbWUgPCBibG9jay50aW1lc3RhbXAsCiAgICAgICAgICAgICJDYW5ub3QgcmV2ZWFsIGluIHRoZSBzYW1lIGJsb2NrIgogICAgICAgICk7CiAgICAgICAgcmVxdWlyZSghY29tbWl0LnJldmVhbGVkLCAiQWxyZWFkeSBjb21taXR0ZWQgYW5kIHJldmVhbGVkIik7CgogICAgICAgIGJ5dGVzMzIgc29sdXRpb25IYXNoID0KICAgICAgICAgICAga2VjY2FrMjU2KGFiaS5lbmNvZGVQYWNrZWQobXNnLnNlbmRlciwgX3NvbHV0aW9uLCBfc2VjcmV0KSk7CiAgICAgICAgcmVxdWlyZShzb2x1dGlvbkhhc2ggPT0gY29tbWl0LnNvbHV0aW9uSGFzaCwgIkhhc2ggZG9lc24ndCBtYXRjaCIpOwoKICAgICAgICByZXF1aXJlKAogICAgICAgICAgICBrZWNjYWsyNTYoYWJpLmVuY29kZVBhY2tlZChfc29sdXRpb24pKSA9PSBoYXNoLCAiSW5jb3JyZWN0IGFuc3dlciIKICAgICAgICApOwoKICAgICAgICB3aW5uZXIgPSBtc2cuc2VuZGVyOwogICAgICAgIGVuZGVkID0gdHJ1ZTsKCiAgICAgICAgKGJvb2wgc2VudCwpID0gcGF5YWJsZShtc2cuc2VuZGVyKS5jYWxse3ZhbHVlOiByZXdhcmR9KCIiKTsKICAgICAgICBpZiAoIXNlbnQpIHsKICAgICAgICAgICAgd2lubmVyID0gYWRkcmVzcygwKTsKICAgICAgICAgICAgZW5kZWQgPSBmYWxzZTsKICAgICAgICAgICAgcmV2ZXJ0KCJGYWlsZWQgdG8gc2VuZCBldGhlci4iKTsKICAgICAgICB9CiAgICB9Cn0K"}],zW=`

Vulnerability

+`,KW=({prev:s,next:a})=>r.jsx(A,{version:YW,title:XW,description:RW,cyfrinLink:vW,html:HW,prev:s,next:a,codes:NW}),FW="0.8.26",MW="Front Running",SW="An example of a Solidity contract vulnerable to front running",xW="",JW=[{fileName:"FrontRunning.sol",code:"Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVApwcmFnbWEgc29saWRpdHkgXjAuOC4yNjsKCi8qCkFsaWNlIGNyZWF0ZXMgYSBndWVzc2luZyBnYW1lLgpZb3Ugd2luIDEwIGV0aGVyIGlmIHlvdSBjYW4gZmluZCB0aGUgY29ycmVjdCBzdHJpbmcgdGhhdCBoYXNoZXMgdG8gdGhlIHRhcmdldApoYXNoLiBMZXQncyBzZWUgaG93IHRoaXMgY29udHJhY3QgaXMgdnVsbmVyYWJsZSB0byBmcm9udCBydW5uaW5nLgoqLwoKLyoKMS4gQWxpY2UgZGVwbG95cyBGaW5kVGhpc0hhc2ggd2l0aCAxMCBFdGhlci4KMi4gQm9iIGZpbmRzIHRoZSBjb3JyZWN0IHN0cmluZyB0aGF0IHdpbGwgaGFzaCB0byB0aGUgdGFyZ2V0IGhhc2guICgiRXRoZXJldW0iKQozLiBCb2IgY2FsbHMgc29sdmUoIkV0aGVyZXVtIikgd2l0aCBnYXMgcHJpY2Ugc2V0IHRvIDE1IGd3ZWkuCjQuIEV2ZSBpcyB3YXRjaGluZyB0aGUgdHJhbnNhY3Rpb24gcG9vbCBmb3IgdGhlIGFuc3dlciB0byBiZSBzdWJtaXR0ZWQuCjUuIEV2ZSBzZWVzIEJvYidzIGFuc3dlciBhbmQgY2FsbHMgc29sdmUoIkV0aGVyZXVtIikgd2l0aCBhIGhpZ2hlciBnYXMgcHJpY2UKICAgdGhhbiBCb2IgKDEwMCBnd2VpKS4KNi4gRXZlJ3MgdHJhbnNhY3Rpb24gd2FzIG1pbmVkIGJlZm9yZSBCb2IncyB0cmFuc2FjdGlvbi4KICAgRXZlIHdvbiB0aGUgcmV3YXJkIG9mIDEwIGV0aGVyLgoKV2hhdCBoYXBwZW5lZD8KVHJhbnNhY3Rpb25zIHRha2Ugc29tZSB0aW1lIGJlZm9yZSB0aGV5IGFyZSBtaW5lZC4KVHJhbnNhY3Rpb25zIG5vdCB5ZXQgbWluZWQgYXJlIHB1dCBpbiB0aGUgdHJhbnNhY3Rpb24gcG9vbC4KVHJhbnNhY3Rpb25zIHdpdGggaGlnaGVyIGdhcyBwcmljZSBhcmUgdHlwaWNhbGx5IG1pbmVkIGZpcnN0LgpBbiBhdHRhY2tlciBjYW4gZ2V0IHRoZSBhbnN3ZXIgZnJvbSB0aGUgdHJhbnNhY3Rpb24gcG9vbCwgc2VuZCBhIHRyYW5zYWN0aW9uCndpdGggYSBoaWdoZXIgZ2FzIHByaWNlIHNvIHRoYXQgdGhlaXIgdHJhbnNhY3Rpb24gd2lsbCBiZSBpbmNsdWRlZCBpbiBhIGJsb2NrCmJlZm9yZSB0aGUgb3JpZ2luYWwuCiovCgpjb250cmFjdCBGaW5kVGhpc0hhc2ggewogICAgYnl0ZXMzMiBwdWJsaWMgY29uc3RhbnQgaGFzaCA9CiAgICAgICAgMHg1NjRjY2FmNzU5NGQ2NmIxZWFhZWEyNGZlMDFmMDU4NWJmNTJlZTcwODUyYWY0ZWFjMGNjNGIwNDcxMWNkMGUyOwoKICAgIGNvbnN0cnVjdG9yKCkgcGF5YWJsZSB7fQoKICAgIGZ1bmN0aW9uIHNvbHZlKHN0cmluZyBtZW1vcnkgc29sdXRpb24pIHB1YmxpYyB7CiAgICAgICAgcmVxdWlyZSgKICAgICAgICAgICAgaGFzaCA9PSBrZWNjYWsyNTYoYWJpLmVuY29kZVBhY2tlZChzb2x1dGlvbikpLCAiSW5jb3JyZWN0IGFuc3dlciIKICAgICAgICApOwoKICAgICAgICAoYm9vbCBzZW50LCkgPSBtc2cuc2VuZGVyLmNhbGx7dmFsdWU6IDEwIGV0aGVyfSgiIik7CiAgICAgICAgcmVxdWlyZShzZW50LCAiRmFpbGVkIHRvIHNlbmQgRXRoZXIiKTsKICAgIH0KfQo="},{fileName:"PreventFrontRunning.sol",code:"Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVApwcmFnbWEgc29saWRpdHkgXjAuOC4yNjsKCi8qCiAgIE5vdyBMZXQncyBzZWUgaG93IHRvIGd1YXJkIGZyb20gZnJvbnQgcnVubmluZyB1c2luZyBjb21taXQgcmV2ZWFsIHNjaGVtZS4KKi8KCi8qCjEuIEFsaWNlIGRlcGxveXMgU2VjdXJlZEZpbmRUaGlzSGFzaCB3aXRoIDEwIEV0aGVyLgoyLiBCb2IgZmluZHMgdGhlIGNvcnJlY3Qgc3RyaW5nIHRoYXQgd2lsbCBoYXNoIHRvIHRoZSB0YXJnZXQgaGFzaC4gKCJFdGhlcmV1bSIpLgozLiBCb2IgdGhlbiBmaW5kcyB0aGUga2VjY2FrMjU2KEFkZHJlc3MgaW4gbG93ZXJjYXNlICsgU29sdXRpb24gKyBTZWNyZXQpLiAKICAgQWRkcmVzcyBpcyBoaXMgd2FsbGV0IGFkZHJlc3MgaW4gbG93ZXJjYXNlLCBzb2x1dGlvbiBpcyAiRXRoZXJldW0iLCBTZWNyZXQgaXMgbGlrZSBhIHBhc3N3b3JkICgibXlzZWNyZXQiKSAKICAgdGhhdCBvbmx5IEJvYiBrbm93cyB3aGljaCBCb2IgdXNlcyB0byBjb21taXQgYW5kIHJldmVhbCB0aGUgc29sdXRpb24uCiAgIGtlY2NhazI1NjYoIjB4ZjM5RmQ2ZTUxYWFkODhGNkY0Y2U2YUI4ODI3Mjc5Y2ZmRmI5MjI2NkV0aGVyZXVtbXlzZWNyZXQiKSA9ICcweGY5NWIxZGQ2MWVkYzNiZDk2MmNkZWEzOTg3YzZmNTViY2I3MTRhMDJhMmMzZWI3M2JkOTYwZDZiNDM4N2ZjMzYnCjMuIEJvYiB0aGVuIGNhbGxzIGNvbW1pdFNvbHV0aW9uKCIweGY5NWIxZGQ2MWVkYzNiZDk2MmNkZWEzOTg3YzZmNTViY2I3MTRhMDJhMmMzZWI3M2JkOTYwZDZiNDM4N2ZjMzYiKSwgCiAgIHdoZXJlIGhlIGNvbW1pdHMgdGhlIGNhbGN1bGF0ZWQgc29sdXRpb24gaGFzaCB3aXRoIGdhcyBwcmljZSBzZXQgdG8gMTUgZ3dlaS4KNC4gRXZlIGlzIHdhdGNoaW5nIHRoZSB0cmFuc2FjdGlvbiBwb29sIGZvciB0aGUgYW5zd2VyIHRvIGJlIHN1Ym1pdHRlZC4KNS4gRXZlIHNlZXMgQm9iJ3MgYW5zd2VyIGFuZCBoZSBhbHNvIGNhbGxzIGNvbW1pdFNvbHV0aW9uKCIweGY5NWIxZGQ2MWVkYzNiZDk2MmNkZWEzOTg3YzZmNTViY2I3MTRhMDJhMmMzZWI3M2JkOTYwZDZiNDM4N2ZjMzYiKQogICB3aXRoIGEgaGlnaGVyIGdhcyBwcmljZSB0aGFuIEJvYiAoMTAwIGd3ZWkpLgo2LiBFdmUncyB0cmFuc2FjdGlvbiB3YXMgbWluZWQgYmVmb3JlIEJvYidzIHRyYW5zYWN0aW9uLCBidXQgRXZlIGhhcyBub3QgZ290IHRoZSByZXdhcmQgeWV0LgogICBIZSBuZWVkcyB0byBjYWxsIHJldmVhbFNvbHV0aW9uKCkgd2l0aCBleGFjdCBzZWNyZXQgYW5kIHNvbHV0aW9uLCBzbyBsZXRzIHNheSBoZSBpcyB3YXRjaGluZyB0aGUgdHJhbnNhY3Rpb24gcG9vbAogICB0byBmcm9udCBydW4gQm9iIGFzIGhlIGRpZCBwcmV2aW91c2x5CjcuIFRoZW4gQm9iIGNhbGxzIHRoZSByZXZlYWxTb2x1dGlvbigiRXRoZXJldW0iLCAibXlzZWNyZXQiKSB3aXRoIGdhcyBwcmljZSBzZXQgdG8gMTUgZ3dlaTsKOC4gTGV0J3MgY29uc2lkZXIgdGhhdCBFdmUncyB3aG8ncyB3YXRjaGluZyB0aGUgdHJhbnNhY3Rpb24gcG9vbCwgZmluZCdzIEJvYidzIHJldmVhbCBzb2x1dGlvbiB0cmFuc2FjdGlvbiBhbmQgaGUgYWxzbyBjYWxscyAKICAgcmV2ZWFsU29sdXRpb24oIkV0aGVyZXVtIiwgIm15c2VjcmV0Iikgd2l0aCBoaWdoZXIgZ2FzIHByaWNlIHRoYW4gQm9iICgxMDAgZ3dlaSkKOS4gTGV0J3MgY29uc2lkZXIgdGhhdCB0aGlzIHRpbWUgYWxzbyBFdmUncyByZXZlYWwgdHJhbnNhY3Rpb24gd2FzIG1pbmVkIGJlZm9yZSBCb2IncyB0cmFuc2FjdGlvbiwgYnV0IEV2ZSB3aWxsIGJlCiAgIHJldmVydGVkIHdpdGggIkhhc2ggZG9lc24ndCBtYXRjaCIgZXJyb3IuIFNpbmNlIHRoZSByZXZlYWxTb2x1dGlvbigpIGZ1bmN0aW9uIGNoZWNrcyB0aGUgaGFzaCB1c2luZyAKICAga2VjY2FrMjU2KG1zZy5zZW5kZXIgKyBzb2x1dGlvbiArIHNlY3JldCkuIFNvIHRoaXMgdGltZSBldmUgZmFpbHMgdG8gd2luIHRoZSByZXdhcmQuCjEwLkJ1dCBCb2IncyByZXZlYWxTb2x1dGlvbigiRXRoZXJldW0iLCAibXlzZWNyZXQiKSBwYXNzZXMgdGhlIGhhc2ggY2hlY2sgYW5kIGdldHMgdGhlIHJld2FyZCBvZiAxMCBldGhlci4KKi8KCmNvbnRyYWN0IFNlY3VyZWRGaW5kVGhpc0hhc2ggewogICAgLy8gU3RydWN0IGlzIHVzZWQgdG8gc3RvcmUgdGhlIGNvbW1pdCBkZXRhaWxzCiAgICBzdHJ1Y3QgQ29tbWl0IHsKICAgICAgICBieXRlczMyIHNvbHV0aW9uSGFzaDsKICAgICAgICB1aW50MjU2IGNvbW1pdFRpbWU7CiAgICAgICAgYm9vbCByZXZlYWxlZDsKICAgIH0KCiAgICAvLyBUaGUgaGFzaCB0aGF0IGlzIG5lZWRlZCB0byBiZSBzb2x2ZWQKICAgIGJ5dGVzMzIgcHVibGljIGhhc2ggPQogICAgICAgIDB4NTY0Y2NhZjc1OTRkNjZiMWVhYWVhMjRmZTAxZjA1ODViZjUyZWU3MDg1MmFmNGVhYzBjYzRiMDQ3MTFjZDBlMjsKCiAgICAvLyBBZGRyZXNzIG9mIHRoZSB3aW5uZXIKICAgIGFkZHJlc3MgcHVibGljIHdpbm5lcjsKCiAgICAvLyBQcmljZSB0byBiZSByZXdhcmRlZAogICAgdWludDI1NiBwdWJsaWMgcmV3YXJkOwoKICAgIC8vIFN0YXR1cyBvZiBnYW1lCiAgICBib29sIHB1YmxpYyBlbmRlZDsKCiAgICAvLyBNYXBwaW5nIHRvIHN0b3JlIHRoZSBjb21taXQgZGV0YWlscyB3aXRoIGFkZHJlc3MKICAgIG1hcHBpbmcoYWRkcmVzcyA9PiBDb21taXQpIGNvbW1pdHM7CgogICAgLy8gTW9kaWZpZXIgdG8gY2hlY2sgaWYgdGhlIGdhbWUgaXMgYWN0aXZlCiAgICBtb2RpZmllciBnYW1lQWN0aXZlKCkgewogICAgICAgIHJlcXVpcmUoIWVuZGVkLCAiQWxyZWFkeSBlbmRlZCIpOwogICAgICAgIF87CiAgICB9CgogICAgY29uc3RydWN0b3IoKSBwYXlhYmxlIHsKICAgICAgICByZXdhcmQgPSBtc2cudmFsdWU7CiAgICB9CgogICAgLyogCiAgICAgICBDb21taXQgZnVuY3Rpb24gdG8gc3RvcmUgdGhlIGhhc2ggY2FsY3VsYXRlZCB1c2luZyBrZWNjYWsyNTYoYWRkcmVzcyBpbiBsb3dlcmNhc2UgKyBzb2x1dGlvbiArIHNlY3JldCkuIAogICAgICAgVXNlcnMgY2FuIG9ubHkgY29tbWl0IG9uY2UgYW5kIGlmIHRoZSBnYW1lIGlzIGFjdGl2ZS4KICAgICovCiAgICBmdW5jdGlvbiBjb21taXRTb2x1dGlvbihieXRlczMyIF9zb2x1dGlvbkhhc2gpIHB1YmxpYyBnYW1lQWN0aXZlIHsKICAgICAgICBDb21taXQgc3RvcmFnZSBjb21taXQgPSBjb21taXRzW21zZy5zZW5kZXJdOwogICAgICAgIHJlcXVpcmUoY29tbWl0LmNvbW1pdFRpbWUgPT0gMCwgIkFscmVhZHkgY29tbWl0dGVkIik7CiAgICAgICAgY29tbWl0LnNvbHV0aW9uSGFzaCA9IF9zb2x1dGlvbkhhc2g7CiAgICAgICAgY29tbWl0LmNvbW1pdFRpbWUgPSBibG9jay50aW1lc3RhbXA7CiAgICAgICAgY29tbWl0LnJldmVhbGVkID0gZmFsc2U7CiAgICB9CgogICAgLyogCiAgICAgICAgRnVuY3Rpb24gdG8gZ2V0IHRoZSBjb21taXQgZGV0YWlscy4gSXQgcmV0dXJucyBhIHR1cGxlIG9mIChzb2x1dGlvbkhhc2gsIGNvbW1pdFRpbWUsIHJldmVhbFN0YXR1cyk7ICAKICAgICAgICBVc2VycyBjYW4gZ2V0IHNvbHV0aW9uIG9ubHkgaWYgdGhlIGdhbWUgaXMgYWN0aXZlIGFuZCB0aGV5IGhhdmUgY29tbWl0dGVkIGEgc29sdXRpb25IYXNoCiAgICAqLwogICAgZnVuY3Rpb24gZ2V0TXlTb2x1dGlvbigpCiAgICAgICAgcHVibGljCiAgICAgICAgdmlldwogICAgICAgIGdhbWVBY3RpdmUKICAgICAgICByZXR1cm5zIChieXRlczMyLCB1aW50MjU2LCBib29sKQogICAgewogICAgICAgIENvbW1pdCBzdG9yYWdlIGNvbW1pdCA9IGNvbW1pdHNbbXNnLnNlbmRlcl07CiAgICAgICAgcmVxdWlyZShjb21taXQuY29tbWl0VGltZSAhPSAwLCAiTm90IGNvbW1pdHRlZCB5ZXQiKTsKICAgICAgICByZXR1cm4gKGNvbW1pdC5zb2x1dGlvbkhhc2gsIGNvbW1pdC5jb21taXRUaW1lLCBjb21taXQucmV2ZWFsZWQpOwogICAgfQogICAgLyogCiAgICAgICAgRnVuY3Rpb24gdG8gcmV2ZWFsIHRoZSBjb21taXQgYW5kIGdldCB0aGUgcmV3YXJkLiAKICAgICAgICBVc2VycyBjYW4gZ2V0IHJldmVhbCBzb2x1dGlvbiBvbmx5IGlmIHRoZSBnYW1lIGlzIGFjdGl2ZSBhbmQgdGhleSBoYXZlIGNvbW1pdHRlZCBhIHNvbHV0aW9uSGFzaCBiZWZvcmUgdGhpcyBibG9jayBhbmQgbm90IHJldmVhbGVkIHlldC4KICAgICAgICBJdCBnZW5lcmF0ZXMgYSBrZWNjYWsyNTYobXNnLnNlbmRlciArIHNvbHV0aW9uICsgc2VjcmV0KSBhbmQgY2hlY2tzIGl0IHdpdGggdGhlIHByZXZpb3VzbHkgY29tbWl0dGVkIGhhc2guICAKICAgICAgICBBc3N1bWluZyB0aGF0IGEgY29tbWl0IHdhcyBhbHJlYWR5IGluY2x1ZGVkIG9uIGNoYWluLCBmcm9udCBydW5uZXJzIHdpbGwgbm90IGJlIGFibGUgdG8gcGFzcyB0aGlzIGNoZWNrIHNpbmNlIHRoZSBtc2cuc2VuZGVyIGlzIGRpZmZlcmVudC4KICAgICAgICBUaGVuIHRoZSBhY3R1YWwgc29sdXRpb24gaXMgY2hlY2tlZCB1c2luZyBrZWNjYWsyNTYoc29sdXRpb24pLCBpZiB0aGUgc29sdXRpb24gbWF0Y2hlcywgdGhlIHdpbm5lciBpcyBkZWNsYXJlZCwgCiAgICAgICAgdGhlIGdhbWUgaXMgZW5kZWQgYW5kIHRoZSByZXdhcmQgYW1vdW50IGlzIHNlbnQgdG8gdGhlIHdpbm5lci4KICAgICovCgogICAgZnVuY3Rpb24gcmV2ZWFsU29sdXRpb24oc3RyaW5nIG1lbW9yeSBfc29sdXRpb24sIHN0cmluZyBtZW1vcnkgX3NlY3JldCkKICAgICAgICBwdWJsaWMKICAgICAgICBnYW1lQWN0aXZlCiAgICB7CiAgICAgICAgQ29tbWl0IHN0b3JhZ2UgY29tbWl0ID0gY29tbWl0c1ttc2cuc2VuZGVyXTsKICAgICAgICByZXF1aXJlKGNvbW1pdC5jb21taXRUaW1lICE9IDAsICJOb3QgY29tbWl0dGVkIHlldCIpOwogICAgICAgIHJlcXVpcmUoCiAgICAgICAgICAgIGNvbW1pdC5jb21taXRUaW1lIDwgYmxvY2sudGltZXN0YW1wLAogICAgICAgICAgICAiQ2Fubm90IHJldmVhbCBpbiB0aGUgc2FtZSBibG9jayIKICAgICAgICApOwogICAgICAgIHJlcXVpcmUoIWNvbW1pdC5yZXZlYWxlZCwgIkFscmVhZHkgY29tbWl0dGVkIGFuZCByZXZlYWxlZCIpOwoKICAgICAgICBieXRlczMyIHNvbHV0aW9uSGFzaCA9CiAgICAgICAgICAgIGtlY2NhazI1NihhYmkuZW5jb2RlUGFja2VkKG1zZy5zZW5kZXIsIF9zb2x1dGlvbiwgX3NlY3JldCkpOwogICAgICAgIHJlcXVpcmUoc29sdXRpb25IYXNoID09IGNvbW1pdC5zb2x1dGlvbkhhc2gsICJIYXNoIGRvZXNuJ3QgbWF0Y2giKTsKCiAgICAgICAgcmVxdWlyZSgKICAgICAgICAgICAga2VjY2FrMjU2KGFiaS5lbmNvZGVQYWNrZWQoX3NvbHV0aW9uKSkgPT0gaGFzaCwgIkluY29ycmVjdCBhbnN3ZXIiCiAgICAgICAgKTsKCiAgICAgICAgd2lubmVyID0gbXNnLnNlbmRlcjsKICAgICAgICBlbmRlZCA9IHRydWU7CgogICAgICAgIChib29sIHNlbnQsKSA9IHBheWFibGUobXNnLnNlbmRlcikuY2FsbHt2YWx1ZTogcmV3YXJkfSgiIik7CiAgICAgICAgaWYgKCFzZW50KSB7CiAgICAgICAgICAgIHdpbm5lciA9IGFkZHJlc3MoMCk7CiAgICAgICAgICAgIGVuZGVkID0gZmFsc2U7CiAgICAgICAgICAgIHJldmVydCgiRmFpbGVkIHRvIHNlbmQgZXRoZXIuIik7CiAgICAgICAgfQogICAgfQp9Cg=="}],zW=`

Vulnerability

Transactions take some time before they are mined. An attacker can watch the transaction pool and send a transaction, have it included in a block before the original transaction. This mechanism can be abused to re-order transactions to the attacker's advantage.

@@ -10271,7 +10271,7 @@ before the original. 1. Alice deploys SecuredFindThisHash with 10 Ether. 2. Bob finds the correct string that will hash to the target hash. ("Ethereum"). 3. Bob then finds the keccak256(Address in lowercase + Solution + Secret). - Address is his wallet address in lowercase, solution is "Ethereum", Secret is like an password ("mysecret") + Address is his wallet address in lowercase, solution is "Ethereum", Secret is like a password ("mysecret") that only Bob knows which Bob uses to commit and reveal the solution. keccak2566("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266Ethereummysecret") = '0xf95b1dd61edc3bd962cdea3987c6f55bcb714a02a2c3eb73bd960d6b4387fc36' 3. Bob then calls commitSolution("0xf95b1dd61edc3bd962cdea3987c6f55bcb714a02a2c3eb73bd960d6b4387fc36"), @@ -10354,7 +10354,7 @@ before the original. /* Function to reveal the commit and get the reward. Users can get reveal solution only if the game is active and they have committed a solutionHash before this block and not revealed yet. - It generates an keccak256(msg.sender + solution + secret) and checks it with the previously committed hash. + It generates a keccak256(msg.sender + solution + secret) and checks it with the previously committed hash. Assuming that a commit was already included on chain, front runners will not be able to pass this check since the msg.sender is different. Then the actual solution is checked using keccak256(solution), if the solution matches, the winner is declared, the game is ended and the reward amount is sent to the winner. @@ -13074,4 +13074,4 @@ echidna EchidnaTestTimeAndCaller.sol --contract EchidnaTestTimeAndCaller return internalFunc(); } } -`,vV=({prev:s,next:a})=>r.jsx(A,{version:BV,title:fV,description:VV,cyfrinLink:YV,html:RV,prev:s,next:a,codes:XV}),NV=({size:s,className:a=""})=>r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",width:s,height:s,className:a,children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"})}),HV="_component_efeb7_1",KV="_icon_efeb7_8",FV="_input_efeb7_12",Ie={component:HV,icon:KV,input:FV},MV=({value:s,onChange:a})=>{function n(l){a(l.target.value)}return r.jsxs("div",{className:Ie.component,children:[r.jsx(NV,{size:18,className:Ie.icon}),r.jsx("input",{className:Ie.input,placeholder:"Search",value:s,onChange:n})]})};var SV="Expected a function",Xo=NaN,xV="[object Symbol]",JV=/^\s+|\s+$/g,zV=/^[-+]0x[0-9a-f]+$/i,DV=/^0b[01]+$/i,EV=/^0o[0-7]+$/i,QV=parseInt,TV=typeof Il=="object"&&Il&&Il.Object===Object&&Il,LV=typeof self=="object"&&self&&self.Object===Object&&self,UV=TV||LV||Function("return this")(),_V=Object.prototype,OV=_V.toString,PV=Math.max,$V=Math.min,de=function(){return UV.Date.now()};function qV(s,a,n){var l,p,e,c,t,o,i=0,I=!1,d=!1,j=!0;if(typeof s!="function")throw new TypeError(SV);a=Ro(a)||0,gc(n)&&(I=!!n.leading,d="maxWait"in n,e=d?PV(Ro(n.maxWait)||0,a):e,j="trailing"in n?!!n.trailing:j);function u(k){var B=l,Y=p;return l=p=void 0,i=k,c=s.apply(Y,B),c}function m(k){return i=k,t=setTimeout(h,a),I?u(k):c}function b(k){var B=k-o,Y=k-i,x=a-B;return d?$V(x,e-Y):x}function G(k){var B=k-o,Y=k-i;return o===void 0||B>=a||B<0||d&&Y>=e}function h(){var k=de();if(G(k))return g(k);t=setTimeout(h,b(k))}function g(k){return t=void 0,j&&l?u(k):(l=p=void 0,c)}function C(){t!==void 0&&clearTimeout(t),i=0,l=o=p=t=void 0}function y(){return t===void 0?c:g(de())}function Z(){var k=de(),B=G(k);if(l=arguments,p=this,o=k,B){if(t===void 0)return m(o);if(d)return t=setTimeout(h,a),u(o)}return t===void 0&&(t=setTimeout(h,a)),c}return Z.cancel=C,Z.flush=y,Z}function gc(s){var a=typeof s;return!!s&&(a=="object"||a=="function")}function s1(s){return!!s&&typeof s=="object"}function a1(s){return typeof s=="symbol"||s1(s)&&OV.call(s)==xV}function Ro(s){if(typeof s=="number")return s;if(a1(s))return Xo;if(gc(s)){var a=typeof s.valueOf=="function"?s.valueOf():s;s=gc(a)?a+"":a}if(typeof s!="string")return s===0?s:+s;s=s.replace(JV,"");var n=DV.test(s);return n||EV.test(s)?QV(s.slice(2),n?2:8):zV.test(s)?Xo:+s}var n1=qV;const l1=Fo(n1),p1={leading:!1,trailing:!0};function e1(s,a,n){return W.useCallback(l1(s,a,p1),n)}function c1(s,a){let n=s;for(let l=0;l0;){const[e,c,t]=a.pop();p&&(l=l.slice(0,c-1),p=!1),l+=e;const o=Object.keys(t);if(o.length>0)for(let i=0;ia+p)}const r1=["/visibility"],i1=["/visibility","/view-and-pure-functions","/sending-ether","/hashing","/function-selector","/function-modifier","/function","/fallback","/delegatecall","/calling-contract","/call"],g1=["/visibility"],h1=["/visibility","/hacks/hiding-malicious-code-with-external-contract"],I1=["/view-and-pure-functions"],d1=["/view-and-pure-functions"],C1=["/variables","/structs","/state-variables","/shadowing-inherited-state-variables","/primitives","/mapping","/immutable","/evm/storage","/ether-units","/enum","/constants","/assembly-variable","/array"],j1=["/variables","/structs","/state-variables","/shadowing-inherited-state-variables","/primitives","/mapping","/immutable","/ether-units","/enum","/constants","/array"],A1=["/variables"],u1=["/variables"],y1=["/variables","/state-variables","/shadowing-inherited-state-variables","/evm/storage"],m1=["/variables","/user-defined-value-types","/structs","/primitives","/mapping","/immutable","/hacks/accessing-private-data","/evm/storage","/evm/memory","/ether-units","/enum","/data-locations","/constants","/array","/app/iterable-mapping"],b1=["/user-defined-value-types"],w1=["/user-defined-value-types"],k1=["/user-defined-value-types"],Z1=["/user-defined-value-types","/structs","/primitives"],W1=["/user-defined-value-types"],G1=["/unchecked-math","/gas-golf","/gas"],B1=["/unchecked-math"],f1=["/unchecked-math","/assembly-math","/app/assembly-bin-exp"],V1=["/unchecked-math","/hacks/overflow"],Y1=["/unchecked-math","/hacks/overflow"],X1=["/try-catch","/foundry/error","/error","/assembly-error"],R1=["/try-catch","/error"],v1=["/transient-storage"],N1=["/transient-storage","/hacks/accessing-private-data","/evm/storage","/data-locations","/app/write-to-any-slot"],H1=["/tests/echidna"],K1=["/tests/echidna"],F1=["/super","/calling-contract"],M1=["/super"],S1=["/super","/new-contract","/interface","/inheritance","/hello-world","/hacks/hiding-malicious-code-with-external-contract","/hacks/deploy-different-contracts-same-address","/hacks/contract-size","/first-app","/delegatecall","/constructor","/calling-contract","/call","/app/simple-bytecode-contract","/app/minimal-proxy","/app/deploy-any-contract","/app/create2"],x1=["/super","/new-contract","/interface","/inheritance","/first-app","/delegatecall","/calling-contract","/call"],J1=["/super","/shadowing-inherited-state-variables","/inheritance","/constructor"],z1=["/structs"],D1=["/structs"],E1=["/structs","/primitives"],Q1=["/state-variables"],T1=["/state-variables"],L1=["/state-variables","/hello-world","/first-app","/app/write-to-any-slot","/app/upgradeable-proxy","/app/uni-directional-payment-channel","/app/time-lock","/app/simple-bytecode-contract","/app/multi-sig-wallet","/app/multi-delegatecall","/app/multi-call","/app/minimal-proxy","/app/merkle-tree","/app/iterable-mapping","/app/gasless-token-transfer","/app/ether-wallet","/app/erc721","/app/erc20","/app/erc1155","/app/english-auction","/app/dutch-auction","/app/deploy-any-contract","/app/crowd-fund","/app/create2","/app/bi-directional-payment-channel","/app/airdrop"],U1=["/state-variables","/hello-world","/first-app","/app/write-to-any-slot","/app/upgradeable-proxy","/app/uni-directional-payment-channel","/app/time-lock","/app/simple-bytecode-contract","/app/multi-sig-wallet","/app/multi-delegatecall","/app/multi-call","/app/minimal-proxy","/app/merkle-tree","/app/iterable-mapping","/app/gasless-token-transfer","/app/ether-wallet","/app/erc721","/app/erc20","/app/erc1155","/app/english-auction","/app/dutch-auction","/app/deploy-any-contract","/app/crowd-fund","/app/create2","/app/bi-directional-payment-channel","/app/airdrop"],_1=["/signature","/hashing","/hacks/signature-replay","/app/uni-directional-payment-channel","/app/merkle-tree","/app/bi-directional-payment-channel"],O1=["/signature"],P1=["/signature"],$1=["/signature","/hacks/signature-replay","/foundry/sign","/app/uni-directional-payment-channel","/app/multi-sig-wallet","/app/bi-directional-payment-channel"],q1=["/signature"],sY=["/signature","/foundry/sign"],aY=["/shadowing-inherited-state-variables"],nY=["/shadowing-inherited-state-variables"],lY=["/sending-ether"],pY=["/sending-ether","/sending-ether","/payable","/foundry/send","/fallback"],eY=["/sending-ether","/payable","/fallback","/ether-units","/app/ether-wallet"],cY=["/sending-ether","/payable","/fallback","/app/ether-wallet"],tY=["/sending-ether","/fallback","/app/gasless-token-transfer"],oY=["/sending-ether","/foundry/mock-call","/delegatecall","/calling-contract","/call","/app/multi-call"],rY=["/sending-ether","/fallback"],iY=["/sending-ether","/fallback"],gY=["/sending-ether","/payable","/fallback"],hY=["/primitives"],IY=["/primitives"],dY=["/primitives"],CY=["/primitives"],jY=["/primitives"],AY=["/primitives","/hacks/deploy-different-contracts-same-address","/app/create2"],uY=["/primitives"],yY=["/primitives"],mY=["/new-contract","/hacks/deploy-different-contracts-same-address"],bY=["/new-contract"],wY=["/new-contract","/hacks/deploy-different-contracts-same-address","/app/create2"],kY=["/new-contract","/hacks/deploy-different-contracts-same-address"],ZY=["/mapping","/app/iterable-mapping"],WY=["/loop","/assembly-loop"],GY=["/loop"],BY=["/library"],fY=["/interface"],VY=["/inheritance"],YY=["/inheritance"],XY=["/inheritance"],RY=["/immutable","/defi/constant-sum-amm","/defi/constant-product-amm","/constants"],vY=["/immutable","/constants"],NY=["/immutable"],HY=["/immutable"],KY=["/if-else"],FY=["/if-else"],MY=["/if-else"],SY=["/hello-world"],xY=["/hello-world"],JY=["/hashing"],zY=["/hashing"],DY=["/hashing"],EY=["/hacks/weth-permit","/hacks/vault-inflation","/hacks/signature-replay","/hacks/self-destruct","/hacks/re-entrancy","/hacks/randomness","/hacks/phishing-with-tx-origin","/hacks/overflow","/hacks/honeypot","/hacks/hiding-malicious-code-with-external-contract","/hacks/front-running","/hacks/deploy-different-contracts-same-address","/hacks/denial-of-service","/hacks/delegatecall","/hacks/contract-size","/hacks/block-timestamp-manipulation","/hacks/accessing-private-data"],QY=["/hacks/weth-permit","/hacks/vault-inflation","/hacks/signature-replay","/hacks/self-destruct","/hacks/re-entrancy","/hacks/randomness","/hacks/phishing-with-tx-origin","/hacks/overflow","/hacks/honeypot","/hacks/hiding-malicious-code-with-external-contract","/hacks/front-running","/hacks/deploy-different-contracts-same-address","/hacks/denial-of-service","/hacks/delegatecall","/hacks/contract-size","/hacks/block-timestamp-manipulation","/hacks/accessing-private-data","/events-advanced"],TY=["/hacks/weth-permit"],LY=["/hacks/weth-permit","/app/gasless-token-transfer"],UY=["/hacks/vault-inflation"],_Y=["/hacks/vault-inflation"],OY=["/hacks/vault-inflation","/defi/vault"],PY=["/hacks/signature-replay"],$Y=["/hacks/self-destruct"],qY=["/hacks/randomness"],sX=["/hacks/randomness"],aX=["/hacks/randomness"],nX=["/hacks/randomness"],lX=["/hacks/randomness","/hacks/block-timestamp-manipulation"],pX=["/hacks/randomness","/hacks/block-timestamp-manipulation"],eX=["/hacks/phishing-with-tx-origin"],cX=["/hacks/overflow"],tX=["/hacks/honeypot"],oX=["/hacks/hiding-malicious-code-with-external-contract"],rX=["/hacks/hiding-malicious-code-with-external-contract"],iX=["/hacks/hiding-malicious-code-with-external-contract"],gX=["/hacks/hiding-malicious-code-with-external-contract"],hX=["/hacks/front-running"],IX=["/hacks/front-running"],dX=["/hacks/deploy-different-contracts-same-address","/app/deploy-any-contract"],CX=["/hacks/deploy-different-contracts-same-address"],jX=["/hacks/deploy-different-contracts-same-address"],AX=["/hacks/denial-of-service"],uX=["/hacks/denial-of-service"],yX=["/hacks/delegatecall","/delegatecall","/app/upgradeable-proxy","/app/multi-delegatecall"],mX=["/hacks/contract-size"],bX=["/hacks/contract-size"],wX=["/hacks/contract-size"],kX=["/hacks/contract-size"],ZX=["/hacks/block-timestamp-manipulation"],WX=["/hacks/accessing-private-data"],GX=["/hacks/accessing-private-data"],BX=["/gas-golf"],fX=["/function-selector"],VX=["/function-selector"],YX=["/function-modifier"],XX=["/function-modifier"],RX=["/function-modifier"],vX=["/foundry/time","/foundry/sign","/foundry/send","/foundry/mock-call","/foundry/label","/foundry/event","/foundry/error","/foundry/basic","/foundry/auth"],NX=["/foundry/time","/app/time-lock"],HX=["/foundry/time"],KX=["/foundry/time"],FX=["/foundry/time"],MX=["/foundry/time"],SX=["/foundry/sign"],xX=["/foundry/send"],JX=["/foundry/send"],zX=["/foundry/mock-call"],DX=["/foundry/label"],EX=["/foundry/event","/events"],QX=["/foundry/basic"],TX=["/foundry/basic","/first-app"],LX=["/foundry/auth"],UX=["/foundry/auth"],_X=["/foundry/auth"],OX=["/first-app"],PX=["/evm/storage","/evm/memory"],$X=["/evm/storage","/evm/memory","/assembly-variable","/assembly-math","/assembly-loop","/assembly-if","/assembly-error","/app/assembly-bin-exp"],qX=["/evm/storage","/evm/memory","/bitwise","/assembly-variable","/assembly-math","/assembly-loop","/assembly-if","/assembly-error","/app/assembly-bin-exp"],sR=["/evm/memory","/data-locations"],aR=["/events-advanced","/events"],nR=["/events-advanced"],lR=["/events-advanced"],pR=["/events-advanced"],eR=["/ether-units"],cR=["/ether-units"],tR=["/error"],oR=["/error","/assembly-error"],rR=["/error"],iR=["/enum"],gR=["/defi/vault","/defi/uniswap-v3-swap","/defi/uniswap-v3-liquidity","/defi/uniswap-v3-flash-swap","/defi/uniswap-v3-flash","/defi/uniswap-v2-optimal-one-sided-supply","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2-add-remove-liquidity","/defi/uniswap-v2","/defi/staking-rewards","/defi/stable-swap-amm","/defi/discrete-staking-rewards","/defi/dai-proxy","/defi/constant-sum-amm","/defi/constant-product-amm","/defi/chainlink-price-oracle"],hR=["/defi/uniswap-v3-swap","/defi/uniswap-v3-liquidity","/defi/uniswap-v3-flash-swap","/defi/uniswap-v3-flash","/defi/uniswap-v2-optimal-one-sided-supply","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2-add-remove-liquidity","/defi/uniswap-v2"],IR=["/defi/uniswap-v3-swap","/defi/uniswap-v3-liquidity","/defi/uniswap-v3-flash-swap","/defi/uniswap-v3-flash"],dR=["/defi/uniswap-v3-swap","/defi/uniswap-v3-flash-swap","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2","/defi/stable-swap-amm"],CR=["/defi/uniswap-v3-swap","/defi/uniswap-v3-liquidity","/defi/uniswap-v3-flash-swap","/defi/uniswap-v3-flash","/defi/uniswap-v2-optimal-one-sided-supply","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2-add-remove-liquidity","/defi/uniswap-v2","/defi/stable-swap-amm","/defi/constant-sum-amm","/defi/constant-product-amm"],jR=["/defi/uniswap-v3-liquidity","/defi/uniswap-v2-add-remove-liquidity"],AR=["/defi/uniswap-v3-flash-swap"],uR=["/defi/uniswap-v3-flash","/defi/uniswap-v2-flash-swap"],yR=["/defi/uniswap-v3-flash"],mR=["/defi/uniswap-v2-optimal-one-sided-supply","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2-add-remove-liquidity","/defi/uniswap-v2"],bR=["/defi/uniswap-v2-optimal-one-sided-supply"],wR=["/defi/uniswap-v2-optimal-one-sided-supply"],kR=["/defi/uniswap-v2-optimal-one-sided-supply"],ZR=["/defi/uniswap-v2-optimal-one-sided-supply"],WR=["/defi/uniswap-v2-add-remove-liquidity","/assembly-math"],GR=["/defi/uniswap-v2-add-remove-liquidity"],BR=["/defi/staking-rewards","/defi/discrete-staking-rewards"],fR=["/defi/staking-rewards","/defi/discrete-staking-rewards"],VR=["/defi/staking-rewards","/defi/discrete-staking-rewards"],YR=["/defi/stable-swap-amm"],XR=["/defi/stable-swap-amm"],RR=["/defi/discrete-staking-rewards"],vR=["/defi/dai-proxy"],NR=["/defi/dai-proxy","/app/upgradeable-proxy","/app/minimal-proxy"],HR=["/defi/constant-sum-amm"],KR=["/defi/constant-product-amm"],FR=["/defi/chainlink-price-oracle"],MR=["/defi/chainlink-price-oracle"],SR=["/defi/chainlink-price-oracle"],xR=["/defi/chainlink-price-oracle"],JR=["/data-locations"],zR=["/data-locations"],DR=["/data-locations"],ER=["/constructor"],QR=["/constructor"],TR=["/calling-contract"],LR=["/bitwise"],UR=["/bitwise"],_R=["/bitwise"],OR=["/bitwise"],PR=["/assembly-math"],$R=["/array"],qR=["/array"],sv=["/app/write-to-any-slot"],av=["/app/write-to-any-slot","/app/deploy-any-contract"],nv=["/app/write-to-any-slot"],lv=["/app/upgradeable-proxy"],pv=["/app/uni-directional-payment-channel","/app/bi-directional-payment-channel"],ev=["/app/uni-directional-payment-channel","/app/bi-directional-payment-channel"],cv=["/app/time-lock"],tv=["/app/simple-bytecode-contract"],ov=["/app/simple-bytecode-contract"],rv=["/app/multi-sig-wallet","/app/multi-delegatecall","/app/multi-call"],iv=["/app/multi-sig-wallet"],gv=["/app/multi-sig-wallet","/app/ether-wallet"],hv=["/app/multi-call"],Iv=["/app/minimal-proxy"],dv=["/app/merkle-tree","/app/airdrop"],Cv=["/app/merkle-tree"],jv=["/app/iterable-mapping"],Av=["/app/gasless-token-transfer"],uv=["/app/gasless-token-transfer","/app/erc20"],yv=["/app/gasless-token-transfer"],mv=["/app/erc721"],bv=["/app/erc721"],wv=["/app/erc721","/app/erc1155"],kv=["/app/erc20"],Zv=["/app/erc20"],Wv=["/app/erc1155"],Gv=["/app/erc1155"],Bv=["/app/english-auction"],fv=["/app/english-auction","/app/dutch-auction"],Vv=["/app/english-auction","/app/dutch-auction"],Yv=["/app/dutch-auction"],Xv=["/app/crowd-fund"],Rv=["/app/crowd-fund"],vv=["/app/crowd-fund"],Nv=["/app/create2"],Hv=["/app/assembly-bin-exp"],Kv=["/app/assembly-bin-exp"],Fv=["/app/airdrop"],Mv=["/abi-encode","/abi-decode"],Sv=["/abi-encode"],xv=["/abi-encode","/abi-decode"],Jv=["/abi-encode"],zv=["/abi-encode"],Dv=["/abi-encode"],Ev=["/abi-decode"],vo={visibility:r1,function:["/visibility","/view-and-pure-functions","/sending-ether","/hashing","/function-selector","/function-modifier","/function","/fallback","/delegatecall","/calling-contract","/call"],functions:i1,internal:g1,private:["/visibility","/hacks/accessing-private-data"],public:["/visibility"],external:h1,view:I1,pure:d1,variable:C1,variables:j1,local:A1,global:u1,state:y1,data:m1,user:b1,defined:w1,value:k1,types:Z1,udvt:W1,gas:G1,unchecked:B1,math:f1,overflow:V1,underflow:Y1,try:["/try-catch"],catch:["/try-catch"],error:X1,errors:R1,transient:v1,storage:N1,test:H1,echidna:K1,calling:F1,parent:M1,contract:S1,contracts:x1,inheritance:J1,super:["/super","/inheritance"],struct:z1,structs:D1,type:E1,reading:Q1,writing:T1,app:L1,application:U1,cryptography:_1,verify:O1,verifying:P1,signature:$1,signatures:q1,ecrecover:sY,shadow:aY,shadowing:nY,sending:lY,send:pY,ether:eY,eth:cY,transfer:tY,call:oY,fallback:rY,receive:iY,payable:gY,primitive:hY,primitives:IY,boolean:dY,uint256:CY,int256:jY,address:AY,uint:uY,int:yY,new:["/new-contract","/new-contract"],create:mY,creates:bY,create2:wY,salt:kY,mapping:ZY,for:["/loop","/assembly-loop"],loop:WY,loops:GY,while:["/loop","/assembly-loop"],do:["/loop"],library:BY,interface:["/interface"],interfaces:fY,override:VY,virtual:YY,is:XY,import:["/import","/enum"],constant:RY,constants:vY,immutable:NY,immutables:HY,if:["/if-else","/assembly-if"],else:["/if-else"],conditional:KY,statement:FY,statements:MY,hello:SY,world:xY,hash:JY,hashing:zY,keccak256:DY,hack:EY,security:QY,weth:TY,permit:LY,inflation:UY,erc4626:_Y,vault:OY,replay:PY,selfdestruct:$Y,"re-entrancy":["/hacks/re-entrancy"],source:qY,random:sX,randomness:aX,blockhash:nX,block:lX,timestamp:pX,phishing:eX,"tx.origin":["/hacks/phishing-with-tx-origin"],arithmetic:cX,honeypot:tX,hide:oX,hiding:rX,malicious:iX,code:gX,front:hX,running:IX,deploy:dX,different:CX,same:jX,denial:AX,service:uX,delegatecall:yX,bypass:mX,size:bX,check:wX,extcodesize:kX,manipulation:ZX,access:WX,accessing:GX,golf:BX,selector:fX,selectors:VX,modifier:YX,modifiers:XX,_:RX,foundry:vX,time:NX,warp:HX,skip:KX,roll:FX,unwind:MX,sign:SX,deal:xX,hoax:JX,mock:zX,label:DX,event:EX,basic:QX,counter:TX,auth:LX,authorization:UX,prank:_X,first:OX,evm:PX,yul:$X,assembly:qX,memory:sR,events:aR,advanced:nR,"event-driven":["/events-advanced"],monitoring:lR,filtering:pR,wei:eR,units:cR,require:tR,revert:oR,assert:rR,enum:["/enum"],imports:iR,defi:gR,uniswap:hR,v3:IR,swap:dR,amm:CR,liquidity:jR,arbitrage:AR,flash:uR,loan:yR,v2:mR,optimal:bR,one:wR,sided:kR,supply:ZR,add:WR,remove:GR,staking:BR,reward:fR,rewards:VR,curve:YR,stable:XR,discrete:RR,dai:vR,proxy:NR,sum:HR,product:KR,chainlink:FR,price:MR,oracle:SR,oracles:xR,location:JR,locations:zR,calldata:DR,constructor:ER,constructors:QR,other:TR,bitwise:LR,most:UR,significant:_R,bit:OR,mul:PR,switch:["/assembly-if"],array:$R,arrays:qR,write:sv,any:av,slot:nv,upgradeable:lv,"uni-directional":["/app/uni-directional-payment-channel"],payment:pv,channel:ev,lock:cv,simple:tv,bytecode:ov,multi:rv,sig:iv,wallet:gv,staticcall:hv,minimal:Iv,merkle:dv,tree:Cv,iterable:jv,gasless:Av,token:uv,ERC20:yv,erc721:mv,ierc721:bv,nft:wv,erc20:kv,ierc20:Zv,erc1155:Wv,ierc1155:Gv,english:Bv,auction:fv,auctions:Vv,dutch:Yv,crowd:Xv,fund:Rv,funding:vv,precompute:Nv,"bi-directional":["/app/bi-directional-payment-channel"],binary:Hv,exponentiation:Kv,airdrop:Fv,abi:Mv,encode:Sv,bytes:xv,encodeWithSelector:Jv,encodeWithSignature:zv,encodeCall:Dv,decode:Ev},No={"/visibility":["visibility","function","functions","internal","private","public","external"],"/view-and-pure-functions":["view","pure","function","functions"],"/variables":["variable","variables","local","global","state","data"],"/user-defined-value-types":["data","user","defined","value","types","udvt"],"/unchecked-math":["gas","unchecked","math","overflow","underflow"],"/try-catch":["try","catch","error","errors"],"/transient-storage":["transient","storage"],"/tests/echidna":["test","echidna"],"/super":["calling","parent","contract","contracts","inheritance","super"],"/structs":["struct","structs","data","type","types","variable","variables"],"/state-variables":["reading","writing","state","variable","variables","app","application"],"/signature":["cryptography","verify","verifying","signature","signatures","ecrecover"],"/shadowing-inherited-state-variables":["state","variables","variable","shadow","shadowing","inheritance"],"/sending-ether":["sending","send","ether","eth","transfer","send","call","fallback","receive","payable","function","functions"],"/primitives":["primitive","primitives","data","type","types","variable","variables","boolean","uint256","int256","address","uint","int"],"/payable":["payable","eth","send","ether"],"/new-contract":["new","contract","create","contracts","creates","new","create2","salt"],"/mapping":["data","variable","variables","mapping"],"/loop":["for","loop","loops","while","do"],"/library":["library"],"/interface":["interface","interfaces","contract","contracts"],"/inheritance":["inheritance","super","override","virtual","is","contract","contracts"],"/import":["import"],"/immutable":["constant","constants","immutable","immutables","data","variable","variables"],"/if-else":["if","else","conditional","statement","statements"],"/hello-world":["contract","app","application","hello","world"],"/hashing":["hash","hashing","function","functions","keccak256","cryptography"],"/hacks/weth-permit":["hack","security","weth","permit"],"/hacks/vault-inflation":["hack","security","inflation","erc4626","vault"],"/hacks/signature-replay":["hack","security","cryptography","signature","replay"],"/hacks/self-destruct":["hack","security","selfdestruct"],"/hacks/re-entrancy":["hack","security","re-entrancy"],"/hacks/randomness":["hack","security","source","random","randomness","blockhash","block","timestamp"],"/hacks/phishing-with-tx-origin":["hack","security","phishing","tx.origin"],"/hacks/overflow":["hack","security","arithmetic","overflow","underflow"],"/hacks/honeypot":["hack","security","honeypot"],"/hacks/hiding-malicious-code-with-external-contract":["hack","security","hide","hiding","malicious","code","external","contract"],"/hacks/front-running":["hack","security","front","running"],"/hacks/deploy-different-contracts-same-address":["hack","security","deploy","salt","create","create2","different","contract","same","address"],"/hacks/denial-of-service":["hack","security","denial","service"],"/hacks/delegatecall":["hack","security","delegatecall"],"/hacks/contract-size":["hack","security","bypass","contract","size","check","extcodesize"],"/hacks/block-timestamp-manipulation":["hack","security","block","timestamp","manipulation"],"/hacks/accessing-private-data":["hack","security","access","accessing","private","data","storage"],"/gas-golf":["gas","golf"],"/gas":["gas"],"/function-selector":["function","functions","selector","selectors"],"/function-modifier":["function","functions","modifier","modifiers","_"],"/function":["function","functions"],"/foundry/time":["foundry","time","warp","skip","roll","unwind"],"/foundry/sign":["foundry","sign","signature","ecrecover"],"/foundry/send":["foundry","send","deal","hoax"],"/foundry/mock-call":["foundry","mock","call"],"/foundry/label":["foundry","label"],"/foundry/event":["foundry","event"],"/foundry/error":["foundry","error"],"/foundry/basic":["foundry","basic","counter"],"/foundry/auth":["foundry","auth","authorization","prank"],"/first-app":["contract","contracts","app","first","application","counter"],"/fallback":["fallback","function","functions","receive","payable","send","ether","eth","transfer"],"/evm/storage":["data","evm","storage","state","variable","yul","assembly"],"/evm/memory":["data","evm","memory","yul","assembly"],"/events-advanced":["events","advanced","event-driven","monitoring","filtering","security"],"/events":["event","events"],"/ether-units":["data","variables","variable","ether","wei","units"],"/error":["error","errors","require","revert","assert"],"/enum":["data","variable","variables","enum","import","imports"],"/delegatecall":["delegatecall","call","contract","contracts","function","functions"],"/defi/vault":["defi","vault"],"/defi/uniswap-v3-swap":["defi","uniswap","v3","swap","amm"],"/defi/uniswap-v3-liquidity":["defi","uniswap","v3","liquidity","amm"],"/defi/uniswap-v3-flash-swap":["defi","uniswap","v3","swap","arbitrage","amm"],"/defi/uniswap-v3-flash":["defi","uniswap","v3","flash","loan","amm"],"/defi/uniswap-v2-optimal-one-sided-supply":["defi","uniswap","v2","optimal","one","sided","supply","amm"],"/defi/uniswap-v2-flash-swap":["defi","uniswap","v2","flash","swap","amm"],"/defi/uniswap-v2-add-remove-liquidity":["defi","uniswap","v2","add","remove","liquidity","amm"],"/defi/uniswap-v2":["defi","uniswap","v2","swap","amm"],"/defi/staking-rewards":["defi","staking","reward","rewards"],"/defi/stable-swap-amm":["defi","curve","stable","swap","amm"],"/defi/discrete-staking-rewards":["defi","discrete","staking","reward","rewards"],"/defi/dai-proxy":["defi","dai","proxy"],"/defi/constant-sum-amm":["defi","constant","sum","amm"],"/defi/constant-product-amm":["defi","constant","product","amm"],"/defi/chainlink-price-oracle":["defi","chainlink","price","oracle","oracles"],"/data-locations":["data","location","locations","storage","memory","calldata"],"/constructor":["constructor","constructors","contract","inheritance"],"/constants":["constant","constants","data","variable","variables"],"/calling-contract":["calling","other","contract","contracts","call","function","functions"],"/call":["contract","contracts","call","function","functions"],"/bitwise":["bitwise","most","significant","bit","assembly"],"/assembly-variable":["assembly","variable","yul"],"/assembly-math":["assembly","yul","math","add","mul"],"/assembly-loop":["assembly","loop","yul","while","for"],"/assembly-if":["assembly","yul","if","switch"],"/assembly-error":["assembly","yul","error","revert"],"/array":["data","variable","variables","array","arrays"],"/app/write-to-any-slot":["app","application","write","any","slot","storage"],"/app/upgradeable-proxy":["app","application","delegatecall","upgradeable","proxy"],"/app/uni-directional-payment-channel":["app","application","uni-directional","payment","channel","signature","cryptography"],"/app/time-lock":["app","application","time","lock"],"/app/simple-bytecode-contract":["app","application","simple","bytecode","contract"],"/app/multi-sig-wallet":["app","application","multi","sig","signature","wallet"],"/app/multi-delegatecall":["app","application","multi","delegatecall"],"/app/multi-call":["app","application","multi","call","staticcall"],"/app/minimal-proxy":["app","application","minimal","proxy","contract"],"/app/merkle-tree":["app","application","merkle","tree","cryptography"],"/app/iterable-mapping":["app","application","mapping","data","iterable"],"/app/gasless-token-transfer":["app","application","gasless","token","transfer","ERC20","permit"],"/app/ether-wallet":["app","application","ether","eth","wallet"],"/app/erc721":["app","application","erc721","ierc721","nft"],"/app/erc20":["app","application","erc20","ierc20","token"],"/app/erc1155":["app","application","erc1155","nft","ierc1155"],"/app/english-auction":["app","application","english","auction","auctions"],"/app/dutch-auction":["app","application","dutch","auction","auctions"],"/app/deploy-any-contract":["app","application","deploy","any","contract"],"/app/crowd-fund":["app","application","crowd","fund","funding"],"/app/create2":["app","application","create2","precompute","contract","address"],"/app/bi-directional-payment-channel":["app","application","bi-directional","payment","channel","signature","cryptography"],"/app/assembly-bin-exp":["assembly","yul","binary","exponentiation","math"],"/app/airdrop":["app","application","merkle","airdrop"],"/abi-encode":["abi","encode","bytes","encodeWithSelector","encodeWithSignature","encodeCall"],"/abi-decode":["abi","decode","bytes"]},hc=[];for(const s of Object.keys(No))hc.push(...No[s]);const Cg={};for(let s=0;s{const I=n.get("q");I!=null&&I.length>0&&(a(I),c(I,!1))},[]);function c(I,d){const j=I.trim();if(j.length==0){e(null),d&&l({q:""});return}const u=Qv(j.split(" ")),m={};for(const b of u){const G=Tv(b);for(const h of G)m[h]=!0}e(m),d&&l({q:j})}const t=e1(I=>c(I,!0),500,[]);function o(I){a(I),t(I)}function i(){return p?Object.keys(p).length==0?r.jsx("div",{children:"No results"}):r.jsx("ul",{className:as.list,children:jp.filter(({path:I})=>p[I]).map(({path:I,title:d})=>r.jsx("li",{className:as.listItem,children:r.jsx("a",{href:I,children:d})},I))}):r.jsxs(r.Fragment,{children:[rt.map(({routes:I,title:d},j)=>r.jsxs("div",{children:[d&&r.jsx("h3",{className:as.category,children:d}),r.jsx("ul",{className:as.list,children:I.map(({path:u,title:m})=>r.jsx("li",{className:as.listItem,children:r.jsx("a",{href:u,children:m})},u))})]},j)),r.jsxs("div",{children:[r.jsx("h3",{className:as.category,children:"Translations"}),_d.map(({lang:I,url:d})=>r.jsx("li",{className:as.listItem,children:r.jsx("a",{href:d,target:"__blank",children:I})},d))]})]})}return r.jsxs("div",{className:as.component,children:[r.jsx(dg,{title:"Solidity by Example | 0.8.26",description:"Learn smart contract programming using Solidity"}),r.jsx("h1",{className:as.header,children:r.jsx("a",{href:"/",children:"Solidity by Example"})}),r.jsx("div",{className:as.subHeader,children:"v 0.8.26"}),r.jsxs("div",{className:as.main,children:[r.jsxs("p",{children:["Introduction to ",r.jsx("a",{href:"https://solidity.readthedocs.io",children:"Solidity"})," with simple examples"]}),r.jsxs("div",{className:as.youTube,children:[r.jsx("img",{src:Ig,alt:"logo",className:as.youTubeLogo}),r.jsx("a",{href:"https://www.youtube.com/@smartcontractprogrammer",target:"__blank",children:"Most code are explained here"})]}),r.jsxs("div",{className:as.updraft,children:[r.jsx("img",{src:hg,alt:"logo",className:as.updraftLogo}),r.jsx("a",{href:"https://updraft.cyfrin.io/",target:"__blank",children:"Learn Solidity at Cyfrin Updraft"})]}),r.jsx("div",{className:as.updates,children:pN.map((I,d)=>r.jsx("div",{children:I},d))}),r.jsx("div",{className:as.search,children:r.jsx(MV,{value:s,onChange:o})}),i()]})]})}const cN=[{path:"/abi-decode",component:_C},{path:"/abi-encode",component:nj},{path:"/app/airdrop",component:rj},{path:"/app/assembly-bin-exp",component:jj},{path:"/app/bi-directional-payment-channel",component:kj},{path:"/app/create2",component:Yj},{path:"/app/crowd-fund",component:Fj},{path:"/app/deploy-any-contract",component:Ej},{path:"/app/dutch-auction",component:Pj},{path:"/app/english-auction",component:pA},{path:"/app/erc1155",component:gA},{path:"/app/erc20",component:uA},{path:"/app/erc721",component:WA},{path:"/app/ether-wallet",component:RA},{path:"/app/gasless-token-transfer",component:SA},{path:"/app/iterable-mapping",component:TA},{path:"/app/merkle-tree",component:qA},{path:"/app/minimal-proxy",component:cu},{path:"/app/multi-call",component:Iu},{path:"/app/multi-delegatecall",component:mu},{path:"/app/multi-sig-wallet",component:Bu},{path:"/app/simple-bytecode-contract",component:Nu},{path:"/app/time-lock",component:Ju},{path:"/app/uni-directional-payment-channel",component:Uu},{path:"/app/upgradeable-proxy",component:ay},{path:"/app/write-to-any-slot",component:oy},{path:"/array",component:Cy},{path:"/assembly-error",component:wy},{path:"/assembly-if",component:Vy},{path:"/assembly-loop",component:Ky},{path:"/assembly-math",component:Dy},{path:"/assembly-variable",component:Oy},{path:"/bitwise",component:lm},{path:"/call",component:im},{path:"/calling-contract",component:Am},{path:"/constants",component:Zm},{path:"/constructor",component:Xm},{path:"/data-locations",component:Mm},{path:"/defi/chainlink-price-oracle",component:Qm},{path:"/defi/constant-product-amm",component:$m},{path:"/defi/constant-sum-amm",component:eb},{path:"/defi/dai-proxy",component:hb},{path:"/defi/discrete-staking-rewards",component:yb},{path:"/defi/stable-swap-amm",component:Gb},{path:"/defi/staking-rewards",component:vb},{path:"/defi/uniswap-v2",component:xb},{path:"/defi/uniswap-v2-add-remove-liquidity",component:Lb},{path:"/defi/uniswap-v2-flash-swap",component:sw},{path:"/defi/uniswap-v2-optimal-one-sided-supply",component:tw},{path:"/defi/uniswap-v3-flash",component:dw},{path:"/defi/uniswap-v3-flash-swap",component:bw},{path:"/defi/uniswap-v3-liquidity",component:fw},{path:"/defi/uniswap-v3-swap",component:Hw},{path:"/defi/vault",component:zw},{path:"/delegatecall",component:_w},{path:"/enum",component:nk},{path:"/error",component:rk},{path:"/ether-units",component:jk},{path:"/events",component:kk},{path:"/events-advanced",component:Yk},{path:"/evm/memory",component:Fk},{path:"/evm/storage",component:Ek},{path:"/fallback",component:Pk},{path:"/first-app",component:p0},{path:"/foundry/auth",component:g0},{path:"/foundry/basic",component:u0},{path:"/foundry/error",component:W0},{path:"/foundry/event",component:R0},{path:"/foundry/label",component:S0},{path:"/foundry/mock-call",component:T0},{path:"/foundry/send",component:q0},{path:"/foundry/sign",component:cZ},{path:"/foundry/time",component:IZ},{path:"/function",component:mZ},{path:"/function-modifier",component:BZ},{path:"/function-selector",component:NZ},{path:"/gas",component:JZ},{path:"/gas-golf",component:UZ},{path:"/hacks/accessing-private-data",component:aW},{path:"/hacks/block-timestamp-manipulation",component:oW},{path:"/hacks/contract-size",component:CW},{path:"/hacks/delegatecall",component:wW},{path:"/hacks/denial-of-service",component:VW},{path:"/hacks/deploy-different-contracts-same-address",component:KW},{path:"/hacks/front-running",component:DW},{path:"/hacks/hiding-malicious-code-with-external-contract",component:OW},{path:"/hacks/honeypot",component:l2},{path:"/hacks/overflow",component:i2},{path:"/hacks/phishing-with-tx-origin",component:A2},{path:"/hacks/randomness",component:Z2},{path:"/hacks/re-entrancy",component:X2},{path:"/hacks/self-destruct",component:M2},{path:"/hacks/signature-replay",component:Q2},{path:"/hacks/vault-inflation",component:$2},{path:"/hacks/weth-permit",component:eG},{path:"/hashing",component:hG},{path:"/hello-world",component:yG},{path:"/if-else",component:GG},{path:"/immutable",component:vG},{path:"/import",component:xG},{path:"/inheritance",component:LG},{path:"/interface",component:sB},{path:"/library",component:tB},{path:"/loop",component:dB},{path:"/mapping",component:bB},{path:"/new-contract",component:fB},{path:"/payable",component:HB},{path:"/primitives",component:zB},{path:"/sending-ether",component:_B},{path:"/shadowing-inherited-state-variables",component:nf},{path:"/signature",component:rf},{path:"/state-variables",component:Af},{path:"/structs",component:Zf},{path:"/super",component:Xf},{path:"/tests/echidna",component:Mf},{path:"/transient-storage",component:Qf},{path:"/try-catch",component:$f},{path:"/unchecked-math",component:eV},{path:"/user-defined-value-types",component:hV},{path:"/variables",component:yV},{path:"/view-and-pure-functions",component:GV},{path:"/visibility",component:vV},{path:"",component:eN}];function Ho(){const{state:s,init:a}=tt();return W.useLayoutEffect(()=>{a({width:window.document.body.clientWidth})},[]),s.initialized?r.jsx(Md,{basename:"",children:r.jsx(HC,{children:r.jsx(Nd,{children:cN.map(n=>{const{prev:l,next:p}=pC(n.path);return r.jsx(gg,{path:n.path,element:Uo.createElement(n.component,{prev:l,next:p})},n.path)})})})}):null}const tN=document.getElementById("root"),oN=$i(tN),Ko=document.getElementById("root");Ko.hasChildNodes()?Pi(Ko,r.jsx(wo,{children:r.jsx(Ho,{})})):oN.render(r.jsx(wo,{children:r.jsx(Ho,{})})); +`,vV=({prev:s,next:a})=>r.jsx(A,{version:BV,title:fV,description:VV,cyfrinLink:YV,html:RV,prev:s,next:a,codes:XV}),NV=({size:s,className:a=""})=>r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",width:s,height:s,className:a,children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"})}),HV="_component_efeb7_1",KV="_icon_efeb7_8",FV="_input_efeb7_12",Ie={component:HV,icon:KV,input:FV},MV=({value:s,onChange:a})=>{function n(l){a(l.target.value)}return r.jsxs("div",{className:Ie.component,children:[r.jsx(NV,{size:18,className:Ie.icon}),r.jsx("input",{className:Ie.input,placeholder:"Search",value:s,onChange:n})]})};var SV="Expected a function",Xo=NaN,xV="[object Symbol]",JV=/^\s+|\s+$/g,zV=/^[-+]0x[0-9a-f]+$/i,DV=/^0b[01]+$/i,EV=/^0o[0-7]+$/i,QV=parseInt,TV=typeof Il=="object"&&Il&&Il.Object===Object&&Il,LV=typeof self=="object"&&self&&self.Object===Object&&self,UV=TV||LV||Function("return this")(),_V=Object.prototype,OV=_V.toString,PV=Math.max,$V=Math.min,de=function(){return UV.Date.now()};function qV(s,a,n){var l,p,e,c,t,o,i=0,I=!1,d=!1,j=!0;if(typeof s!="function")throw new TypeError(SV);a=Ro(a)||0,gc(n)&&(I=!!n.leading,d="maxWait"in n,e=d?PV(Ro(n.maxWait)||0,a):e,j="trailing"in n?!!n.trailing:j);function u(k){var B=l,Y=p;return l=p=void 0,i=k,c=s.apply(Y,B),c}function m(k){return i=k,t=setTimeout(h,a),I?u(k):c}function b(k){var B=k-o,Y=k-i,x=a-B;return d?$V(x,e-Y):x}function G(k){var B=k-o,Y=k-i;return o===void 0||B>=a||B<0||d&&Y>=e}function h(){var k=de();if(G(k))return g(k);t=setTimeout(h,b(k))}function g(k){return t=void 0,j&&l?u(k):(l=p=void 0,c)}function C(){t!==void 0&&clearTimeout(t),i=0,l=o=p=t=void 0}function y(){return t===void 0?c:g(de())}function Z(){var k=de(),B=G(k);if(l=arguments,p=this,o=k,B){if(t===void 0)return m(o);if(d)return t=setTimeout(h,a),u(o)}return t===void 0&&(t=setTimeout(h,a)),c}return Z.cancel=C,Z.flush=y,Z}function gc(s){var a=typeof s;return!!s&&(a=="object"||a=="function")}function s1(s){return!!s&&typeof s=="object"}function a1(s){return typeof s=="symbol"||s1(s)&&OV.call(s)==xV}function Ro(s){if(typeof s=="number")return s;if(a1(s))return Xo;if(gc(s)){var a=typeof s.valueOf=="function"?s.valueOf():s;s=gc(a)?a+"":a}if(typeof s!="string")return s===0?s:+s;s=s.replace(JV,"");var n=DV.test(s);return n||EV.test(s)?QV(s.slice(2),n?2:8):zV.test(s)?Xo:+s}var n1=qV;const l1=Fo(n1),p1={leading:!1,trailing:!0};function e1(s,a,n){return W.useCallback(l1(s,a,p1),n)}function c1(s,a){let n=s;for(let l=0;l0;){const[e,c,t]=a.pop();p&&(l=l.slice(0,c-1),p=!1),l+=e;const o=Object.keys(t);if(o.length>0)for(let i=0;ia+p)}const r1=["/visibility"],i1=["/visibility","/view-and-pure-functions","/sending-ether","/hashing","/function-selector","/function-modifier","/function","/fallback","/delegatecall","/calling-contract","/call"],g1=["/visibility"],h1=["/visibility","/hacks/hiding-malicious-code-with-external-contract"],I1=["/view-and-pure-functions"],d1=["/view-and-pure-functions"],C1=["/variables","/structs","/state-variables","/shadowing-inherited-state-variables","/primitives","/mapping","/immutable","/evm/storage","/ether-units","/enum","/constants","/assembly-variable","/array"],j1=["/variables","/structs","/state-variables","/shadowing-inherited-state-variables","/primitives","/mapping","/immutable","/ether-units","/enum","/constants","/array"],A1=["/variables"],u1=["/variables"],y1=["/variables","/state-variables","/shadowing-inherited-state-variables","/evm/storage"],m1=["/variables","/user-defined-value-types","/structs","/primitives","/mapping","/immutable","/hacks/accessing-private-data","/evm/storage","/evm/memory","/ether-units","/enum","/data-locations","/constants","/array","/app/iterable-mapping"],b1=["/user-defined-value-types"],w1=["/user-defined-value-types"],k1=["/user-defined-value-types"],Z1=["/user-defined-value-types","/structs","/primitives"],W1=["/user-defined-value-types"],G1=["/unchecked-math","/gas-golf","/gas"],B1=["/unchecked-math"],f1=["/unchecked-math","/assembly-math","/app/assembly-bin-exp"],V1=["/unchecked-math","/hacks/overflow"],Y1=["/unchecked-math","/hacks/overflow"],X1=["/try-catch","/foundry/error","/error","/assembly-error"],R1=["/try-catch","/error"],v1=["/transient-storage"],N1=["/transient-storage","/hacks/accessing-private-data","/evm/storage","/data-locations","/app/write-to-any-slot"],H1=["/tests/echidna"],K1=["/tests/echidna"],F1=["/super","/calling-contract"],M1=["/super"],S1=["/super","/new-contract","/interface","/inheritance","/hello-world","/hacks/hiding-malicious-code-with-external-contract","/hacks/deploy-different-contracts-same-address","/hacks/contract-size","/first-app","/delegatecall","/constructor","/calling-contract","/call","/app/simple-bytecode-contract","/app/minimal-proxy","/app/deploy-any-contract","/app/create2"],x1=["/super","/new-contract","/interface","/inheritance","/first-app","/delegatecall","/calling-contract","/call"],J1=["/super","/shadowing-inherited-state-variables","/inheritance","/constructor"],z1=["/structs"],D1=["/structs"],E1=["/structs","/primitives"],Q1=["/state-variables"],T1=["/state-variables"],L1=["/state-variables","/hello-world","/first-app","/app/write-to-any-slot","/app/upgradeable-proxy","/app/uni-directional-payment-channel","/app/time-lock","/app/simple-bytecode-contract","/app/multi-sig-wallet","/app/multi-delegatecall","/app/multi-call","/app/minimal-proxy","/app/merkle-tree","/app/iterable-mapping","/app/gasless-token-transfer","/app/ether-wallet","/app/erc721","/app/erc20","/app/erc1155","/app/english-auction","/app/dutch-auction","/app/deploy-any-contract","/app/crowd-fund","/app/create2","/app/bi-directional-payment-channel","/app/airdrop"],U1=["/state-variables","/hello-world","/first-app","/app/write-to-any-slot","/app/upgradeable-proxy","/app/uni-directional-payment-channel","/app/time-lock","/app/simple-bytecode-contract","/app/multi-sig-wallet","/app/multi-delegatecall","/app/multi-call","/app/minimal-proxy","/app/merkle-tree","/app/iterable-mapping","/app/gasless-token-transfer","/app/ether-wallet","/app/erc721","/app/erc20","/app/erc1155","/app/english-auction","/app/dutch-auction","/app/deploy-any-contract","/app/crowd-fund","/app/create2","/app/bi-directional-payment-channel","/app/airdrop"],_1=["/signature","/hashing","/hacks/signature-replay","/app/uni-directional-payment-channel","/app/merkle-tree","/app/bi-directional-payment-channel"],O1=["/signature"],P1=["/signature"],$1=["/signature","/hacks/signature-replay","/foundry/sign","/app/uni-directional-payment-channel","/app/multi-sig-wallet","/app/bi-directional-payment-channel"],q1=["/signature"],sY=["/signature","/foundry/sign"],aY=["/shadowing-inherited-state-variables"],nY=["/shadowing-inherited-state-variables"],lY=["/sending-ether"],pY=["/sending-ether","/sending-ether","/payable","/foundry/send","/fallback"],eY=["/sending-ether","/payable","/fallback","/ether-units","/app/ether-wallet"],cY=["/sending-ether","/payable","/fallback","/app/ether-wallet"],tY=["/sending-ether","/fallback","/app/gasless-token-transfer"],oY=["/sending-ether","/foundry/mock-call","/delegatecall","/calling-contract","/call","/app/multi-call"],rY=["/sending-ether","/fallback"],iY=["/sending-ether","/fallback"],gY=["/sending-ether","/payable","/fallback"],hY=["/primitives"],IY=["/primitives"],dY=["/primitives"],CY=["/primitives"],jY=["/primitives"],AY=["/primitives","/hacks/deploy-different-contracts-same-address","/app/create2"],uY=["/primitives"],yY=["/primitives"],mY=["/new-contract","/hacks/deploy-different-contracts-same-address"],bY=["/new-contract"],wY=["/new-contract","/hacks/deploy-different-contracts-same-address","/app/create2"],kY=["/new-contract","/hacks/deploy-different-contracts-same-address"],ZY=["/mapping","/app/iterable-mapping"],WY=["/loop","/assembly-loop"],GY=["/loop"],BY=["/library"],fY=["/interface"],VY=["/inheritance"],YY=["/inheritance"],XY=["/inheritance"],RY=["/immutable","/defi/constant-sum-amm","/defi/constant-product-amm","/constants"],vY=["/immutable","/constants"],NY=["/immutable"],HY=["/immutable"],KY=["/if-else"],FY=["/if-else"],MY=["/if-else"],SY=["/hello-world"],xY=["/hello-world"],JY=["/hashing"],zY=["/hashing"],DY=["/hashing"],EY=["/hacks/weth-permit","/hacks/vault-inflation","/hacks/signature-replay","/hacks/self-destruct","/hacks/re-entrancy","/hacks/randomness","/hacks/phishing-with-tx-origin","/hacks/overflow","/hacks/honeypot","/hacks/hiding-malicious-code-with-external-contract","/hacks/front-running","/hacks/deploy-different-contracts-same-address","/hacks/denial-of-service","/hacks/delegatecall","/hacks/contract-size","/hacks/block-timestamp-manipulation","/hacks/accessing-private-data"],QY=["/hacks/weth-permit","/hacks/vault-inflation","/hacks/signature-replay","/hacks/self-destruct","/hacks/re-entrancy","/hacks/randomness","/hacks/phishing-with-tx-origin","/hacks/overflow","/hacks/honeypot","/hacks/hiding-malicious-code-with-external-contract","/hacks/front-running","/hacks/deploy-different-contracts-same-address","/hacks/denial-of-service","/hacks/delegatecall","/hacks/contract-size","/hacks/block-timestamp-manipulation","/hacks/accessing-private-data","/events-advanced"],TY=["/hacks/weth-permit"],LY=["/hacks/weth-permit","/app/gasless-token-transfer"],UY=["/hacks/vault-inflation"],_Y=["/hacks/vault-inflation"],OY=["/hacks/vault-inflation","/defi/vault"],PY=["/hacks/signature-replay"],$Y=["/hacks/self-destruct"],qY=["/hacks/randomness"],sX=["/hacks/randomness"],aX=["/hacks/randomness"],nX=["/hacks/randomness"],lX=["/hacks/randomness","/hacks/block-timestamp-manipulation"],pX=["/hacks/randomness","/hacks/block-timestamp-manipulation"],eX=["/hacks/phishing-with-tx-origin"],cX=["/hacks/overflow"],tX=["/hacks/honeypot"],oX=["/hacks/hiding-malicious-code-with-external-contract"],rX=["/hacks/hiding-malicious-code-with-external-contract"],iX=["/hacks/hiding-malicious-code-with-external-contract"],gX=["/hacks/hiding-malicious-code-with-external-contract"],hX=["/hacks/front-running"],IX=["/hacks/front-running"],dX=["/hacks/deploy-different-contracts-same-address","/app/deploy-any-contract"],CX=["/hacks/deploy-different-contracts-same-address"],jX=["/hacks/deploy-different-contracts-same-address"],AX=["/hacks/denial-of-service"],uX=["/hacks/denial-of-service"],yX=["/hacks/delegatecall","/delegatecall","/app/upgradeable-proxy","/app/multi-delegatecall"],mX=["/hacks/contract-size"],bX=["/hacks/contract-size"],wX=["/hacks/contract-size"],kX=["/hacks/contract-size"],ZX=["/hacks/block-timestamp-manipulation"],WX=["/hacks/accessing-private-data"],GX=["/hacks/accessing-private-data"],BX=["/gas-golf"],fX=["/function-selector"],VX=["/function-selector"],YX=["/function-modifier"],XX=["/function-modifier"],RX=["/function-modifier"],vX=["/foundry/time","/foundry/sign","/foundry/send","/foundry/mock-call","/foundry/label","/foundry/event","/foundry/error","/foundry/basic","/foundry/auth"],NX=["/foundry/time","/app/time-lock"],HX=["/foundry/time"],KX=["/foundry/time"],FX=["/foundry/time"],MX=["/foundry/time"],SX=["/foundry/sign"],xX=["/foundry/send"],JX=["/foundry/send"],zX=["/foundry/mock-call"],DX=["/foundry/label"],EX=["/foundry/event","/events"],QX=["/foundry/basic"],TX=["/foundry/basic","/first-app"],LX=["/foundry/auth"],UX=["/foundry/auth"],_X=["/foundry/auth"],OX=["/first-app"],PX=["/evm/storage","/evm/memory"],$X=["/evm/storage","/evm/memory","/assembly-variable","/assembly-math","/assembly-loop","/assembly-if","/assembly-error","/app/assembly-bin-exp"],qX=["/evm/storage","/evm/memory","/bitwise","/assembly-variable","/assembly-math","/assembly-loop","/assembly-if","/assembly-error","/app/assembly-bin-exp"],sR=["/evm/memory","/data-locations"],aR=["/events-advanced","/events"],nR=["/events-advanced"],lR=["/events-advanced"],pR=["/events-advanced"],eR=["/ether-units"],cR=["/ether-units"],tR=["/error"],oR=["/error","/assembly-error"],rR=["/error"],iR=["/enum"],gR=["/defi/vault","/defi/uniswap-v3-swap","/defi/uniswap-v3-liquidity","/defi/uniswap-v3-flash-swap","/defi/uniswap-v3-flash","/defi/uniswap-v2-optimal-one-sided-supply","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2-add-remove-liquidity","/defi/uniswap-v2","/defi/staking-rewards","/defi/stable-swap-amm","/defi/discrete-staking-rewards","/defi/dai-proxy","/defi/constant-sum-amm","/defi/constant-product-amm","/defi/chainlink-price-oracle"],hR=["/defi/uniswap-v3-swap","/defi/uniswap-v3-liquidity","/defi/uniswap-v3-flash-swap","/defi/uniswap-v3-flash","/defi/uniswap-v2-optimal-one-sided-supply","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2-add-remove-liquidity","/defi/uniswap-v2"],IR=["/defi/uniswap-v3-swap","/defi/uniswap-v3-liquidity","/defi/uniswap-v3-flash-swap","/defi/uniswap-v3-flash"],dR=["/defi/uniswap-v3-swap","/defi/uniswap-v3-flash-swap","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2","/defi/stable-swap-amm"],CR=["/defi/uniswap-v3-swap","/defi/uniswap-v3-liquidity","/defi/uniswap-v3-flash-swap","/defi/uniswap-v3-flash","/defi/uniswap-v2-optimal-one-sided-supply","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2-add-remove-liquidity","/defi/uniswap-v2","/defi/stable-swap-amm","/defi/constant-sum-amm","/defi/constant-product-amm"],jR=["/defi/uniswap-v3-liquidity","/defi/uniswap-v2-add-remove-liquidity"],AR=["/defi/uniswap-v3-flash-swap"],uR=["/defi/uniswap-v3-flash","/defi/uniswap-v2-flash-swap"],yR=["/defi/uniswap-v3-flash"],mR=["/defi/uniswap-v2-optimal-one-sided-supply","/defi/uniswap-v2-flash-swap","/defi/uniswap-v2-add-remove-liquidity","/defi/uniswap-v2"],bR=["/defi/uniswap-v2-optimal-one-sided-supply"],wR=["/defi/uniswap-v2-optimal-one-sided-supply"],kR=["/defi/uniswap-v2-optimal-one-sided-supply"],ZR=["/defi/uniswap-v2-optimal-one-sided-supply"],WR=["/defi/uniswap-v2-add-remove-liquidity","/assembly-math"],GR=["/defi/uniswap-v2-add-remove-liquidity"],BR=["/defi/staking-rewards","/defi/discrete-staking-rewards"],fR=["/defi/staking-rewards","/defi/discrete-staking-rewards"],VR=["/defi/staking-rewards","/defi/discrete-staking-rewards"],YR=["/defi/stable-swap-amm"],XR=["/defi/stable-swap-amm"],RR=["/defi/discrete-staking-rewards"],vR=["/defi/dai-proxy"],NR=["/defi/dai-proxy","/app/upgradeable-proxy","/app/minimal-proxy"],HR=["/defi/constant-sum-amm"],KR=["/defi/constant-product-amm"],FR=["/defi/chainlink-price-oracle"],MR=["/defi/chainlink-price-oracle"],SR=["/defi/chainlink-price-oracle"],xR=["/defi/chainlink-price-oracle"],JR=["/data-locations"],zR=["/data-locations"],DR=["/data-locations"],ER=["/constructor"],QR=["/constructor"],TR=["/calling-contract"],LR=["/bitwise"],UR=["/bitwise"],_R=["/bitwise"],OR=["/bitwise"],PR=["/assembly-math"],$R=["/array"],qR=["/array"],sv=["/app/write-to-any-slot"],av=["/app/write-to-any-slot","/app/deploy-any-contract"],nv=["/app/write-to-any-slot"],lv=["/app/upgradeable-proxy"],pv=["/app/uni-directional-payment-channel","/app/bi-directional-payment-channel"],ev=["/app/uni-directional-payment-channel","/app/bi-directional-payment-channel"],cv=["/app/time-lock"],tv=["/app/simple-bytecode-contract"],ov=["/app/simple-bytecode-contract"],rv=["/app/multi-sig-wallet","/app/multi-delegatecall","/app/multi-call"],iv=["/app/multi-sig-wallet"],gv=["/app/multi-sig-wallet","/app/ether-wallet"],hv=["/app/multi-call"],Iv=["/app/minimal-proxy"],dv=["/app/merkle-tree","/app/airdrop"],Cv=["/app/merkle-tree"],jv=["/app/iterable-mapping"],Av=["/app/gasless-token-transfer"],uv=["/app/gasless-token-transfer","/app/erc20"],yv=["/app/gasless-token-transfer"],mv=["/app/erc721"],bv=["/app/erc721"],wv=["/app/erc721","/app/erc1155"],kv=["/app/erc20"],Zv=["/app/erc20"],Wv=["/app/erc1155"],Gv=["/app/erc1155"],Bv=["/app/english-auction"],fv=["/app/english-auction","/app/dutch-auction"],Vv=["/app/english-auction","/app/dutch-auction"],Yv=["/app/dutch-auction"],Xv=["/app/crowd-fund"],Rv=["/app/crowd-fund"],vv=["/app/crowd-fund"],Nv=["/app/create2"],Hv=["/app/assembly-bin-exp"],Kv=["/app/assembly-bin-exp"],Fv=["/app/airdrop"],Mv=["/abi-encode","/abi-decode"],Sv=["/abi-encode"],xv=["/abi-encode","/abi-decode"],Jv=["/abi-encode"],zv=["/abi-encode"],Dv=["/abi-encode"],Ev=["/abi-decode"],vo={visibility:r1,function:["/visibility","/view-and-pure-functions","/sending-ether","/hashing","/function-selector","/function-modifier","/function","/fallback","/delegatecall","/calling-contract","/call"],functions:i1,internal:g1,private:["/visibility","/hacks/accessing-private-data"],public:["/visibility"],external:h1,view:I1,pure:d1,variable:C1,variables:j1,local:A1,global:u1,state:y1,data:m1,user:b1,defined:w1,value:k1,types:Z1,udvt:W1,gas:G1,unchecked:B1,math:f1,overflow:V1,underflow:Y1,try:["/try-catch"],catch:["/try-catch"],error:X1,errors:R1,transient:v1,storage:N1,test:H1,echidna:K1,calling:F1,parent:M1,contract:S1,contracts:x1,inheritance:J1,super:["/super","/inheritance"],struct:z1,structs:D1,type:E1,reading:Q1,writing:T1,app:L1,application:U1,cryptography:_1,verify:O1,verifying:P1,signature:$1,signatures:q1,ecrecover:sY,shadow:aY,shadowing:nY,sending:lY,send:pY,ether:eY,eth:cY,transfer:tY,call:oY,fallback:rY,receive:iY,payable:gY,primitive:hY,primitives:IY,boolean:dY,uint256:CY,int256:jY,address:AY,uint:uY,int:yY,new:["/new-contract","/new-contract"],create:mY,creates:bY,create2:wY,salt:kY,mapping:ZY,for:["/loop","/assembly-loop"],loop:WY,loops:GY,while:["/loop","/assembly-loop"],do:["/loop"],library:BY,interface:["/interface"],interfaces:fY,override:VY,virtual:YY,is:XY,import:["/import","/enum"],constant:RY,constants:vY,immutable:NY,immutables:HY,if:["/if-else","/assembly-if"],else:["/if-else"],conditional:KY,statement:FY,statements:MY,hello:SY,world:xY,hash:JY,hashing:zY,keccak256:DY,hack:EY,security:QY,weth:TY,permit:LY,inflation:UY,erc4626:_Y,vault:OY,replay:PY,selfdestruct:$Y,"re-entrancy":["/hacks/re-entrancy"],source:qY,random:sX,randomness:aX,blockhash:nX,block:lX,timestamp:pX,phishing:eX,"tx.origin":["/hacks/phishing-with-tx-origin"],arithmetic:cX,honeypot:tX,hide:oX,hiding:rX,malicious:iX,code:gX,front:hX,running:IX,deploy:dX,different:CX,same:jX,denial:AX,service:uX,delegatecall:yX,bypass:mX,size:bX,check:wX,extcodesize:kX,manipulation:ZX,access:WX,accessing:GX,golf:BX,selector:fX,selectors:VX,modifier:YX,modifiers:XX,_:RX,foundry:vX,time:NX,warp:HX,skip:KX,roll:FX,unwind:MX,sign:SX,deal:xX,hoax:JX,mock:zX,label:DX,event:EX,basic:QX,counter:TX,auth:LX,authorization:UX,prank:_X,first:OX,evm:PX,yul:$X,assembly:qX,memory:sR,events:aR,advanced:nR,"event-driven":["/events-advanced"],monitoring:lR,filtering:pR,wei:eR,units:cR,require:tR,revert:oR,assert:rR,enum:["/enum"],imports:iR,defi:gR,uniswap:hR,v3:IR,swap:dR,amm:CR,liquidity:jR,arbitrage:AR,flash:uR,loan:yR,v2:mR,optimal:bR,one:wR,sided:kR,supply:ZR,add:WR,remove:GR,staking:BR,reward:fR,rewards:VR,curve:YR,stable:XR,discrete:RR,dai:vR,proxy:NR,sum:HR,product:KR,chainlink:FR,price:MR,oracle:SR,oracles:xR,location:JR,locations:zR,calldata:DR,constructor:ER,constructors:QR,other:TR,bitwise:LR,most:UR,significant:_R,bit:OR,mul:PR,switch:["/assembly-if"],array:$R,arrays:qR,write:sv,any:av,slot:nv,upgradeable:lv,"uni-directional":["/app/uni-directional-payment-channel"],payment:pv,channel:ev,lock:cv,simple:tv,bytecode:ov,multi:rv,sig:iv,wallet:gv,staticcall:hv,minimal:Iv,merkle:dv,tree:Cv,iterable:jv,gasless:Av,token:uv,ERC20:yv,erc721:mv,ierc721:bv,nft:wv,erc20:kv,ierc20:Zv,erc1155:Wv,ierc1155:Gv,english:Bv,auction:fv,auctions:Vv,dutch:Yv,crowd:Xv,fund:Rv,funding:vv,precompute:Nv,"bi-directional":["/app/bi-directional-payment-channel"],binary:Hv,exponentiation:Kv,airdrop:Fv,abi:Mv,encode:Sv,bytes:xv,encodeWithSelector:Jv,encodeWithSignature:zv,encodeCall:Dv,decode:Ev},No={"/visibility":["visibility","function","functions","internal","private","public","external"],"/view-and-pure-functions":["view","pure","function","functions"],"/variables":["variable","variables","local","global","state","data"],"/user-defined-value-types":["data","user","defined","value","types","udvt"],"/unchecked-math":["gas","unchecked","math","overflow","underflow"],"/try-catch":["try","catch","error","errors"],"/transient-storage":["transient","storage"],"/tests/echidna":["test","echidna"],"/super":["calling","parent","contract","contracts","inheritance","super"],"/structs":["struct","structs","data","type","types","variable","variables"],"/state-variables":["reading","writing","state","variable","variables","app","application"],"/signature":["cryptography","verify","verifying","signature","signatures","ecrecover"],"/shadowing-inherited-state-variables":["state","variables","variable","shadow","shadowing","inheritance"],"/sending-ether":["sending","send","ether","eth","transfer","send","call","fallback","receive","payable","function","functions"],"/primitives":["primitive","primitives","data","type","types","variable","variables","boolean","uint256","int256","address","uint","int"],"/payable":["payable","eth","send","ether"],"/new-contract":["new","contract","create","contracts","creates","new","create2","salt"],"/mapping":["data","variable","variables","mapping"],"/loop":["for","loop","loops","while","do"],"/library":["library"],"/interface":["interface","interfaces","contract","contracts"],"/inheritance":["inheritance","super","override","virtual","is","contract","contracts"],"/import":["import"],"/immutable":["constant","constants","immutable","immutables","data","variable","variables"],"/if-else":["if","else","conditional","statement","statements"],"/hello-world":["contract","app","application","hello","world"],"/hashing":["hash","hashing","function","functions","keccak256","cryptography"],"/hacks/weth-permit":["hack","security","weth","permit"],"/hacks/vault-inflation":["hack","security","inflation","erc4626","vault"],"/hacks/signature-replay":["hack","security","cryptography","signature","replay"],"/hacks/self-destruct":["hack","security","selfdestruct"],"/hacks/re-entrancy":["hack","security","re-entrancy"],"/hacks/randomness":["hack","security","source","random","randomness","blockhash","block","timestamp"],"/hacks/phishing-with-tx-origin":["hack","security","phishing","tx.origin"],"/hacks/overflow":["hack","security","arithmetic","overflow","underflow"],"/hacks/honeypot":["hack","security","honeypot"],"/hacks/hiding-malicious-code-with-external-contract":["hack","security","hide","hiding","malicious","code","external","contract"],"/hacks/front-running":["hack","security","front","running"],"/hacks/deploy-different-contracts-same-address":["hack","security","deploy","salt","create","create2","different","contract","same","address"],"/hacks/denial-of-service":["hack","security","denial","service"],"/hacks/delegatecall":["hack","security","delegatecall"],"/hacks/contract-size":["hack","security","bypass","contract","size","check","extcodesize"],"/hacks/block-timestamp-manipulation":["hack","security","block","timestamp","manipulation"],"/hacks/accessing-private-data":["hack","security","access","accessing","private","data","storage"],"/gas-golf":["gas","golf"],"/gas":["gas"],"/function-selector":["function","functions","selector","selectors"],"/function-modifier":["function","functions","modifier","modifiers","_"],"/function":["function","functions"],"/foundry/time":["foundry","time","warp","skip","roll","unwind"],"/foundry/sign":["foundry","sign","signature","ecrecover"],"/foundry/send":["foundry","send","deal","hoax"],"/foundry/mock-call":["foundry","mock","call"],"/foundry/label":["foundry","label"],"/foundry/event":["foundry","event"],"/foundry/error":["foundry","error"],"/foundry/basic":["foundry","basic","counter"],"/foundry/auth":["foundry","auth","authorization","prank"],"/first-app":["contract","contracts","app","first","application","counter"],"/fallback":["fallback","function","functions","receive","payable","send","ether","eth","transfer"],"/evm/storage":["data","evm","storage","state","variable","yul","assembly"],"/evm/memory":["data","evm","memory","yul","assembly"],"/events-advanced":["events","advanced","event-driven","monitoring","filtering","security"],"/events":["event","events"],"/ether-units":["data","variables","variable","ether","wei","units"],"/error":["error","errors","require","revert","assert"],"/enum":["data","variable","variables","enum","import","imports"],"/delegatecall":["delegatecall","call","contract","contracts","function","functions"],"/defi/vault":["defi","vault"],"/defi/uniswap-v3-swap":["defi","uniswap","v3","swap","amm"],"/defi/uniswap-v3-liquidity":["defi","uniswap","v3","liquidity","amm"],"/defi/uniswap-v3-flash-swap":["defi","uniswap","v3","swap","arbitrage","amm"],"/defi/uniswap-v3-flash":["defi","uniswap","v3","flash","loan","amm"],"/defi/uniswap-v2-optimal-one-sided-supply":["defi","uniswap","v2","optimal","one","sided","supply","amm"],"/defi/uniswap-v2-flash-swap":["defi","uniswap","v2","flash","swap","amm"],"/defi/uniswap-v2-add-remove-liquidity":["defi","uniswap","v2","add","remove","liquidity","amm"],"/defi/uniswap-v2":["defi","uniswap","v2","swap","amm"],"/defi/staking-rewards":["defi","staking","reward","rewards"],"/defi/stable-swap-amm":["defi","curve","stable","swap","amm"],"/defi/discrete-staking-rewards":["defi","discrete","staking","reward","rewards"],"/defi/dai-proxy":["defi","dai","proxy"],"/defi/constant-sum-amm":["defi","constant","sum","amm"],"/defi/constant-product-amm":["defi","constant","product","amm"],"/defi/chainlink-price-oracle":["defi","chainlink","price","oracle","oracles"],"/data-locations":["data","location","locations","storage","memory","calldata"],"/constructor":["constructor","constructors","contract","inheritance"],"/constants":["constant","constants","data","variable","variables"],"/calling-contract":["calling","other","contract","contracts","call","function","functions"],"/call":["contract","contracts","call","function","functions"],"/bitwise":["bitwise","most","significant","bit","assembly"],"/assembly-variable":["assembly","variable","yul"],"/assembly-math":["assembly","yul","math","add","mul"],"/assembly-loop":["assembly","loop","yul","while","for"],"/assembly-if":["assembly","yul","if","switch"],"/assembly-error":["assembly","yul","error","revert"],"/array":["data","variable","variables","array","arrays"],"/app/write-to-any-slot":["app","application","write","any","slot","storage"],"/app/upgradeable-proxy":["app","application","delegatecall","upgradeable","proxy"],"/app/uni-directional-payment-channel":["app","application","uni-directional","payment","channel","signature","cryptography"],"/app/time-lock":["app","application","time","lock"],"/app/simple-bytecode-contract":["app","application","simple","bytecode","contract"],"/app/multi-sig-wallet":["app","application","multi","sig","signature","wallet"],"/app/multi-delegatecall":["app","application","multi","delegatecall"],"/app/multi-call":["app","application","multi","call","staticcall"],"/app/minimal-proxy":["app","application","minimal","proxy","contract"],"/app/merkle-tree":["app","application","merkle","tree","cryptography"],"/app/iterable-mapping":["app","application","mapping","data","iterable"],"/app/gasless-token-transfer":["app","application","gasless","token","transfer","ERC20","permit"],"/app/ether-wallet":["app","application","ether","eth","wallet"],"/app/erc721":["app","application","erc721","ierc721","nft"],"/app/erc20":["app","application","erc20","ierc20","token"],"/app/erc1155":["app","application","erc1155","nft","ierc1155"],"/app/english-auction":["app","application","english","auction","auctions"],"/app/dutch-auction":["app","application","dutch","auction","auctions"],"/app/deploy-any-contract":["app","application","deploy","any","contract"],"/app/crowd-fund":["app","application","crowd","fund","funding"],"/app/create2":["app","application","create2","precompute","contract","address"],"/app/bi-directional-payment-channel":["app","application","bi-directional","payment","channel","signature","cryptography"],"/app/assembly-bin-exp":["assembly","yul","binary","exponentiation","math"],"/app/airdrop":["app","application","merkle","airdrop"],"/abi-encode":["abi","encode","bytes","encodeWithSelector","encodeWithSignature","encodeCall"],"/abi-decode":["abi","decode","bytes"]},hc=[];for(const s of Object.keys(No))hc.push(...No[s]);const Cg={};for(let s=0;s{const I=n.get("q");I!=null&&I.length>0&&(a(I),c(I,!1))},[]);function c(I,d){const j=I.trim();if(j.length==0){e(null),d&&l({q:""});return}const u=Qv(j.split(" ")),m={};for(const b of u){const G=Tv(b);for(const h of G)m[h]=!0}e(m),d&&l({q:j})}const t=e1(I=>c(I,!0),500,[]);function o(I){a(I),t(I)}function i(){return p?Object.keys(p).length==0?r.jsx("div",{children:"No results"}):r.jsx("ul",{className:as.list,children:jp.filter(({path:I})=>p[I]).map(({path:I,title:d})=>r.jsx("li",{className:as.listItem,children:r.jsx("a",{href:I,children:d})},I))}):r.jsxs(r.Fragment,{children:[rt.map(({routes:I,title:d},j)=>r.jsxs("div",{children:[d&&r.jsx("h3",{className:as.category,children:d}),r.jsx("ul",{className:as.list,children:I.map(({path:u,title:m})=>r.jsx("li",{className:as.listItem,children:r.jsx("a",{href:u,children:m})},u))})]},j)),r.jsxs("div",{children:[r.jsx("h3",{className:as.category,children:"Translations"}),_d.map(({lang:I,url:d})=>r.jsx("li",{className:as.listItem,children:r.jsx("a",{href:d,target:"__blank",children:I})},d))]})]})}return r.jsxs("div",{className:as.component,children:[r.jsx(dg,{title:"Solidity by Example | 0.8.26",description:"Learn smart contract programming using Solidity"}),r.jsx("h1",{className:as.header,children:r.jsx("a",{href:"/",children:"Solidity by Example"})}),r.jsx("div",{className:as.subHeader,children:"v 0.8.26"}),r.jsxs("div",{className:as.main,children:[r.jsxs("p",{children:["Introduction to ",r.jsx("a",{href:"https://solidity.readthedocs.io",children:"Solidity"})," with simple examples"]}),r.jsxs("div",{className:as.youTube,children:[r.jsx("img",{src:Ig,alt:"logo",className:as.youTubeLogo}),r.jsx("a",{href:"https://www.youtube.com/@smartcontractprogrammer",target:"__blank",children:"Most code are explained here"})]}),r.jsxs("div",{className:as.updraft,children:[r.jsx("img",{src:hg,alt:"logo",className:as.updraftLogo}),r.jsx("a",{href:"https://updraft.cyfrin.io/",target:"__blank",children:"Learn Solidity at Cyfrin Updraft"})]}),r.jsx("div",{className:as.updates,children:pN.map((I,d)=>r.jsx("div",{children:I},d))}),r.jsx("div",{className:as.search,children:r.jsx(MV,{value:s,onChange:o})}),i()]})]})}const cN=[{path:"/abi-decode",component:_C},{path:"/abi-encode",component:nj},{path:"/app/airdrop",component:rj},{path:"/app/assembly-bin-exp",component:jj},{path:"/app/bi-directional-payment-channel",component:kj},{path:"/app/create2",component:Yj},{path:"/app/crowd-fund",component:Fj},{path:"/app/deploy-any-contract",component:Ej},{path:"/app/dutch-auction",component:Pj},{path:"/app/english-auction",component:pA},{path:"/app/erc1155",component:gA},{path:"/app/erc20",component:uA},{path:"/app/erc721",component:WA},{path:"/app/ether-wallet",component:RA},{path:"/app/gasless-token-transfer",component:SA},{path:"/app/iterable-mapping",component:TA},{path:"/app/merkle-tree",component:qA},{path:"/app/minimal-proxy",component:cu},{path:"/app/multi-call",component:Iu},{path:"/app/multi-delegatecall",component:mu},{path:"/app/multi-sig-wallet",component:Bu},{path:"/app/simple-bytecode-contract",component:Nu},{path:"/app/time-lock",component:Ju},{path:"/app/uni-directional-payment-channel",component:Uu},{path:"/app/upgradeable-proxy",component:ay},{path:"/app/write-to-any-slot",component:oy},{path:"/array",component:Cy},{path:"/assembly-error",component:wy},{path:"/assembly-if",component:Vy},{path:"/assembly-loop",component:Ky},{path:"/assembly-math",component:Dy},{path:"/assembly-variable",component:Oy},{path:"/bitwise",component:lm},{path:"/call",component:im},{path:"/calling-contract",component:Am},{path:"/constants",component:Zm},{path:"/constructor",component:Xm},{path:"/data-locations",component:Mm},{path:"/defi/chainlink-price-oracle",component:Qm},{path:"/defi/constant-product-amm",component:$m},{path:"/defi/constant-sum-amm",component:eb},{path:"/defi/dai-proxy",component:hb},{path:"/defi/discrete-staking-rewards",component:yb},{path:"/defi/stable-swap-amm",component:Gb},{path:"/defi/staking-rewards",component:vb},{path:"/defi/uniswap-v2",component:xb},{path:"/defi/uniswap-v2-add-remove-liquidity",component:Lb},{path:"/defi/uniswap-v2-flash-swap",component:sw},{path:"/defi/uniswap-v2-optimal-one-sided-supply",component:tw},{path:"/defi/uniswap-v3-flash",component:dw},{path:"/defi/uniswap-v3-flash-swap",component:bw},{path:"/defi/uniswap-v3-liquidity",component:fw},{path:"/defi/uniswap-v3-swap",component:Hw},{path:"/defi/vault",component:zw},{path:"/delegatecall",component:_w},{path:"/enum",component:nk},{path:"/error",component:rk},{path:"/ether-units",component:jk},{path:"/events",component:kk},{path:"/events-advanced",component:Yk},{path:"/evm/memory",component:Fk},{path:"/evm/storage",component:Ek},{path:"/fallback",component:Pk},{path:"/first-app",component:p0},{path:"/foundry/auth",component:g0},{path:"/foundry/basic",component:u0},{path:"/foundry/error",component:W0},{path:"/foundry/event",component:R0},{path:"/foundry/label",component:S0},{path:"/foundry/mock-call",component:T0},{path:"/foundry/send",component:q0},{path:"/foundry/sign",component:cZ},{path:"/foundry/time",component:IZ},{path:"/function",component:mZ},{path:"/function-modifier",component:BZ},{path:"/function-selector",component:NZ},{path:"/gas",component:JZ},{path:"/gas-golf",component:UZ},{path:"/hacks/accessing-private-data",component:aW},{path:"/hacks/block-timestamp-manipulation",component:oW},{path:"/hacks/contract-size",component:CW},{path:"/hacks/delegatecall",component:wW},{path:"/hacks/denial-of-service",component:VW},{path:"/hacks/deploy-different-contracts-same-address",component:KW},{path:"/hacks/front-running",component:DW},{path:"/hacks/hiding-malicious-code-with-external-contract",component:OW},{path:"/hacks/honeypot",component:l2},{path:"/hacks/overflow",component:i2},{path:"/hacks/phishing-with-tx-origin",component:A2},{path:"/hacks/randomness",component:Z2},{path:"/hacks/re-entrancy",component:X2},{path:"/hacks/self-destruct",component:M2},{path:"/hacks/signature-replay",component:Q2},{path:"/hacks/vault-inflation",component:$2},{path:"/hacks/weth-permit",component:eG},{path:"/hashing",component:hG},{path:"/hello-world",component:yG},{path:"/if-else",component:GG},{path:"/immutable",component:vG},{path:"/import",component:xG},{path:"/inheritance",component:LG},{path:"/interface",component:sB},{path:"/library",component:tB},{path:"/loop",component:dB},{path:"/mapping",component:bB},{path:"/new-contract",component:fB},{path:"/payable",component:HB},{path:"/primitives",component:zB},{path:"/sending-ether",component:_B},{path:"/shadowing-inherited-state-variables",component:nf},{path:"/signature",component:rf},{path:"/state-variables",component:Af},{path:"/structs",component:Zf},{path:"/super",component:Xf},{path:"/tests/echidna",component:Mf},{path:"/transient-storage",component:Qf},{path:"/try-catch",component:$f},{path:"/unchecked-math",component:eV},{path:"/user-defined-value-types",component:hV},{path:"/variables",component:yV},{path:"/view-and-pure-functions",component:GV},{path:"/visibility",component:vV},{path:"",component:eN}];function Ho(){const{state:s,init:a}=tt();return W.useLayoutEffect(()=>{a({width:window.document.body.clientWidth})},[]),s.initialized?r.jsx(Md,{basename:void 0,children:r.jsx(HC,{children:r.jsx(Nd,{children:cN.map(n=>{const{prev:l,next:p}=pC(n.path);return r.jsx(gg,{path:n.path,element:Uo.createElement(n.component,{prev:l,next:p})},n.path)})})})}):null}const tN=document.getElementById("root"),oN=$i(tN),Ko=document.getElementById("root");Ko.hasChildNodes()?Pi(Ko,r.jsx(wo,{children:r.jsx(Ho,{})})):oN.render(r.jsx(wo,{children:r.jsx(Ho,{})})); diff --git a/bitwise/index.html b/bitwise/index.html index 6bd2e84bd..7bfe49367 100644 --- a/bitwise/index.html +++ b/bitwise/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/call/index.html b/call/index.html index 6bd2e84bd..7bfe49367 100644 --- a/call/index.html +++ b/call/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/calling-contract/index.html b/calling-contract/index.html index 6bd2e84bd..7bfe49367 100644 --- a/calling-contract/index.html +++ b/calling-contract/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/constants/index.html b/constants/index.html index 6bd2e84bd..7bfe49367 100644 --- a/constants/index.html +++ b/constants/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/constructor/index.html b/constructor/index.html index 6bd2e84bd..7bfe49367 100644 --- a/constructor/index.html +++ b/constructor/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/data-locations/index.html b/data-locations/index.html index 6bd2e84bd..7bfe49367 100644 --- a/data-locations/index.html +++ b/data-locations/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/chainlink-price-oracle/index.html b/defi/chainlink-price-oracle/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/chainlink-price-oracle/index.html +++ b/defi/chainlink-price-oracle/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/constant-product-amm/index.html b/defi/constant-product-amm/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/constant-product-amm/index.html +++ b/defi/constant-product-amm/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/constant-sum-amm/index.html b/defi/constant-sum-amm/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/constant-sum-amm/index.html +++ b/defi/constant-sum-amm/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/dai-proxy/index.html b/defi/dai-proxy/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/dai-proxy/index.html +++ b/defi/dai-proxy/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/discrete-staking-rewards/index.html b/defi/discrete-staking-rewards/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/discrete-staking-rewards/index.html +++ b/defi/discrete-staking-rewards/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/stable-swap-amm/index.html b/defi/stable-swap-amm/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/stable-swap-amm/index.html +++ b/defi/stable-swap-amm/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/staking-rewards/index.html b/defi/staking-rewards/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/staking-rewards/index.html +++ b/defi/staking-rewards/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/uniswap-v2-add-remove-liquidity/index.html b/defi/uniswap-v2-add-remove-liquidity/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/uniswap-v2-add-remove-liquidity/index.html +++ b/defi/uniswap-v2-add-remove-liquidity/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/uniswap-v2-flash-swap/index.html b/defi/uniswap-v2-flash-swap/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/uniswap-v2-flash-swap/index.html +++ b/defi/uniswap-v2-flash-swap/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/uniswap-v2-optimal-one-sided-supply/index.html b/defi/uniswap-v2-optimal-one-sided-supply/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/uniswap-v2-optimal-one-sided-supply/index.html +++ b/defi/uniswap-v2-optimal-one-sided-supply/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/uniswap-v2/index.html b/defi/uniswap-v2/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/uniswap-v2/index.html +++ b/defi/uniswap-v2/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/uniswap-v3-flash-swap/index.html b/defi/uniswap-v3-flash-swap/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/uniswap-v3-flash-swap/index.html +++ b/defi/uniswap-v3-flash-swap/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/uniswap-v3-flash/index.html b/defi/uniswap-v3-flash/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/uniswap-v3-flash/index.html +++ b/defi/uniswap-v3-flash/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/uniswap-v3-liquidity/index.html b/defi/uniswap-v3-liquidity/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/uniswap-v3-liquidity/index.html +++ b/defi/uniswap-v3-liquidity/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/uniswap-v3-swap/index.html b/defi/uniswap-v3-swap/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/uniswap-v3-swap/index.html +++ b/defi/uniswap-v3-swap/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/defi/vault/index.html b/defi/vault/index.html index 6bd2e84bd..7bfe49367 100644 --- a/defi/vault/index.html +++ b/defi/vault/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/delegatecall/index.html b/delegatecall/index.html index 6bd2e84bd..7bfe49367 100644 --- a/delegatecall/index.html +++ b/delegatecall/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/enum/index.html b/enum/index.html index 6bd2e84bd..7bfe49367 100644 --- a/enum/index.html +++ b/enum/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/error/index.html b/error/index.html index 6bd2e84bd..7bfe49367 100644 --- a/error/index.html +++ b/error/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/ether-units/index.html b/ether-units/index.html index 6bd2e84bd..7bfe49367 100644 --- a/ether-units/index.html +++ b/ether-units/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/events-advanced/index.html b/events-advanced/index.html index 6bd2e84bd..7bfe49367 100644 --- a/events-advanced/index.html +++ b/events-advanced/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/events/index.html b/events/index.html index 6bd2e84bd..7bfe49367 100644 --- a/events/index.html +++ b/events/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/evm/memory/index.html b/evm/memory/index.html index 6bd2e84bd..7bfe49367 100644 --- a/evm/memory/index.html +++ b/evm/memory/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/evm/storage/index.html b/evm/storage/index.html index 6bd2e84bd..7bfe49367 100644 --- a/evm/storage/index.html +++ b/evm/storage/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/fallback/index.html b/fallback/index.html index 6bd2e84bd..7bfe49367 100644 --- a/fallback/index.html +++ b/fallback/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/first-app/index.html b/first-app/index.html index 6bd2e84bd..7bfe49367 100644 --- a/first-app/index.html +++ b/first-app/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/auth/index.html b/foundry/auth/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/auth/index.html +++ b/foundry/auth/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/basic/index.html b/foundry/basic/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/basic/index.html +++ b/foundry/basic/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/error/index.html b/foundry/error/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/error/index.html +++ b/foundry/error/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/event/index.html b/foundry/event/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/event/index.html +++ b/foundry/event/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/label/index.html b/foundry/label/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/label/index.html +++ b/foundry/label/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/mock-call/index.html b/foundry/mock-call/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/mock-call/index.html +++ b/foundry/mock-call/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/send/index.html b/foundry/send/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/send/index.html +++ b/foundry/send/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/sign/index.html b/foundry/sign/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/sign/index.html +++ b/foundry/sign/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/foundry/time/index.html b/foundry/time/index.html index 6bd2e84bd..7bfe49367 100644 --- a/foundry/time/index.html +++ b/foundry/time/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/function-modifier/index.html b/function-modifier/index.html index 6bd2e84bd..7bfe49367 100644 --- a/function-modifier/index.html +++ b/function-modifier/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/function-selector/index.html b/function-selector/index.html index 6bd2e84bd..7bfe49367 100644 --- a/function-selector/index.html +++ b/function-selector/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/function/index.html b/function/index.html index 6bd2e84bd..7bfe49367 100644 --- a/function/index.html +++ b/function/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/gas-golf/index.html b/gas-golf/index.html index 6bd2e84bd..7bfe49367 100644 --- a/gas-golf/index.html +++ b/gas-golf/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/gas/index.html b/gas/index.html index 6bd2e84bd..7bfe49367 100644 --- a/gas/index.html +++ b/gas/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/accessing-private-data/index.html b/hacks/accessing-private-data/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/accessing-private-data/index.html +++ b/hacks/accessing-private-data/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/block-timestamp-manipulation/index.html b/hacks/block-timestamp-manipulation/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/block-timestamp-manipulation/index.html +++ b/hacks/block-timestamp-manipulation/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/contract-size/index.html b/hacks/contract-size/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/contract-size/index.html +++ b/hacks/contract-size/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/delegatecall/index.html b/hacks/delegatecall/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/delegatecall/index.html +++ b/hacks/delegatecall/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/denial-of-service/index.html b/hacks/denial-of-service/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/denial-of-service/index.html +++ b/hacks/denial-of-service/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/deploy-different-contracts-same-address/index.html b/hacks/deploy-different-contracts-same-address/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/deploy-different-contracts-same-address/index.html +++ b/hacks/deploy-different-contracts-same-address/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/front-running/index.html b/hacks/front-running/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/front-running/index.html +++ b/hacks/front-running/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/hiding-malicious-code-with-external-contract/index.html b/hacks/hiding-malicious-code-with-external-contract/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/hiding-malicious-code-with-external-contract/index.html +++ b/hacks/hiding-malicious-code-with-external-contract/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/honeypot/index.html b/hacks/honeypot/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/honeypot/index.html +++ b/hacks/honeypot/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/overflow/index.html b/hacks/overflow/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/overflow/index.html +++ b/hacks/overflow/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/phishing-with-tx-origin/index.html b/hacks/phishing-with-tx-origin/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/phishing-with-tx-origin/index.html +++ b/hacks/phishing-with-tx-origin/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/randomness/index.html b/hacks/randomness/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/randomness/index.html +++ b/hacks/randomness/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/re-entrancy/index.html b/hacks/re-entrancy/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/re-entrancy/index.html +++ b/hacks/re-entrancy/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/self-destruct/index.html b/hacks/self-destruct/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/self-destruct/index.html +++ b/hacks/self-destruct/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/signature-replay/index.html b/hacks/signature-replay/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/signature-replay/index.html +++ b/hacks/signature-replay/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/vault-inflation/index.html b/hacks/vault-inflation/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/vault-inflation/index.html +++ b/hacks/vault-inflation/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hacks/weth-permit/index.html b/hacks/weth-permit/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hacks/weth-permit/index.html +++ b/hacks/weth-permit/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hashing/index.html b/hashing/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hashing/index.html +++ b/hashing/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/hello-world/index.html b/hello-world/index.html index 6bd2e84bd..7bfe49367 100644 --- a/hello-world/index.html +++ b/hello-world/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/if-else/index.html b/if-else/index.html index 6bd2e84bd..7bfe49367 100644 --- a/if-else/index.html +++ b/if-else/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/immutable/index.html b/immutable/index.html index 6bd2e84bd..7bfe49367 100644 --- a/immutable/index.html +++ b/immutable/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/import/index.html b/import/index.html index 6bd2e84bd..7bfe49367 100644 --- a/import/index.html +++ b/import/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/index.html b/index.html index 6bd2e84bd..7bfe49367 100644 --- a/index.html +++ b/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/inheritance/index.html b/inheritance/index.html index 6bd2e84bd..7bfe49367 100644 --- a/inheritance/index.html +++ b/inheritance/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/interface/index.html b/interface/index.html index 6bd2e84bd..7bfe49367 100644 --- a/interface/index.html +++ b/interface/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/library/index.html b/library/index.html index 6bd2e84bd..7bfe49367 100644 --- a/library/index.html +++ b/library/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/loop/index.html b/loop/index.html index 6bd2e84bd..7bfe49367 100644 --- a/loop/index.html +++ b/loop/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/mapping/index.html b/mapping/index.html index 6bd2e84bd..7bfe49367 100644 --- a/mapping/index.html +++ b/mapping/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/new-contract/index.html b/new-contract/index.html index 6bd2e84bd..7bfe49367 100644 --- a/new-contract/index.html +++ b/new-contract/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/payable/index.html b/payable/index.html index 6bd2e84bd..7bfe49367 100644 --- a/payable/index.html +++ b/payable/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/primitives/index.html b/primitives/index.html index 6bd2e84bd..7bfe49367 100644 --- a/primitives/index.html +++ b/primitives/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/sending-ether/index.html b/sending-ether/index.html index 6bd2e84bd..7bfe49367 100644 --- a/sending-ether/index.html +++ b/sending-ether/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/shadowing-inherited-state-variables/index.html b/shadowing-inherited-state-variables/index.html index 6bd2e84bd..7bfe49367 100644 --- a/shadowing-inherited-state-variables/index.html +++ b/shadowing-inherited-state-variables/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/signature/index.html b/signature/index.html index 6bd2e84bd..7bfe49367 100644 --- a/signature/index.html +++ b/signature/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/state-variables/index.html b/state-variables/index.html index 6bd2e84bd..7bfe49367 100644 --- a/state-variables/index.html +++ b/state-variables/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/structs/index.html b/structs/index.html index 6bd2e84bd..7bfe49367 100644 --- a/structs/index.html +++ b/structs/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/super/index.html b/super/index.html index 6bd2e84bd..7bfe49367 100644 --- a/super/index.html +++ b/super/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/tests/echidna/index.html b/tests/echidna/index.html index 6bd2e84bd..7bfe49367 100644 --- a/tests/echidna/index.html +++ b/tests/echidna/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/transient-storage/index.html b/transient-storage/index.html index 6bd2e84bd..7bfe49367 100644 --- a/transient-storage/index.html +++ b/transient-storage/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/try-catch/index.html b/try-catch/index.html index 6bd2e84bd..7bfe49367 100644 --- a/try-catch/index.html +++ b/try-catch/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/unchecked-math/index.html b/unchecked-math/index.html index 6bd2e84bd..7bfe49367 100644 --- a/unchecked-math/index.html +++ b/unchecked-math/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/user-defined-value-types/index.html b/user-defined-value-types/index.html index 6bd2e84bd..7bfe49367 100644 --- a/user-defined-value-types/index.html +++ b/user-defined-value-types/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/variables/index.html b/variables/index.html index 6bd2e84bd..7bfe49367 100644 --- a/variables/index.html +++ b/variables/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/view-and-pure-functions/index.html b/view-and-pure-functions/index.html index 6bd2e84bd..7bfe49367 100644 --- a/view-and-pure-functions/index.html +++ b/view-and-pure-functions/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + + diff --git a/visibility/index.html b/visibility/index.html index 6bd2e84bd..7bfe49367 100644 --- a/visibility/index.html +++ b/visibility/index.html @@ -28,8 +28,8 @@ gtag("config", "UA-133759045-1") - - + +