From b52fa1dcd06bbf575480f451ff0689f74968f235 Mon Sep 17 00:00:00 2001 From: Owais Date: Sun, 12 Sep 2021 18:42:27 +0500 Subject: [PATCH 1/2] add project04 --- step34_projects/project-04/.gitignore | 23 + step34_projects/project-04/backend/README.md | 26 + .../project-04/backend/contracts/DEX.sol | 156 + .../project-04/backend/img/ServerMenu.png | Bin 0 -> 148482 bytes .../backend/img/mainGanacheScreen.png | Bin 0 -> 120853 bytes .../project-04/backend/img/settings.png | Bin 0 -> 29536 bytes .../backend/img/transactionScreen.png | Bin 0 -> 58158 bytes .../backend/migrations/1_deploy_contract.js | 5 + .../project-04/backend/test/.gitkeep | 0 .../project-04/backend/truffle-config.js | 49 + step34_projects/project-04/backend/yarn.lock | 4 + step34_projects/project-04/frontend/README.md | 28 + .../project-04/frontend/img/customNetwork.png | Bin 0 -> 24248 bytes .../project-04/frontend/img/importAccount.png | Bin 0 -> 43983 bytes .../frontend/img/transactionScreen.png | Bin 0 -> 57055 bytes .../project-04/frontend/package.json | 53 + .../project-04/frontend/public/favicon.ico | Bin 0 -> 3870 bytes .../project-04/frontend/public/index.html | 43 + .../project-04/frontend/public/logo192.png | Bin 0 -> 5347 bytes .../project-04/frontend/public/logo512.png | Bin 0 -> 9664 bytes .../project-04/frontend/public/manifest.json | 25 + .../project-04/frontend/public/robots.txt | 3 + .../project-04/frontend/src/App.css | 12 + .../project-04/frontend/src/App.test.tsx | 9 + .../project-04/frontend/src/App.tsx | 124 + .../project-04/frontend/src/abis/DEX.json | 79 + .../frontend/src/abis/ERC20Basic.json | 16153 ++++++++++++++++ .../project-04/frontend/src/abis/IERC20.json | 12429 ++++++++++++ .../frontend/src/abis/SafeMath.json | 12245 ++++++++++++ .../project-04/frontend/src/config.ts | 1 + .../project-04/frontend/src/index.tsx | 17 + .../project-04/frontend/src/logo.svg | 1 + .../frontend/src/react-app-env.d.ts | 1 + .../frontend/src/reportWebVitals.ts | 15 + .../project-04/frontend/src/setupTests.ts | 5 + .../project-04/frontend/tsconfig.json | 20 + .../frontend/types/web3-v1-contracts/DEX.d.ts | 64 + .../types/web3-v1-contracts/ERC20Basic.d.ts | 95 + .../types/web3-v1-contracts/IERC20.d.ts | 89 + .../types/web3-v1-contracts/types.d.ts | 73 + step34_projects/project-04/frontend/yarn.lock | 13205 +++++++++++++ 41 files changed, 55052 insertions(+) create mode 100644 step34_projects/project-04/.gitignore create mode 100644 step34_projects/project-04/backend/README.md create mode 100644 step34_projects/project-04/backend/contracts/DEX.sol create mode 100644 step34_projects/project-04/backend/img/ServerMenu.png create mode 100644 step34_projects/project-04/backend/img/mainGanacheScreen.png create mode 100644 step34_projects/project-04/backend/img/settings.png create mode 100644 step34_projects/project-04/backend/img/transactionScreen.png create mode 100644 step34_projects/project-04/backend/migrations/1_deploy_contract.js create mode 100644 step34_projects/project-04/backend/test/.gitkeep create mode 100644 step34_projects/project-04/backend/truffle-config.js create mode 100644 step34_projects/project-04/backend/yarn.lock create mode 100644 step34_projects/project-04/frontend/README.md create mode 100644 step34_projects/project-04/frontend/img/customNetwork.png create mode 100644 step34_projects/project-04/frontend/img/importAccount.png create mode 100644 step34_projects/project-04/frontend/img/transactionScreen.png create mode 100644 step34_projects/project-04/frontend/package.json create mode 100644 step34_projects/project-04/frontend/public/favicon.ico create mode 100644 step34_projects/project-04/frontend/public/index.html create mode 100644 step34_projects/project-04/frontend/public/logo192.png create mode 100644 step34_projects/project-04/frontend/public/logo512.png create mode 100644 step34_projects/project-04/frontend/public/manifest.json create mode 100644 step34_projects/project-04/frontend/public/robots.txt create mode 100644 step34_projects/project-04/frontend/src/App.css create mode 100644 step34_projects/project-04/frontend/src/App.test.tsx create mode 100644 step34_projects/project-04/frontend/src/App.tsx create mode 100644 step34_projects/project-04/frontend/src/abis/DEX.json create mode 100644 step34_projects/project-04/frontend/src/abis/ERC20Basic.json create mode 100644 step34_projects/project-04/frontend/src/abis/IERC20.json create mode 100644 step34_projects/project-04/frontend/src/abis/SafeMath.json create mode 100644 step34_projects/project-04/frontend/src/config.ts create mode 100644 step34_projects/project-04/frontend/src/index.tsx create mode 100644 step34_projects/project-04/frontend/src/logo.svg create mode 100644 step34_projects/project-04/frontend/src/react-app-env.d.ts create mode 100644 step34_projects/project-04/frontend/src/reportWebVitals.ts create mode 100644 step34_projects/project-04/frontend/src/setupTests.ts create mode 100644 step34_projects/project-04/frontend/tsconfig.json create mode 100644 step34_projects/project-04/frontend/types/web3-v1-contracts/DEX.d.ts create mode 100644 step34_projects/project-04/frontend/types/web3-v1-contracts/ERC20Basic.d.ts create mode 100644 step34_projects/project-04/frontend/types/web3-v1-contracts/IERC20.d.ts create mode 100644 step34_projects/project-04/frontend/types/web3-v1-contracts/types.d.ts create mode 100644 step34_projects/project-04/frontend/yarn.lock diff --git a/step34_projects/project-04/.gitignore b/step34_projects/project-04/.gitignore new file mode 100644 index 0000000..7ad3bff --- /dev/null +++ b/step34_projects/project-04/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/step34_projects/project-04/backend/README.md b/step34_projects/project-04/backend/README.md new file mode 100644 index 0000000..592836e --- /dev/null +++ b/step34_projects/project-04/backend/README.md @@ -0,0 +1,26 @@ +# Deploy Smart Contract In Ganache + +## Step 1 +Download [Ganache](https://www.trufflesuite.com/ganache) for your operating system. Ganache is a local development blockchain which can be used to mimic a public blockchain + +## Step 2 +Install [MetaMask](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en) extension (A browser based wallet) + +## Step 3 +If your server port on Ganache is 7545, change it to 8545 as this is the local host network on MetaMask. +![mainScreen](img/mainGanacheScreen.png) + +Go to Settings > Server, repace 7545 with 8545. +![settins](img/settings.png) +![server](img/ServerMenu.png) + +## Step 4 +Install Truffle package globally using command npm i -g truffle + +## Step 5 +Run truffle migrate. +You can see a transaction of contract creation in the Transaction tab. +![transaction](img/transactionScreen.png) + +Great! Now follow the instructions in frontend folder to connect your local blockchain with React. + diff --git a/step34_projects/project-04/backend/contracts/DEX.sol b/step34_projects/project-04/backend/contracts/DEX.sol new file mode 100644 index 0000000..1d479c9 --- /dev/null +++ b/step34_projects/project-04/backend/contracts/DEX.sol @@ -0,0 +1,156 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.6; + +interface IERC20 { + function totalSupply() external view returns (uint256); + + function balanceOf(address account) external view returns (uint256); + + function allowance(address owner, address spender) + external + view + returns (uint256); + + function transfer(address recipient, uint256 amount) + external + returns (bool); + + function approve(address spender, uint256 amount) external returns (bool); + + function transferFrom( + address sender, + address recipient, + uint256 amount + ) external returns (bool); + + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval( + address indexed owner, + address indexed spender, + uint256 value + ); +} + +contract ERC20Basic is IERC20 { + string public constant name = "ERC20Basic"; + string public constant symbol = "ERC"; + uint8 public constant decimals = 18; + + mapping(address => uint256) balances; + + mapping(address => mapping(address => uint256)) allowed; + + uint256 totalSupply_ = 10 ether; + + using SafeMath for uint256; + + constructor() public { + balances[msg.sender] = totalSupply_; + } + + function totalSupply() public view override returns (uint256) { + return totalSupply_; + } + + function balanceOf(address tokenOwner) + public + view + override + returns (uint256) + { + return balances[tokenOwner]; + } + + function transfer(address receiver, uint256 numTokens) + public + override + returns (bool) + { + require(numTokens <= balances[msg.sender]); + balances[msg.sender] = balances[msg.sender].sub(numTokens); + balances[receiver] = balances[receiver].add(numTokens); + emit Transfer(msg.sender, receiver, numTokens); + return true; + } + + function approve(address delegate, uint256 numTokens) + public + override + returns (bool) + { + allowed[msg.sender][delegate] = numTokens; + emit Approval(msg.sender, delegate, numTokens); + return true; + } + + function allowance(address owner, address delegate) + public + view + override + returns (uint256) + { + return allowed[owner][delegate]; + } + + function transferFrom( + address owner, + address buyer, + uint256 numTokens + ) public override returns (bool) { + require(numTokens <= balances[owner]); + require(numTokens <= allowed[owner][msg.sender]); + + balances[owner] = balances[owner].sub(numTokens); + allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens); + balances[buyer] = balances[buyer].add(numTokens); + emit Transfer(owner, buyer, numTokens); + return true; + } +} + +library SafeMath { + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + assert(b <= a); + return a - b; + } + + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + assert(c >= a); + return c; + } +} + +contract DEX { + event Bought(uint256 amount); + event Sold(uint256 amount); + + IERC20 public token; + + constructor() public { + token = new ERC20Basic(); + } + + function balance() public view returns (uint256) { + return token.balanceOf(address(this)); + } + + function buy() public payable { + uint256 amountTobuy = msg.value; + uint256 dexBalance = token.balanceOf(address(this)); + //require(amountTobuy > 0, "You need to send some Ether"); + require(amountTobuy <= dexBalance, "Not enough tokens in the reserve"); + token.transfer(msg.sender, amountTobuy); + emit Bought(amountTobuy); + } + + function sell(uint256 amount) public { + require(amount > 0, "You need to sell at least some tokens"); + uint256 allowance = token.allowance(msg.sender, address(this)); + require(allowance >= amount, "Check the token allowance"); + token.transferFrom(msg.sender, address(this), amount); + payable(msg.sender).transfer(amount); + emit Sold(amount); + } +} diff --git a/step34_projects/project-04/backend/img/ServerMenu.png b/step34_projects/project-04/backend/img/ServerMenu.png new file mode 100644 index 0000000000000000000000000000000000000000..8179e744b71624c72c06cbc22c5801e06c4315cb GIT binary patch literal 148482 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
  • $2NHLJmTLOeY;Qc)3-22}BzVqJw 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

    x2i{s^2SBoh{&Mvl}Ps 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 NsOk_3`Tu^y@?SAiMOpv= literal 0 HcmV?d00001 diff --git a/step34_projects/project-04/backend/img/settings.png b/step34_projects/project-04/backend/img/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..846cfd22561b0c161563cfa3e558b110ae6c891c GIT binary patch literal 29536 zcmcG#Wl&_@vMq|cyHhwc4vo9JyF;OkJ2cw3ySq2;?(Pmvqm8>uqWz?|=8#6{FS4KH$F zee{-AKTY)-DD@i5CcUq^bGpT(;V7!ubk}+qn}oNR*3ur{J;Xe=7XFALmLzub5j9u77SVwX0ysq#mrGxWD+;_D}4q~g;kg~xv}-vuOq zg-Avz2-sfY%`JN%Yc^SR{DRTUXk!Zw9xE~hChwp-w~Jz6QDPyeaI>)i*$7}^-K>{{ z9h7G0<^YxQ^4J(x0|75yJ;DMU-to4jGRn%1>8kkTT2QcZ62N+4v>)M7Mp9@)q9z*_ zgw5&GFhPD+%B3omF(Vl=u|KnWtC^$!Xk%p&*YS&)1U!|ntVB}yF;3vnp)2!4eT_ivbMX$t;8tCiG-!={*|H{IG z7F7}Oarkp2^^n@0eSk~43laA8>>1+z*SSbT4)r{1J!}09FhaXX^#sNZ=Dlv!wq?~e zYGm}807`@b?d=T;B0!q~C3OPJSwh>hZPo1Z!HcMJnBFHgmtC(|&X zMDzjtk?m5%|EHg@bP=_>N6W8Y$BXF+L||#Xn1q4zc@AI5{|z^SDRSFzn+!aZ!FP-$9?2 zuLha%DX=xVB)qhI7wbeoEzX{wv|B^=vi|hal%j?KQH$ z|L1OELv)pGTLwiKN~XM|AGAr>P^V*lPcE~v(liO>`Zscn24(RcFl*|nhi z{R#Y!X9?V|u4|JoId!nEI*J0hrjKwn0a}Da`L_&fjnCubUx`IBx2>cb(^L+8abBOU8NNTpQ@n;(f zdkF6ua4Q?l;+B^y;hjG5Za-8NtcE%TDcSsA#swS6U0m0#cb38Xt%wAft73Bbk5SP zX2a8O&K%<7x+$qmQd2c2BXe#C7LHptJ8wbtg5BTSZoig^&%`HWV3Uy4ET84P4ilf! z!SE!1!$3#JCnof+*+u$iBAj#pKjal=@#?jGKHb{j?^-|GtNVb2@6&{qG`@I(qD(qQ zczW3t^0A30NSZ~%S$q7;6*^g@N!Yb3-!qw1lrlhe7`tW*i+WC+_d<_gczkiDps0u( z7jA2-J%@|VY}Dl!rK-B9rn*2tNI0^QYfODJBSL*~_BK!$IIvrs{402*M`G(#6%oi43;O$C zItVDgF(nxaF{Dhuyu8A^FuyBv-`_{??v)`SA<0jVMaC)pxVEFvtf%yxe@YjreSF}3 z3cM;m(e9Gb#%qX)jlhl?9@}~{4+P*)M$Xk;hljJ6w+Yh{5fTR7?`g@S7tQ~8e|ml< z>)Vd%+U4k=Z2-%Ov%#+%55qNf!ZL58JR;t~WylS@a|l zGWrglAp(H|fyZLhYK68p3pY16d!w<}lZyL?2VtQhI#bkRq?m>H=ANEX-j)5v;c-gA zd7-*>8tLRkh1+Tg4%dY1^VS@6bl=!AZ2Nl_uOzy9eyD#pGouusz+`hzU zq;;8FtV`NOjkHS<%w#iZAtSZPx1j5Z0x^Df96J13W{+epVk2j3C@aQlA6r?m68-_E z!xgS1tx7vEMQw(Lxk;$AEx@4=b(9kVSdXsCu90=R+ev^OWb`9Jil}nq!^I`ogp|RWV zI&qds;Gx7^vhgAzP4Q+jx6Rvbjkr>^=l+)pvqL`_?EC7`M8h67Hsh&Lm)Fhn?XEi2 z!X#}7)SWNyVz2w}9J@m%(ok86PhT;65$7^M-bWPD+Oh+aPaU}}{D6y#RJvpqnOF5d& zIf%+`J6xN7>O9)Zu|>yU3ysNoyxd&fT23=kPS#R>TAO69)7ZZB7BtfM4q7Imdwl}l z26nsN0*SAB&u&UW`h@2}r(hKn*rLn+USIS*-FHeFZ?Yd8IZj`B=~!bgRcvSmfL>g^ zXwOKAGL)RtF~})LGYykFv~+q63`~OHZVWgs_s_DnQ36%EjWZUF7n{!ohC*GyrOcsX zv!Z!V<1PEjVbvD1@A9?`9y&nJC-vu>o=yCx{8;wQ;WNJD@bIy+ICtCSZyY}J&|Trn z5-lizo!EyKs!7c{30ihwNF;ly%9tz>AusPQ6^MYmrq5J+kmpWS*`8Z}ZvH_twl@^9 za7XFrvu^&q{99d1qk$FTcTF!fH75$6kn=GZJ-CVN!Gbxx*uL`=Dl$qgx1YFBRbE-M zn3!0sX#v!FDx)C|0Z!=mmTJlBTt!4ns4L%`q@=W@w79)zliSC$vkM+qW1-%eh_SJ< z6r0~m%S*!E&*U^+s8ridaQQxkDoL5CC>+AmzMVp$rtz}ogj^2ja8PI{Lm~JrdayKc zq!L~ctiw2?BO~!vh03+djToF8Bcme^SL=J8CInK6potyQfu)Njo zSCf^LY2z7te_5h%fEPN!@DJuqGE%YSy{a6dP~-w%y4SdRHenm#n#Ph zYBX`ks7juUE(^K9kr<=8#a}D=`}%HHV!nS)ZZT;CW(^zNyZwI%C3Dd8Ew}ScS=f;ufwIad8Yc(DfWY!!$g8)aHFWS z`Mo=`HL||YYt~kC`%a`GihaC&Dq@v5-e`Uwq%;zdiA~;d(8#h${oddQ;F{-XaS6D{ zCblBSpa?7yYd53gWZ?diJoy`Jp}lr1Im~%-43B!s=i+DA-xV|`<36$0{j_2_l~Lms z=m@B>QG30F=;0I|l}Eb?(OZj_70J<&MN`opH#xuH?5zUac!Wc0?z}PXhbpd^bOz2~ zk8rxx!g-)vbUgV%kg#?oOOOQC?fNv-JS*$dx}AqsBh)$%Upy|_N`Li$+Q2lkVaLXn z&<`UgIyfj7=R35Ce70Rt@%<19D%#Pvg@elYER#)OeP0xAN-~*QlfzIDI2s`?D*W=2 zIzAE%RHoC-O}L1YRk?hN^F1#TVb3WNtHwX;dqQcul3O!}cBj_`uZc0B@}w`yb98i+ zK@$;1hz%#3P_dF2lmDey!+B3w3)Y(dcsW4cm{u@wVeawam70!QM|v3=Hh#eSof zF-;R8=XMBo7U4Rc z&=w~p8`bV{ZWg9BJDAfTg0>_;NAH&fiw&XJZHp}`5;)d82fr}$oo3c$lxF!|wVsa@ zSLacS%&r~mcl(+N?}MKLT8{Bhq)WccWCOe zme+kw4?gA!&)HXbr;UB-PHbd6STD46I$kdlyOQ^ zivPrAz#*!*>~wI!S?I!ad;fgB!j!Up!LbaM3W3p)lC&$@3mG@jTwe*e6W|Tv;1dau z*f$-ue$_IQ8mAl(76CiWwpK5|mq}>&5V=Fm6KcQECY)*gDzITj{Ju(Gn)k=RzpTQ; zKxAs6N_sl}nT9#{<;iwAF*;m1qs_>&;_TK(;gL<4feIeMxu^d?Ue=o6gEv=QBseDV zcPcfdQ2099#^7Xw2B0?|j%oEBUnprjIU@y{2 zxM3{y-PIgqtmuYn)tdG66T;MpbaZ;>S6BY$V+EL_u_(wW>mtr zT|GZh1nZmbnU4L22oX(@O^HtrE^2LU2E>a06`I?M3n)+zwX`r_my`l6fo_-QCuL<; zRigQe9w#0YKO;PDc>8psW5{LeHvNwN#D~5P1>W}c39Gv#)ZyL~)-{*3*ZkBiT^gaG zBu7~7z8jo~WG{nv+Q|>%{ZoVL@$0vyl+>v3uh>N;1v$&*s}KkiB_-TIAt|o@wtQWG zBL{ig?8H~{Ek_S6OB1IEaSZkEm*)lVuV~Cb2hjpFfp8drsp6qw^j}N_XoBWU12$#` zhR~0{t{xXJ$BzGaN6 z1i_e+tdobFot|Fn?T6J!DO}>rl_#MwtJ;sD4ZMvp+0h~e8h`DnFYw#SHBgp7Vyf4U z{!M`7B`w%nM@t*t$s5XFUEPdbC}|x~L=hn1m_TO1=v zEuTaRg_zszmit$VT6(g2km2Wz6zNyaU&F&xfPTDR-wLoF8neNviBm8lC~Naq%)aJw zJK6edXoxlGazN1|COo=&h{`=L$lYwJf&M5o2I{h}P-AXkpf-Rv;X`EKyGx54pQ z2()7~occ)U3XkhZ(EurL9je=5rftR~w@U{R3iM22bNe$W&r!E3gnvMz8QVbaMdTCY z#ftVyMGY!D#zR7ebG*9DVfnabmi`2M&OC6QBizkAP>M52Et`I7^@+3v?ZjCS`gkfp zOS0AG)6(%!aSHkkSr3B+E6^J>FmMP^2(t2!(cwqQLyT!nraHG;7s%MI|DCe6jS@x+ z3retzbAy8tg^ERkOGbV`XyK*f(V)aQxp>S#jN&02IQ-*ujy4(-8?#ig#JLWK)sSBY z#VG!(Y^jXQJvo`l5GO4@+!~JNt2MSfR4*cpab+5VQA809CAHM>5E3e?9wSb2XDj&h zBr}8JL^b{tH29LP+BviW7HoeyqUTv5R2m z*zvJQH4dXCCk-P7rd=q^sjKcIb1LgV@(%QH3Eo&dl4Omq9xC6y4W9|uu$(e-jFPk{ z1rKrnKbdegItI+x7kWOWq6Y^2?6tD#(D|_HbTgJXXQHOMHdjYw8&(%|K6g0e;J2hi zRb!fhahxdp)14aWnThQ=e2?nG*zWirI3{JBT%3KycM|UTe#bvoo}gA}QH{i|!2^`> z2nY^YAPlb^KN-nH*Eap1bI=)_ebYxNxS>#nm_5mv>5!PJoBg%Xw)2wu3|i7;gX?9P z4uwA~T4I6Lr}&~HA@XdDy3|P5TF4nXnOe&wVv)31P-a7+wB|s{NXx7xyg~s2Q@OlN zhxx*$bhJynB$Z^0!^s?8m^C^K7+0HUA^-cSPw&I0Tzub7)SG}uSZh{I){51AKfS?v z1WcoSc%r~R!5LWMtxr)V{G5mVfn(SR`z(@0A{>2xtcH!I26+nj8RR44(Rsi+HLEq9 zwl>0;rPhqMTvcrKeLTgXs;c+C%Yi8f|A>-+N?YIZEwwo8ai30C?-E8QXz{x68WKpC z+CK1sUSqA7@-vG&_ez^$r95`r!-W z&pJV^2ILu9sGbo`#YITI*l|5;6*BuHpQ81vpXm!c&%09c&cR> z38!AHP0t%Umaf_H=XFVKfch7SxpSvLk0W}8=(L_(D>%Tj8&DO%*hR752nZkBL_*IT~ zhXvRY2E6x^QtV_-c999&M{kqV)L8e-MHN~i_|#IWMGJnc;uHMZA;t0b?lifj1j2J2 zp2sOzpRYm-8~<7wU&VQKZ@dI00mRo--w_k&jdhjM^0<8*w^r3?GQeSrTINqDT%=Gg z2Y+q+>O*jft-E1?Ag7@^Ik^C<{fwMf=CwCe~VO{#2J<4yi#I=ILn#1o7 zwMPso^o94~*SP6Q*1WN_%)ylw#er~+X&9=oDSC8+sK?wk=n_TLe@WXBj80(!4Y+aD zE4jT9crdcVA29>?21U-SD_A0*3*|(%!C6hfZYMFpvcmdMDX_>xta+TP5mg0HT4M!) zAqvQDv_tB?xxJegKJNHBt5)oa;*}ajPEk89%RhGmSx|t zsvdScj?q{mey8*6>p3(v46AV6YEeJL`F^#b5h_>rCIw3TxNTu+&d@LzvB4)ozUx~y z9k|Ru9L=0synC!M9^;805hqjPy50H40cgB|jJ!c*(SN3XxYsArf&X`!6!ZYt!N<$I zKBGX1*V(yx8IU8{Ld8M+jXk8GktT(L7$@o4CRxTxkd>t08?l>;HT{QZe(`?fX%GBe9a=i#X-D z4m7fzM+CJwCeUsgs-k9b6`&HuayH3PQQqcD;RDi74#nEq(S6SWzfcTn>v~ zyTIP`uqX-c0TPDbBJ&8+s+HIE&CUCH*eSgJ0gJWX*X6Z^DuV4x+ddNtII;NP4fue8 zrzi4mKhKei;o@D1My*Js&rlGP=Ui} zJR98uz}^$>VNOh%xGk~ zTAw)aw)r!w*)n^coJE9!9nuhRXhS_jPlDQ|fjfP&K9ut1L)4t>;r$;UdakbW`O?KI zm9Dxm(v-2`y9;ha(4)>o#EDz=?*_%l3^^{Py|t(~09x9oOa(n>=ew#0n^ThNeslJ3 zN+O(d>~XbPtnwD@rQ?2>5;{aZ(G#Fr9#24i*}xyuJv>&}3LAh1co>dHLP3zsWHp}c z0N?#X=+Kk0q~zx1wP>(I17sS*L7`fx!DHb~zhV0xq2iNJ&7KIjR1Gw>T9LFh-P`l~ z_*jY19+E(W6K?l<2va~IUeQzY{g~i}^N2@Hzj$P&h6d*%BDXNE?A{WQSXfwIWCu33 z8wCuvuoSGIvgr_Ic0a)ac4X`lJO(JpcdFBUFVD`95mI@xaL@H?m-%wb9wDkm#lL(> zmClzSc-@<35gA)#aqP;LR(5pMm9$V36KK>T3CLn0_`6vv#h%YDtxlN;h^Ao5>oisb zUyFX1cZHnBAG~HcLc3TO#jYo_Fcu<4nSrL18w=Ndg@t(u5eseb^iFP9LpN+2{#yT?pno0E;{tJs%H-d{krU$Bm=P_B+K*S0M{o& zIcaMoW)%+_F2cV3T``rUcD?TAAIpXc1T$hgEf6tqP||W*-EAnDGzIQyZ(O0{@wVYz zZWd{twaM&)r5aJ01JQue5wR=mGW?MUc!C*afk9uPTGf3aC8$9L2PJ5E3BEGkOQee%VaP> zk_a1F$C6$ol7nKS(+CS{wZpo}X;m>X8C1D?d5+>r+!|EY0*$A-k4ap34Ketc`|A2? zZx9VLC=qUE9+EB`h^!4Wv7Z-bQw3fx?zi66Rf&w=8+(h90 z)qQ+ugIyFn%~_t-jL;A!2Khb=U~0_cgL&{sN~>e%B}8TD=z*?#&wsN4&G+C@5x*J(6t^WP>N~>Z1&#=JN$5cmcavJ zjf~Rt*;l~AAbCNmGHaiPk3~6L6!}?7g^_=qdOqdOK3-isSl{w4El==fgiUQNYr{H7 z59t0u805Q*ib_EebF;(L|Bu<%@@rPQ{R({=7#!NXc@jUqJpGzAHBMK)c}2(bgT|OF zP_wAK$%cA2eXfoL54KvfXz@fDTxRSb1{kB;ZTi{?8lBkBfa6Bj8;r+Sm`2%r>EK>C z*wsS5bHV5_zcUM7fZZl&6-s}&*c{#;?@l%SjFdDp!wMw}K507&dhmIhN73x9ZVthQ zh(i!U&ug>ozwq$$x?j6LcfZ*HC-}3zI9(&oBIpFWlk?E>dl2@ax%n#%B~_7~6&V5~ z6V$3iNmPa(IrDHi*(#`ql$f92C#={C&K7e}`5QPm@}kSU1sMLAj3XU}qMyN40COLM z_!}&KS@cgPc>ZzOVs zJ64qSAQia1UyAomu(eUs8CGbegA9m&&=Q|~r z4%o7hSp!jLJBySZefQhg*yKFXI_80h7_Z510n4bI{`V1LaXqe)?+8SPO21xRO>x8e z0-i$T5@dqu<~I&L3$YH)w${^$X9aSy@oB=a@$e5q^ZGupsM>tZCyMeIJG~XYtYd$v zqX&PMDG+*b9dEU#iw}otnP>IymDm;jNTgw>l1Bgg6TJ!;g6ULNvCPYs$)fY&e$|{| zHG&+4`JnFldE4B0O6F3hosKWmJZZcckn(p|D#5sp`JP8(}!4?CsZQFU-A?S{ecf+h|WBj)zF1u_g2_ z@-E}@$zs3_cbx;OZs2tY71+eJ<4}~(e3OOT$kvImn6#evO47Z5&euTr3i!GprfgX`|yc# zHj(VWd2MU;A4kSQv*43h8i28#b;Zo8q}{oSfcX9gc-jVe)|VAB#5uk-y?QGaBtAnl z3ICW~=?8D1BQJKTl1|lzOO|c5M`$}uqyX2H6q02T3*b4z8 zC&?nsdO43OG~+xFLF4`1cfxVjh*x48Wv}nhDf8pQ@4VtnobNAm8SIdTOAi|x+e8|T zE-@4|w216;$nY7LeQaz*h@4xn-JBR+Mn~qCOP;_8Obgne#u=84W-pO`!O7&Dq$_*a zHX~AGZ^J&xqJial(*}xTa_WFF5!n`gJ~n1n^)Kk0 z_b3$2Vj)XS5%RZ&{iX-T~=SmZJX;UT`XAfV^CbSQGB%hL=q;kY(Mi| z%*>kPc&M=&kPZIV^YzmM>+z^Df=Er%nVo^krH#6b`at7P-gZ^|SXwlyG2s=&V=^)_ zwpTYqaUp3!(ZK<2ZB(uK)y>U?jbIXwjligwC^;FKAmoA2y6?0ZPF>+1tG6k2PrB73 zJmBuRXuB)5{kNJH4)p`k&s-81_ZA@b>8UK>9mUNq7} ztRyFQmkb0RQx2d%S-6tonC|V)XQ6SFay^ie2v-qdVot`bZf`4lXTm~@N#*m6jPm<< zpa2Mh*g#aGA{W*#;Jv`Z>rJ)#dZ&qSI3)StbDsplIi?&*OdOol`1mp0cBk(}3szr| zR*gDE{Y^INJiMugC3a|bG1C}}dRh*rPMq;tk(cdvqkfL5n@^%5w?ll^!8IcxVUfLr zm972(ORhVb({`O{gFqP|UXeYb*`*dGPvFLIKssW*G^a;Rz(-Pabi4+2>0jNihJJ1S z-hG3k8leXEC#zp3HA*8n9^-ZLKr8p2>^p;br^=e2i|VPX|GmDBAM8q>{u$fyd;izh zQFCr);g7uyH$GI$Fk4sD|iPpkO+;yk~Pg?}ZoVI|R=an6L}>^($f8b*k8&Muy?JnB`*Q zqY~`9n`-L|Z0f!W@Pn!_5EL^#nHaxKcKQS&7@SZqjU98ZCE?MncTnDhQbpWu3oqrL zJPRNjd=b-;}aBIqh$!I3dAuY~zV;*rKLz~8rp`hDB*m4*sL zzLR4EMTB~gMZzaevAxbaXlJ*TFo=+0<4;jsk=Q&Qu(Jq4RDxrdSJ&*OF+)FtI#-_l z>;5ZRXrMG(c|h=(=-VgWUmND$?I%g{TQ2qE$G=Vsi3`JUp` zC-&d$SbD51KhqDi+ZLS|fAS~ruxjaR|er|VBXBEhLm5wPv$+eyX>I|It8Fv`sAtbAU? z5Taa;k#_J%*qXo2)?RS)y&DIpQal~^Lm7+m#78R{M=C4;@3yoSlUco}O(3Q+9kxjawZp z$_}rta3?>-`(c-kW_N_0;Nh>sb#q#3TX9pcBb93`UGB^p(8_d%R~OI0MIV2UaKHQg z=+6)94IrH!n~)q85!fD_$rg;Lil$4vV$5D;zWPoos~rUx`EcVSYFXL~)+plC6IHzx z?@!l_tSRLn`g-dKV$3s9xV%E_h~dunQCyT8%4OQAK1xWc8pym|`=KArli zcMx*HHEw;}5(eUhqp*j^00dmg3DL{qlM^#jlAg6Ax268e~-)TWfnOv)%R!L#@2M`c# zUsW5D%udk`*OHN*T^~ zkRJ*HFD)+%V$p^0&%>m9 z{dF^PKz#_dFs1)X(HnrN?3N9=0lN$CDq<=|ya?U|&SD0)07Y((mcBoI5#RkrBmQw+Tn5AM9BnE<>|_Su`Mv>rLnR{O z#-YKTaGcJ44o)t%7Ichd9hWK{7}$PDMLA4G38Zg=9qlfj-q|?~@N-QnV#RA=S+-)i zwJtLPIwM#Qpf}n*bMlxpCZ#0hWoIK0m(^B}kN}v{h^^ZkZoFrF&ZXi+_Ewia_b@Sc zw$}C92SwP98G=k!Op|9RgQ|(V!=qyZpp?U#ul08lRN|4GFQ%&WDUY(p5s<2Cs{=5l zq&n#_lEDXnpozv$j%FtCShjxc$Hm#;zTN8qgUS#~OwY$ggDZv!if|5iUrv8o6U3}Q zk~%({yn^){+Zr${G}lQO^J((Za!4bh61#1wZ8%zuJ0smPe4m-uoa&UP_1RNqe}tD6 z>h07l&9%jI>?s^E*nDW*#xhKK%O zzOu2tBAp3GR)K;=fOvax{Ym5TOTG21s->P?0TfWTX+y+`@Qj;QHihOt4oznGTJF#8 zsr9UzUo{v;Ge{=6buhK$l5 z%S{2wrWpLsPA(~8$TUbu2m*(;r>G~kx*kD65UkSig+wZ*kzmD^ zLOVoF*w^Tm>+6c26D2&Gl+<>yEd|A~PAU@MukdvU9HeC+r?D#^Y4`1h4o*(n5nh$Q z3Vsll9vKqv_qXHXG?t&iX}JT!(z8?6_Eiqnw)>!ZeqK^J9_m#E840in>Ta=|l(}-* zhr^JmRsjnK+d&-h$9tz)r3UnV21>{fJk8_I2rLrp!+cwvj~4sEX6_WoSNFZ*$VfR> zTh%F``|9_gA|R>m;~i zP+lWkJ#H*v>+HPs5N*f~>y=h8n@FR|t~}p2-^J_1rs|H!=2N7t1gIUr2-%h-elKsX z4II{6)(AXwi?G)DhtC)6#FG&ONl1fb)s1YQr$=-aPe1fH+DFeD8{dsV^6|Ba89Upa zq1y(=N^t~>ar-8FuI&W3R_hbQHDPuSqJ*ghH5IVirXZq>b3gpRNbO>M;X%e14UEpI z!#ugT91yIZC?el+&;!v`Bg#;_&s8dMsU2azT++a{kKs7~@DiT2X}{X7Kr1E-2^t@` z?$`B$Bn>}G+$S3q>oUC7>$RW~@($oOzs@7k4v;@=hO9B7>#{+9jNixoY@5A-_GgBQ zf}ZvB7I1D~M(y}Wef(pyc&VLoTU{FKUXBa=?T6o&XW+j$t#L$;etILJSZ4&ia>x2f z%;LF)OvrWhr@Ik^XsqfQitK>$o<7Zh&Z}pBqPka0&RfK&yIVx}uFo1~FPD@ZgDxs_ zIkfO>Zg;c7EBBWHQJkyn0dJ$DLtHE@98w`K5b*&lfWycd_U53y(URb_J?}{juE%-0 z2iOAhTL zv-u;yYz0~7o&B%5!HJM40Xb@K+Cxl^>Cxlt- zo7qqYh>}X`cb$9pxBqoLli=BC?H&b0h2AbH_3G#ZHQtASGC)-rO*!Cmf!QL_iK`(*&&2H>-%Lz}9bOW^$~+J4=0WzYmpKFV7dC30==Jj<~3Sj~qH zXy4bhA1t&k-zJLQVTe_(HKRL6Fk`x_{;84h_4DQ3Cmb1*k1FZu6ORnMk9 zDZRI+U*gRxGcztCWY6<{f=cOCT>TNvGxV0@cR#kitt)0Doo_9%f^UCWd%~|X7`be* z;h@&HwmAJx7MmOgFIz)(GZT7G&|^FN?HYP}m!EZTK`eMe`;K9YM&GA?Z=d-XHVmZpdQ$WhH)@E4vb5dBR^1k%?b0nTugqWPv7oQ&{<|yeEPF~6zlzR zOSzNt6g;G1^PA(>Qtrcxo|#%nldX)T=EF|VtAHP^?G8)1r`$xUt6NKF*C8w2e~p0{ zH!nRaZ&q-0H>aZG$L*4rLr&b@aw9na|H_?6+d6A6Ao4rwz_zFL5%axR_5my7FMc` zPTry-Q#Q87FxQTgUV_~C_%@#dkYw!>G$GH0A;=LPJHoyKM)|p!0@5vu;?)G8#27t7 zB8b;(D+N&VwfcfYP`+9CI<+?-(!x!p;`XHhDrUV^{^!t0p*E$%1?0lkwDU(>N;+X_A~kAt4%>Ek4*~%&kc}> zE`pL)fSsO)XUU@R+3(L+4o2Ul)8_g5dW9I|Fx1P@nkVcb=>HJeN$+@hcYvgW zQNyEo4&-paOosip>GelBeeG22@5`CLhTy*S&ba1Rw04=~ms^G#dC+}hC5vJw|9vPS z^@S2N&7iLT;xe^m1jxGI0?FG&P3F$@^z=IT_`VWw^j@kC3?$csP}Om|e$|tFMUS3_ zK*0nqka>qd-rxHKcv(LHRuwTXqms){aH85fE7c@=>4ni6r$j&e#<6a>MqUP1VkGKU zZxE)=rYSDoUjoP)=WPdp@!DwU_)EPjiD84Q0XJpLcT!)scQvW{_DVZ$QW;Xkx=ATt5MnZp?Mk|hhsr${d*jjOhe ztH+iwa6pTKH@k@;x}Yf40k*w;cy!egc_K=T{5h-o@~~-Q$d{Lz{zx2!v`iARw!;5Z zWjgEp9UBWDw<03?RjvWqEg-P?Ij|BK@;^0n7+6?DKh;CWu>1Q}6SNu798EAp(AdX{ z;shsV8Tpym|F_QcNnCsEaqI2*6ST(um-aNg9r@3{j{^mF-apngGPb!DGcNysl&bz; zYGR*KuyJo2gE84MTs^gCnbFkDL}cRB%`+Js!4p69Ih3^wNhrC1H6pw`M%-=>L_$Xq zm2CY^*=+xNK!N{X2y6c@pZ0$!c(3W{nf5K=Y0TJ8uIqA*06)h96G_S^zUpj4P`Twm@GDXHi!CX(~eWgA-o{0<)@|_!CRtjl%XF?IR_fE{a8$uLn zGxy7>W%hMFJ?G&Rd;FKE7-%63;W(Li%#(7R&uWE1Fv9#gMZ}Lwn&EN8S0Y&WZym8k z=(Gg-+Xm4d8v&=~>@e=(-t)@}*uO^xv`BCCsAMWKxx1Ok3VQbJ5#;=Tku*DO*Qzz_wz$x9=yHFL(Myp%czSBnto;5w zjN8!Q!fDroa&O1Ep0QXOOTy#)8Dx|oO;z3!>Kts1B zoi9Bn_Tj)kDcn;U3cH+1l6O52pVsBEozf^QMQ9y`kXY z+1XjHU*hXWw47S+?NaS14JH459L?qP`B70}k&(|wdlF5oX?2|b=5m;Q@7~NkVGTSI zlG#ETzXuZt**`<|MXUrgU0&7<6&Ex6-1M|Pc~&k(-g&)FbFG95y^I&ZM?|CtB*&5p zba+43)cWp`;r5H_a}#$P&OWg4@^<)N8Ny-0f|8LHkQ$&s)J-GBH!Y7cjZ9$7?u@Zj zwnR01+k1U8z){)r$iTy4qv`u&O^!p?M`myDr>{{@Z*db6d(~oCSeP({^@JQV36D>Bx!Uk*bvW7%_n%4315%TqcQLi52Wl*!A zcD|QmX$eKh?d&4Y84m|+9RmmF@chv!|2$j&@Wi5ci&@Nm$QJVK=H5XNisCznPV^_Q z-Ewxca|mO6BBjz;A}L9&=1-FjB@X**k!HC8Ln4KKK+WO7k%Rx0f$dop%jbQFcMfDO zu8}9oPIlv~%MhekP!MzPU-GZl2%|iU%j4Z~Roh30B!qrm$$57%?LJJKy+S;H^I&g0 z1aoWCIA8z1k7qfwb1*W#52Ch^@_9j_{0O1D>^tjyn3x3NTZT|k7D@0TE(Qj6Do!$r z_Dq%6M?xPTwf-M!c6P)#pzLWIs*N$hCPyGhqpYt*RDXCPK(q4wkzL8=*J;DB+_vYF zD&N`f+OSVyeLv$*!KUlA=`0#+Yn@eKdckcH&Cld60}_1v40^5V%ZrQeAFKYaudpoN zic3nv0LIDVEJ4G~XTPOJhx+bYnp^VOIO`oI0`7cY%4x`28-}A24DyF0>X5jXSqh`Ty};u^mci`p{yUD(w{+&(;Re%VCU z+(MI+-b5_Fw->bn0~a?AqX~x~mhvH#&|!d_kmLBpW7E%O@}7(QTRxAIY z#v=d@?uTV_n8*5|=&k!I0HEC*%0+?183;g*MoIgSkPJhR8K-lWC{w4FI7Xv{A5hLg zFDSq@^uNazU*NLu#?Ks2n_(lVW^#p0Se($P)USe)r(H)-!R7pZcfY(sE2bPP8g}2; z=Gd}X*e4t;DP(4WW#jhXiz&+)|8_&Jaby%6X^_4@2SIavxpn+ASdTwVep5u$8qPzsBR z(in{bz;7S)9D=39m3xg+0P}3e$OQ!j*SY^sXKxwRR@AlawxzfRcc+EoTHFh?P+W@y zcP&udo#0-IOR?ha4n>N)B)Gdn5;%Fk^N!~^f6kvTKeNZk$R2y{HRnCoy6#Dzi1ver zo_@xd4+R;y+ORvny8C=S9f*$>`f;sgeiDLvyWUS!q&3^TIRJ(~cCI`a)gS0FOwr;Uk-v5JqJD5i;MGgwZ2=oW)nZ|Aa{F-LD z68AhqX((k*Q)%h(;D8y}W)0Y*V?ChWqiYkQZ;pw)to_5Lto3T5xxTR9nyc

    PY>*R3DwQB-X9rSzF{PB!juhdR4tqoQ29wQ}Ka&hV{$qZ2)=*0?>VZMX zVl?+dm#FAB!yO$iPU~<`YM^?pEis6wgfn&I`EgDn$LEeLIZ;GD;x4M7{}o5I;}!Wi@?k2!%+6hh)sHUyr z;3NO4>a1!Y{br6$R8%@&wdajOvAXpkqNKP#T@MMwCL>W7(fm=Xz$MG7T_p{>12;KX zCNCSBWc;WNi~yx%t%EuW405dWWe^Qy|VlwCS zPPNUElHAAn7coR(ZU(4Tv)0wUDQ=csQ~QuA0lQ>~ES=EFnYHEjJw!If`9sXQ5>AZ3 zEY-Haa|sD}x>>za*}cx6a{oO{t5CyxbdyTNEay;&mKLXE~a)B{i=q(~&w0 z3D^jO*CX97US9w!j~ z^pP$UN(1|%uCDHAWF#rsQ%DyQP@?VSiP4d3XV4?(Xh&(jmRZjo+3< zDeU53w##A{9s3IYS@Is-l9ES`OH1!CyFie>Qx8}mAt9~ZUH{C_r|a}@Df$xw?BWWh zoN<<`RF`p#`urJTbnu6Pq1MHPRL0QIz*tyAIwaWSJ*@9!d-}++^N~2zAaX)&%brO& zSJ(n#Jskk{MzUE-J9c`=J%>5@ijt(|Pc3^3>YvwJDK|GY&@u%|n_|`ZWN_RrZ>66F zyeiwMEsW4Z=VpSz;nQ|eQBerD0fmf8$J#QI_(PY}dLj!Z4)|FTz4WFbjIi7E&7AFR z`#EeFBC*lkeHS~qb}bZ?0IH0thzEnI5fb{{J49Ddnd%POz)HA}{T9}8<4EL7#? z?-UTR;@$Bhqje4x6PsJQ=uyUAO{wZ2Qbol#aY3MxyyJxC0fWK00wvssvmcRjASo4P zdmNtn<9kg4XJ!hydyR<#n$3 zj4BY=5L6)9fX!}x_|r$j#GrE&D`D@xV#zoBa}% zeHIniDJPNDWSy6_LXD>P{(9~ZaLMh)M%DQO@^ZJx5P`e7=I7;)UnW9Wlvks`&$S_3 zC2q5nCpla@cr!kpm$wo7OMq@TGA7zG`gN+{_Xn;uQjPa=&d$!pv>rahH6`my1gg4( zXm1mU!oz7kj-se-bwzA$n!pUZH_1!!SbvrnyUA$b-C~4EYxl_|$dFIm+}_fE21Q3N z;2t9mwFCOdW8V#o>hfzyC$D()agK|hX_I7LEWN;=5^3OpoiRK1OzIj!W}w+nb}`qd z8=8QZjCorZFaIPxT&rX3sQLN%JiNk5a~`2Hu{Pabh%{j8dx-4~-F`KYBBdhrp1W$6 zm&eDuO-SVji;?K>VXX;m!j}7X#qhMG%%iQ62O@$%H*Pxa%VLt80FPCXo3#_I7`e)D zFIn)y%o-zpRIxf)5_d{}O${nJw^^;O(p^N60UJIgM**j~#iD@^`$>FzpCGCzg5jPx ziy!nE&#KaEKl@#oE-K+gG$1rEA7o<=dtCQ(qE2lQvZXJT3ogd4TO z$zsU$6wrLe-ki$J6we;kxw`J&9WP@ANiq{(0|^DaA8NW^7;ABqWPGKAxe{E|E+Z(^==_pqL_!eT~>2Co)p=Tj3vbK&~LO|%_B-L#(*T& z_5Ieiu=f>YgH3oq1c9nd#V+YqL8v7EMs^Tkd{R-FG)Tr0Zf+|dwGIfxHn*~3$bJ|m zh-Wwl2Z?Pf-(rAwRf`?J>k6bx=4<8cC?BBE5%VmJ*1T!wbH`22vC)Jq zNmE{WzEYr)lD&~s(6YUwgUzO*6`4l`=2vTbYsu}}15>6YeJxTPL_R<(!AsB^Ck_~p zSJnnBAR$jIP$b#dI1cs5f-AJKTe8TH>c`1g-flIO{w zp2jb>xTz`{zQuxwEL!eGe7Un5 zNoQv#gDP4DQ8;oHhF@$QQxfpl}GJX5MeiV{0f4%3FwGGHvbFBf|GCg+I&`n&8qg1CHvZft*DqPU9^V<7R~+5MquIoyXutoD~!0`MbeX2HXSgmY>|JbT{u+S$ip zK;SnuIazIfE{PPHAd9v*gXfqnc>PXULt{IQ!f{}!qM}mh`@;ozoyJTT4FBnql%x?y zX?YHG$@(CHKA8wq?GbI8wl1x#!okGsM;kCzb_648iU$f@KUR@n0kx>N?Wee$UUYnX zH(+R2Rz^nXMYh=Bz}+dDi&t4j z2L9aXgEzePvY~@esw3OOc=L2ELauv!@5YNttSFbdfrSf_fn_#_TKkiTBKe9!B@krX zE8^5Wc$bix>Q~;;QIYK9k8i@1j0OEN+96Y^eg0tFu0ZGsNk5MVfh1gD8M^p{l!S9D zE76Ro0o=Hp->bGxW-P`&8a5X=UvY zbj3^iQ?7|*rJP${RmG#vc41{tw7uyE8^`jT+xFnl$e||$GOnR zJkdxxyv#gjxlokb_T$-HwGaKx-S<`7@8*emOeo*JS^Ntg{IW5p8aex74E4!qy;lU{ zXnbh>cY04mwIGwPYCLVy35YN;zPq_G?hg+~`C}@0G;Gjf@cn6y1#OsVoZc7JsIk5f ziH^-j{2vu3^=vK1=!WShfJ)(7Cj|N=xNG%RvDjIO!yh9IW-G$sA8!0ILTP5&1}5F=(B4r^~T|`?L4H3zif?W!#1>7>6|qYzAc1 z)aB)Wc8q{3lNSYCBP=W&XSmOJnUv(@C|`%Few?oiQZHtmyTr*0qp-ceN;w7CE`r$A zs6HGA#Mvfb<#njo4VvnAe=2N7et=pGD?Yg~9GRS@eQsU}{<)(d9tA&niacKj#It7 ziUlUJW1?fUytI{~Hp_;6L6)}-2MZT;S?DcwF3M$>(t!OO69`5rw{_POwjDkKr^xKz z9|`7)Xm~>5fnivF)1Ja?%!i5PO3BC^k~6s#C`Y4XAv<#8{J*P{#r;FNe$U>FEedx9 zSou1ds(OVOiSgBSNpj%a1l+gmNzNxs^F+I$wSKkh-febrr_XJz;=B3RUoJD>{{k&* zk=kZ%f^V*)3thqr9mIJkAhXSJF%q2>9`^Qt?_42XSWyOPom$=Ao!34dL%DX`9Ujv4 z?l!t6U%2e*MVU7czqsB+Z*M4mp8>W*)snYsO_u&3VoLF{SS6n9e$rhXPyF^ltht2d z5aRc%fEof0p}algUsIGR1+JUGCLCN`?nVDm`Mcd2igErMIP5>+=A z7pxqqoc(_4;geoWIw@V9k(#x2(@6fWLF7OT!8@V>RwSTAY56G^hjO|j3+5+;l}sG} zZKf*$qgRyFUv>M!?ZodUrlF<9lRWn1r}J@)pQ3B%x z`s%hA6=wQm-Wsl9%bc~U7MU1+Q1pz%+qGwn&yXMTZqQClfc79?HFG*dKY^((lX_ay zD`VQbDzb>#pBLC`ft}pspHCK>hw88v$X)_}iemn!tGpGBUyKKCXZhkp4c|S^?)K~~ zl<)7{{5`$8^2Gkr1>aouU#I1cJ$_<wL%0*MK z5J+VfNM{C%RXy%${1Z{Okslr^PI~24lb1iXR!G)br8!-)O-}QUAk_08q~ijNj_vam zhu3%d{jeBC%HN7dWSun~DW8VXSrLiP0b;`klUZ?XW9M-v4@ax)hH@CnJ>N z&iNW~33VNOKVwCh2R!9aw=%TV|0xPkpq$z$V(_np!;?H_tq(OXZDKNn2i>)iJ|n)rFYcay<>o>H41f8J zjq-iY%ab>I=w2K>7Ph)tWpVvE=JV9b#&C7qO!z4R#q6T9qvY;iNNmF9ViU2WQ5NaO zc|bwaeRFkgU-_ShsTYs?t&AGuY%pv9nu^NW+B|u#o9sWyzns+b3hi;RI_=&jRxMu& z@^WLUDWE663>MYCzQmigLHBUf*t{xACuRsZXxeJf9lUP0HChF}tc#2Zq%mF`6SI@^ zeCvK0-*imf>~1Em;*2Ihc@W8bpZwPGgQ9^B>3e(>*abv>PG&8>s6P4j{(9BD4Swk{ z$@FQ&-w#rrkOvBJxc?bvC0_n?nyxb(cFlRL(^y91|9$j)OXb!)mCp3X6i4cFK(2V` z!aKQ9|LbBc6CQ5ziwYfO(@HjGy!WefVh>Q%#T_P=7q}X~K*xQXLApSEJm(D7ub0~F zV?iu+1xp91EJ3aw>skkqnH$(}V;MJ{pxvCg&o+(|>eb_JC+nA41|S3yNL44zx3QZ0 zf#owOF#N_AJ787Yr97Vo`){NcZ1a>?Et-}uaQ^K<9Hc`VhpxRjRO=#pY$~lmx7F22 zn(h5D^m+d-Npf?r!W(a8=7d=x9%$5n_9kGf(^b`zgx~W7`+0v_9KfLxK)-|UHrf?E zar@~~@G{(SJ!(aKALq?MVKWZD{|}k8dfh(^g(|0l0jr~Y5i52P|2WUeR{hs*$9{5Q zzTEF>4cmI-YPr80

    wBmaXc6n}j8Z3wg9z;D?~$47pYcvEL2$?|bt1VOQqFLxtdb*0m5&ky9~g$5#x9#;N+;x<`}AfSA+|4o31L;rvJ?GabS>|Tk{d5Ep)WOu&+ zUnrJlT&tykZANCRPZdRa@mf6{rnrTRQ*k$~$Gs;d@Hh_%m&My)WRy4HFcv5cM>P*ssrdYznd#Da;7 z@#vRjnufsHzZlND5C0WT`me=@x*pfna5Uc5HVZoe%Vfi^_e|zRhWQl0)GZuGW${l( z?MlrYxb0?Ip3Or?aQMg7g9rHHC%Vx7jtS#mA?Mwv6_mdBEx!X2Ud*i(RC_`Y*R0Gy z8_u^=BJcUcY@fTVLq+lSK|5*e-d1hr-G=%}f!vl{@jYXGT@ubR;=b>@kq7T71Fg6=;}1qxE6PBxc^^}QnH87C=Xmgp46 zd{;&2|9NwjIb?2ajp7Mvvl znqLeSLG5gS)K-VtlHHmbmjKmC>NpcCEP|yl=YGq=Wz$bY=DDG3il1 zmS!pi>^T(MZ1gasvlj0c>#1@a$R%|{JegJTXbB&1$^PtTYGshOx!GT{BKhin!}8!p z>8)~=+r%_8+rE&CT^A11yh)|N!~^k;(1usptF6inbA6|K+toyY4w%_to`_5-l9$Bh z>bL0lNWw7@d9?V`R+vw9`{hxSMR?E%PLHFf)mR>DIbq-096Fz+6+C!gE5Vn_|GU_u zCST)zRJt#`q^e!_)5Bos;v zxM1Cy-?WZPg25e%)RYhNzc8oe?Fkf0X~Qr*xW--aTXPdHBD=e3iZ<6V=umWZJV$VA z>%ha1p|jqFE|bs=UGuxp7L33?+I^ky$b6khO6{E?Q8)csPAS^4Jg&U*)p>=7&5X0v z@7(#p`mMhOO$LSxv$-=JocX3G4^(m&bkhJ~83TnZAvx{s>?rm2HK!Nikd8*(ie}HX ztZK1g)zMIPzqHfc6|=^EtBc(US^gb$^kwr+wzg z@wdx;^!){x?Fp0JB9LOd!Nq?(7y1}kgq%FVHF}0B7x7)2Nu2`=9e;qO)k}K|IlqVV zy_EX0CG4QV@#Rq}l1WUCk~zb5dH7d^d)y8-7MZ+94i%r?Bd#e$r5SV*S19Qt7nil) z?yGwdIo_~l7$1$=OZUK=_0`cRCpr+T_EzVmEq%RTNNsVf zKr-VNVfg)yl-F9o>i&Mgq%JN-ZnYYECOZE-OA?Pu#u=A96QdAnssJ-u*NHdAQ3EV= zdDQ@XR(}-f0oa1YY08dp@G*^vgf$U0@(rERi)VKd zp)NgWNg}p|zYV6;m5%byk6@MPWoe~|!>T34j&|=MkhOZEv;(x4#m0BK z*pA_Xy&MAkis%v9BX3rpufGb|&q#SvanSLYcyC;@v01bwdHvVA`3vX8y}V{6IZp** zB`-9q5s$<-?n_X%z9o(%lw=%;Tw<&U^LAFfOg;_0B9vm^Z}#gBbM{g1`O4s)3QPIbi`+KJ- zypfL;gYNe5_iNc13$it)0DBy-g5ha=Ht}c2!H+ph&HGsQ$H842*61)MAm6Xhh{&+u zz+Iu~gBB}laA-;(us5tvZR#}IGIcvh>;NBMEgKwjk)Ha>ihlz{%!r30?C48bWsQaL zir;vblq7Oq7^OuM8=(KS9R(wV5P)w+L`oe?t-q^w($gN+`^BSuSerYu4fQ_vn4F@0 zXE9Kg1VvE5e287#03$c7fnW&xnU%KZC4V)#`DH6jUc4ELjM}z}JyND_(^uFi#a25A znOO;4{)7H(mDcD$#=g!23Pr0N2phkj-iLJFg~Io*aafrWNNtCaWxAwvXw)$9l3U;5 z7_keOv|f4aC{fA-JaWM1@(9BcBGp zF+P!vFuDqlmtP9EhiNz4Q2QTkZ~}#F8eI}uQQnCvH?Lf*Rgsr|-4CR`9>p7xX(l%7 z0Ylpjam8wB%+gjt6lacOWG6xjY@y^7|8i1&9fOOCxP%@SfePN2o8vTVWHbcCky+T+ z3g2|Yj=#v{KFbNuhzi7Oodn4w5ODSun0-$PP*-4joeROcJdfbXfqh#^;}PE;jZPN5 zKaKg7?(*>kv1iBJE6US`5S?4r*XwqDwUN?Iq|6tqZG2eJUT}@diQYT(heNTblg-b8 zWNgBah>k1Sh_-hH+N++>z+HH9=Dmuoh^98%6)OiGHBa(6v$Fp@4Z|HTMcouYM7hbd zP5MI82e5hRG^{;-RQ(1eCR&SsLnlsIOJ zAxNvc=gs=BNF@}g&cZK^Q9d!m8?t!m{lhdBtr@(uTe3yqHIdM+JrIW$QkS(+??7B! z4{-dtSR?3k^Oj~kQ2bOAn?@93IR9G?2LCsFpASi~{n>^ij)5Ph^Za-(J~LP}!YQZE>)z zU^^(N(xwn-ryEv>R{EdZYB&cVvy4iJw%lD-J30FoEt7FNVnPSPC0@2L-d2dHG~O>k zx)G;~Ee-u6MLjY4rI;@`zy2B-CU`djfx%#1KNQvE{=j;?&MZFyzbIjC^;M2(0B~!^ z6n$AXkx;JxN;K(ob(A=|*^gh6g2M|!jcYG-9jY1917rOU7Pg#QcRJ13Pt=$_65{DT zw!2%b^n0YxD^s;QTd^_;GfJ@h37861MF%ax^buRrodHzO`*GK3U;Cs767w~Da6N@J zn{CXcf-0^|5gw$OKEH{#>A}Goe0ui6osX3v*b|ve+p-m|cUw53zzn6el3nn1kS4&K zL3e-AP?C&Zj&d*OpD;MUwS#J>n5llaceD!ir31RpneDk(_#x|!k2Kb9F#+V|yHT}oZdsb2oTP~WQr9@*9qw5XDk~gbJGpQsVi{h{ysUNB9Qp!pA1!kPx z`L4%V9C$6;jyIwRcasFN66UY*Q&{@WMv+Hnt?w||y%3!NT$s&0q)E%yv+f@Rg6p2J z!!RuJZPv`)yT+BiIMadHO15`^{~kxc?Kr`8;xEH74k$uRD33SQQkGHfuQ1BZ$yuBH zhfJ-h*JsEb=+qi@D{>Ozvq7XQaG~*V<#qiC^7m~H(gyr7aj`15XKA!O5<0^4;WPgT5Mb_n36GH58Sv;%?5r|{yDCH6o*4o<=@tbx8)r!{1WmvwAs$#j+#*q!~=^}xMQ*s^Hf zyL%^lgmpKf2L_zYS5p`~#@PP(s#c}t^MEeD(RmuJY=}x2)(brQYhpAlqm6=3jnExB z5}~!z(2H;RO*POkAa<2RmGZn>2#oXH2Aws_;Y>IA`4?y9w@f1Ju%H!53%z0Xkr;e* zB)oQB`0Ek1x|CA9+nPrMP;}}m68?;M$&-^Xj=M}$pfJ%Ab=Q4$|6j;bp~nPaakyRh z`1%JVpXiw}CI^o~RMF_{&GkOx;`Vj33g6dKMx{zv$et&$8lB`weZ7cvIpUldzG;4N@XV`5#Z_&iix%^$raT$me)@O|NF zz0!W-e+&jz^wXycq+khfpSZQG0e_8st_>j{sxS)E;r!L_p3VGM2BZ>J5e|Ppr2LkD zzU*xz4OFToZ)7psT6=g3vKO5i_xwgvXSE*L6y=K zIZt``K9cJDFkeooae;e73isoy3%h6{NGH3cOune@iLI!jdI(JyyNN~=Y;Sk;WhGB@ zv}*1;*$#6H@ho27Pc2B?l<^-rI~o0v2zuB+lq8$0YxPA{Yz?5wlm z&D@HV%#!c0Sj_?^^`Al}+5UY&n?GQ8u5i!(rdyTT%Kbl@7QkkEMrC_OW_wD3gN`re zray87)9th=YBM}F`YL9AcZrw2j(tD8aw~K>TYYisD&=BA^LXJ=JNQ=4@2yqB5?w|&c8sjQH5}H zR`Y`r^r0LEeX&79pJ#B zH~@~*HteW1Sg(>wvuIed6>0dZ_^7Vp>-)PCa=foQt${k}A@a@T&u`RQ*W|vOhoNwJ z@$NNv7bSP~vVL#z@&D>Kl&>LO*$(7Af^9B(Jih-bD`xTxIdUDv*QaoqLMfi$A$HF` zcCSgC8p@YC&!%fH{fM%EtkQS6*zlwfynDlO=z;s^@vh_x*O`I1&RC$WmzzEskuGwl z*N*j9T>K8~!OJ-5;0%Z0foJ{n58}-n^l~gl*$fmO8l793HcF)%Iqr!bmFh$C;}_e8 z;H!@hL@vg!ek0QPX2$uqbh7-G?<(p4L%@OK75XcJtz$$w9M5;PlGOU z$GRQ#h@GJ@AmE(RUfaL!ySe!dq6=(7y*yU|J$eI!Unlh)wKu4o3&z7YoD56eu^PR; zj%Y01uFXU&>B@>#uO@wU{r>#^$etZv zI1@|Zp-Ia|J?faXC?>_)%hv7hqxNm#B+al_eyEs11S2*$Y`zx&1naW`(4*BER8eP~ z*P2`3Y@~e9pVwYxUZVq=qyA&AJ_l*O-DM2z{n^=4;#lx8GH&s%4ip#Z28ikMX^1k+ z4<#8W6Ke)R=LHe{N2~XtM8CrsSXsY-R7VGvj^0mFK_Ml$V$Y7q!8Xu(<{60&_dP`R z5oL<2pcZ)9temZM9L7e+8Sv-YWnvAk2Ws9vD5JnTezW-G~+CwhXOkaB>hr%F2%x6SfJyO%0nZnAL6WMC-<5%P_s zi+_UK*IoJS=_w(cQUk5WZtZLek%0AT-e=e0N4mn@ONV_tVBctOQx8fXzHpZV=mbZ9 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

    jdgT(g==`|1@K`-qB`rdDf3K35;Q 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 APXGV_ literal 0 HcmV?d00001 diff --git a/step34_projects/project-04/backend/migrations/1_deploy_contract.js b/step34_projects/project-04/backend/migrations/1_deploy_contract.js new file mode 100644 index 0000000..568370d --- /dev/null +++ b/step34_projects/project-04/backend/migrations/1_deploy_contract.js @@ -0,0 +1,5 @@ +var DEX = artifacts.require("./DEX"); + +module.exports = function (deployer) { + deployer.deploy(DEX); +}; diff --git a/step34_projects/project-04/backend/test/.gitkeep b/step34_projects/project-04/backend/test/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/step34_projects/project-04/backend/truffle-config.js b/step34_projects/project-04/backend/truffle-config.js new file mode 100644 index 0000000..090018d --- /dev/null +++ b/step34_projects/project-04/backend/truffle-config.js @@ -0,0 +1,49 @@ +/** + * Use this file to configure your truffle project. It's seeded with some + * common settings for different networks and features like migrations, + * compilation and testing. Uncomment the ones you need or modify + * them to suit your project as necessary. + * + * More information about configuration can be found at: + * + * trufflesuite.com/docs/advanced/configuration + * + * To deploy via Infura you'll need a wallet provider (like @truffle/hdwallet-provider) + * to sign your transactions before they're sent to a remote public node. Infura accounts + * are available for free at: infura.io/register. + * + * You'll also need a mnemonic - the twelve word phrase the wallet uses to generate + * public/private key pairs. If you're publishing your code to GitHub make sure you load this + * phrase from a file you've .gitignored so it doesn't accidentally become public. + * + */ + +// const HDWalletProvider = require('@truffle/hdwallet-provider'); +// +// const fs = require('fs'); +// const mnemonic = fs.readFileSync(".secret").toString().trim(); +module.exports = { + networks: { + development: { + host: "127.0.0.1", + port: 8545, + network_id: "*", // Match any network id + }, + }, + + compilers: { + solc: { + version: "0.8.6", // Fetch exact version from solc-bin (default: truffle's version) + // docker: true, // Use "0.5.1" you've installed locally with docker (default: false) + // settings: { // See the solidity docs for advice about optimization and evmVersion + optimizer: { + enabled: false, + runs: 200, + }, + // evmVersion: "byzantium" + // } + }, + }, + contracts_directory: "./contracts/", + contracts_build_directory: "../frontend/src/abis/", +}; diff --git a/step34_projects/project-04/backend/yarn.lock b/step34_projects/project-04/backend/yarn.lock new file mode 100644 index 0000000..fb57ccd --- /dev/null +++ b/step34_projects/project-04/backend/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/step34_projects/project-04/frontend/README.md b/step34_projects/project-04/frontend/README.md new file mode 100644 index 0000000..23f63e8 --- /dev/null +++ b/step34_projects/project-04/frontend/README.md @@ -0,0 +1,28 @@ +# Connect Your Local Blockchain with React using Web3 + + +[Tutotrial Link](https://www.dappuniversity.com/articles/ethereum-dapp-react-tutorial) + +In this step we are making a simple Todo Dapp. + +## Step 1 +Install project dependencies by running npm install + +## Step 2 +Ensure that types folder is generated. If not then run npm generate-types + +## Step 3 +Paste the Smart Contract Address in config file. +You can obtain your smart contract's address from Transaction Tab of Ganache +![transaction](img/transactionScreen.png) + +## Step 4 +Open MetaMask extension and switch network to custom RPC. Enter Network Name of your choice, Paste RPC present in Ganche in the New RPC Url field. Enter 1337 in the field ChainId and Click on Save. +![customNetwork](img/customNetwork.png) + +## Step 5 +Now click on the Account Icon in the top-right corner, and click on Import account. Paste the private key of any account present in Ganache. This will allow Metamask to send transactions to the contract deployed in Ganache. +![importAccount](img/importAccount.png) + +## Step 6 +Run npm start \ No newline at end of file diff --git a/step34_projects/project-04/frontend/img/customNetwork.png b/step34_projects/project-04/frontend/img/customNetwork.png new file mode 100644 index 0000000000000000000000000000000000000000..54588f23e8148018b31a4f9b98d4ace7ed9c1b7d GIT binary patch literal 24248 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±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 literal 0 HcmV?d00001 diff --git a/step34_projects/project-04/frontend/package.json b/step34_projects/project-04/frontend/package.json new file mode 100644 index 0000000..a22fa71 --- /dev/null +++ b/step34_projects/project-04/frontend/package.json @@ -0,0 +1,53 @@ +{ + "name": "frontend", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.4", + "@testing-library/react": "^11.1.0", + "@testing-library/user-event": "^12.1.10", + "@types/jest": "^26.0.15", + "@types/node": "^12.0.0", + "@types/react": "^17.0.0", + "@types/react-dom": "^17.0.0", + "bootstrap": "5.1.0", + "react": "^17.0.2", + "react-bootstrap": "^2.0.0-beta.5", + "react-dom": "^17.0.2", + "react-scripts": "4.0.3", + "typescript": "^4.1.2", + "web-vitals": "^1.0.1", + "web3": "^1.5.2" + }, + "scripts": { + "start": "react-scripts start", + "generate-types": "typechain --target=web3-v1 \"./src/abis/*.json\"", + "postinstall": "yarn generate-types", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@typechain/web3-v1": "^3.0.0", + "@types/bn.js": "^5.1.0", + "typechain": "^5.1.2" + } +} diff --git a/step34_projects/project-04/frontend/public/favicon.ico b/step34_projects/project-04/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/step34_projects/project-04/frontend/public/index.html b/step34_projects/project-04/frontend/public/index.html new file mode 100644 index 0000000..aa069f2 --- /dev/null +++ b/step34_projects/project-04/frontend/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
    + + + diff --git a/step34_projects/project-04/frontend/public/logo192.png b/step34_projects/project-04/frontend/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/step34_projects/project-04/frontend/public/manifest.json b/step34_projects/project-04/frontend/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/step34_projects/project-04/frontend/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/step34_projects/project-04/frontend/public/robots.txt b/step34_projects/project-04/frontend/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/step34_projects/project-04/frontend/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/step34_projects/project-04/frontend/src/App.css b/step34_projects/project-04/frontend/src/App.css new file mode 100644 index 0000000..92c2bc8 --- /dev/null +++ b/step34_projects/project-04/frontend/src/App.css @@ -0,0 +1,12 @@ +main { + margin-top: 60px; +} + +form { + width: 350px; + margin-bottom: 10px; +} + +ul { + margin-bottom: 0px; +} diff --git a/step34_projects/project-04/frontend/src/App.test.tsx b/step34_projects/project-04/frontend/src/App.test.tsx new file mode 100644 index 0000000..2a68616 --- /dev/null +++ b/step34_projects/project-04/frontend/src/App.test.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/step34_projects/project-04/frontend/src/App.tsx b/step34_projects/project-04/frontend/src/App.tsx new file mode 100644 index 0000000..c4268be --- /dev/null +++ b/step34_projects/project-04/frontend/src/App.tsx @@ -0,0 +1,124 @@ +import React, { useEffect, useState } from "react"; +import { DEX_ADDRESS } from "./config"; +import DEX_ABI from "./abis/DEX.json"; +import { DEX } from "../types/web3-v1-contracts/DEX"; +import "./App.css"; +import Web3 from "web3"; + +declare let window: any; + +function App() { + const [account, setAccount] = useState(""); + const [dexContract, setDexContract] = useState(); + const [loading, setLoading] = useState(true); + + const [receipt, setReceipt] = useState([]); + const [bal, setBal] = useState(""); + const [ether, setEther] = useState(""); + + const [dexBal, setDexBal] = useState(""); + + const buy = () => { + try { + dexContract!.methods + .buy() + .send({ from: account }) + .once("receipt", (receipt: any) => { + console.log("receipt :", receipt); + setLoading(false); + setReceipt(receipt); + }); + } catch (err: any) { + console.log(err.message); + } + }; + const sell = () => { + dexContract!.methods + .sell(1) + .send({ from: account }) + .once("receipt", (receipt: any) => { + console.log("receipt :", receipt); + setReceipt(receipt); + }); + }; + + const getBalance = async (contract?: any) => { + const smartContract = dexContract === undefined ? contract : dexContract; + /* fetch the total number of tasks stored in our ganache blockchain */ + const web3 = new Web3(); + const tokenBalance = await smartContract.methods.balance(); + console.log(tokenBalance); + setDexBal(tokenBalance); + // const getBalance = await web3.utils.fromWei( + // tokenBalance.toNumber(), + // "ether" + // ); + }; + + useEffect(() => { + const loadBlockchainData = async () => { + /* this is to ensure metamask is installed in browser */ + if (window.ethereum !== undefined) { + /* metamask would try to connect with the Dapp running in yourbrowser */ + await window.ethereum.enable(); + + /* connect to metamask's localhost:8545 network */ + const web3 = new Web3(Web3.givenProvider || "http://localhost:8545"); + + /* initialize our contract with contract address(copy this from ganache) and contract's ABI */ + const dexContract = new web3.eth.Contract( + DEX_ABI as any, + DEX_ADDRESS + ) as any as DEX; + setDexContract(dexContract); + + /* get user's wallet address from metamask wallet */ + const accounts = await web3.eth.getAccounts(); + setAccount(accounts[0]); + + const balance = await web3.eth.getBalance(accounts[0]); //Will give value in. + setBal(balance); + + const ether = await web3.utils.fromWei(balance, "ether"); + setEther(ether); + + // await getBalance(dexContract); + } else { + alert("Install metamask"); + } + }; + + loadBlockchainData(); + }, []); + + return ( +
    +
    +

    Dex Exchange

    +

    Account : {account}

    +

    Wallet Balance : {ether}

    + + + + + {loading ? ( +

    Your transaction will appear here

    + ) : ( +
    +

    Transaction

    + {receipt.transactionHash} + +

    From

    + {receipt.from} +

    To

    + {receipt.to} +
    + )} +
    +
    + ); +} + +export default App; diff --git a/step34_projects/project-04/frontend/src/abis/DEX.json b/step34_projects/project-04/frontend/src/abis/DEX.json new file mode 100644 index 0000000..343f07c --- /dev/null +++ b/step34_projects/project-04/frontend/src/abis/DEX.json @@ -0,0 +1,79 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Bought", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Sold", + "type": "event" + }, + { + "inputs": [], + "name": "balance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "buy", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sell", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/step34_projects/project-04/frontend/src/abis/ERC20Basic.json b/step34_projects/project-04/frontend/src/abis/ERC20Basic.json new file mode 100644 index 0000000..e67532e --- /dev/null +++ b/step34_projects/project-04/frontend/src/abis/ERC20Basic.json @@ -0,0 +1,16153 @@ +{ + "contractName": "ERC20Basic", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/DEX.sol\":\"ERC20Basic\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/DEX.sol\":{\"keccak256\":\"0x8ab902d0aa29fcda7a73f2139c782cdcfa9d1b1ada8a485622541ae67ae7f4e9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://83452b00f65de11ee4e5af40186a7e9ed3ecaf97c061013cfda581486900991b\",\"dweb:/ipfs/QmXAu2Prr6pXVZvkXxUUek6DoSzj1Ba8hoVJe3kU97NFBF\"]}},\"version\":1}", + "bytecode": "0x6080604052678ac7230489e8000060025534801561001c57600080fd5b506002546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dfb806100716000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad9190610b9d565b60405180910390f35b6100d060048036038101906100cb9190610adc565b610239565b6040516100dd9190610b82565b60405180910390f35b6100ee61032b565b6040516100fb9190610bbf565b60405180910390f35b61011e60048036038101906101199190610a89565b610335565b60405161012b9190610b82565b60405180910390f35b61013c6106b0565b6040516101499190610bda565b60405180910390f35b61016c60048036038101906101679190610a1c565b6106b5565b6040516101799190610bbf565b60405180910390f35b61018a6106fd565b6040516101979190610b9d565b60405180910390f35b6101ba60048036038101906101b59190610adc565b610736565b6040516101c79190610b82565b60405180910390f35b6101ea60048036038101906101e59190610a49565b610918565b6040516101f79190610bbf565b60405180910390f35b6040518060400160405280600a81526020017f455243323042617369630000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103199190610bbf565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561038257600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561040b57600080fd5b61045c826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461099f90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061052d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461099f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105fe826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c690919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161069d9190610bbf565b60405180910390a3600190509392505050565b601281565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600381526020017f455243000000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561078357600080fd5b6107d4826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461099f90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610867826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c690919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109069190610bbf565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211156109b2576109b1610d23565b5b81836109be9190610c67565b905092915050565b60008082846109d59190610c11565b9050838110156109e8576109e7610d23565b5b8091505092915050565b600081359050610a0181610d97565b92915050565b600081359050610a1681610dae565b92915050565b600060208284031215610a3257610a31610d81565b5b6000610a40848285016109f2565b91505092915050565b60008060408385031215610a6057610a5f610d81565b5b6000610a6e858286016109f2565b9250506020610a7f858286016109f2565b9150509250929050565b600080600060608486031215610aa257610aa1610d81565b5b6000610ab0868287016109f2565b9350506020610ac1868287016109f2565b9250506040610ad286828701610a07565b9150509250925092565b60008060408385031215610af357610af2610d81565b5b6000610b01858286016109f2565b9250506020610b1285828601610a07565b9150509250929050565b610b2581610cad565b82525050565b6000610b3682610bf5565b610b408185610c00565b9350610b50818560208601610cf0565b610b5981610d86565b840191505092915050565b610b6d81610cd9565b82525050565b610b7c81610ce3565b82525050565b6000602082019050610b976000830184610b1c565b92915050565b60006020820190508181036000830152610bb78184610b2b565b905092915050565b6000602082019050610bd46000830184610b64565b92915050565b6000602082019050610bef6000830184610b73565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610c1c82610cd9565b9150610c2783610cd9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610c5c57610c5b610d52565b5b828201905092915050565b6000610c7282610cd9565b9150610c7d83610cd9565b925082821015610c9057610c8f610d52565b5b828203905092915050565b6000610ca682610cb9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610d0e578082015181840152602081019050610cf3565b83811115610d1d576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b610da081610c9b565b8114610dab57600080fd5b50565b610db781610cd9565b8114610dc257600080fd5b5056fea264697066735822122023a681c6f8de6b8496396b4145304c07fa048be47fadd9319faa59740388ceae64736f6c63430008060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad9190610b9d565b60405180910390f35b6100d060048036038101906100cb9190610adc565b610239565b6040516100dd9190610b82565b60405180910390f35b6100ee61032b565b6040516100fb9190610bbf565b60405180910390f35b61011e60048036038101906101199190610a89565b610335565b60405161012b9190610b82565b60405180910390f35b61013c6106b0565b6040516101499190610bda565b60405180910390f35b61016c60048036038101906101679190610a1c565b6106b5565b6040516101799190610bbf565b60405180910390f35b61018a6106fd565b6040516101979190610b9d565b60405180910390f35b6101ba60048036038101906101b59190610adc565b610736565b6040516101c79190610b82565b60405180910390f35b6101ea60048036038101906101e59190610a49565b610918565b6040516101f79190610bbf565b60405180910390f35b6040518060400160405280600a81526020017f455243323042617369630000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103199190610bbf565b60405180910390a36001905092915050565b6000600254905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561038257600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561040b57600080fd5b61045c826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461099f90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061052d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461099f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105fe826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c690919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161069d9190610bbf565b60405180910390a3600190509392505050565b601281565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600381526020017f455243000000000000000000000000000000000000000000000000000000000081525081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561078357600080fd5b6107d4826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461099f90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610867826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c690919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109069190610bbf565b60405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211156109b2576109b1610d23565b5b81836109be9190610c67565b905092915050565b60008082846109d59190610c11565b9050838110156109e8576109e7610d23565b5b8091505092915050565b600081359050610a0181610d97565b92915050565b600081359050610a1681610dae565b92915050565b600060208284031215610a3257610a31610d81565b5b6000610a40848285016109f2565b91505092915050565b60008060408385031215610a6057610a5f610d81565b5b6000610a6e858286016109f2565b9250506020610a7f858286016109f2565b9150509250929050565b600080600060608486031215610aa257610aa1610d81565b5b6000610ab0868287016109f2565b9350506020610ac1868287016109f2565b9250506040610ad286828701610a07565b9150509250925092565b60008060408385031215610af357610af2610d81565b5b6000610b01858286016109f2565b9250506020610b1285828601610a07565b9150509250929050565b610b2581610cad565b82525050565b6000610b3682610bf5565b610b408185610c00565b9350610b50818560208601610cf0565b610b5981610d86565b840191505092915050565b610b6d81610cd9565b82525050565b610b7c81610ce3565b82525050565b6000602082019050610b976000830184610b1c565b92915050565b60006020820190508181036000830152610bb78184610b2b565b905092915050565b6000602082019050610bd46000830184610b64565b92915050565b6000602082019050610bef6000830184610b73565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610c1c82610cd9565b9150610c2783610cd9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610c5c57610c5b610d52565b5b828201905092915050565b6000610c7282610cd9565b9150610c7d83610cd9565b925082821015610c9057610c8f610d52565b5b828203905092915050565b6000610ca682610cb9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610d0e578082015181840152602081019050610cf3565b83811115610d1d576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b610da081610c9b565b8114610dab57600080fd5b50565b610db781610cd9565b8114610dc257600080fd5b5056fea264697066735822122023a681c6f8de6b8496396b4145304c07fa048be47fadd9319faa59740388ceae64736f6c63430008060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:6593:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "204:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "214:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "236:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "223:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "223:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "214:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "279:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "252:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "252:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "182:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "190:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "198:5:1", + "type": "" + } + ], + "src": "152:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "363:263:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "409:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "411:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "411:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "411:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "384:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "393:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "380:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "380:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "405:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "376:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "376:32:1" + }, + "nodeType": "YulIf", + "src": "373:2:1" + }, + { + "nodeType": "YulBlock", + "src": "502:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "517:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "531:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "521:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "333:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "344:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "356:6:1", + "type": "" + } + ], + "src": "297:329:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "715:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "761:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "763:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "763:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "763:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "736:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "745:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "732:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "732:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "757:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "728:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "728:32:1" + }, + "nodeType": "YulIf", + "src": "725:2:1" + }, + { + "nodeType": "YulBlock", + "src": "854:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "869:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "883:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "873:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "898:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "933:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "944:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "929:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "929:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "953:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "908:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "908:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "898:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "981:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "996:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1010:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1000:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1026:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1061:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1072:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1057:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1057:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1081:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1036:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1036:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1026:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "677:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "688:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "700:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "708:6:1", + "type": "" + } + ], + "src": "632:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1212:519:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1258:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1260:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "1260:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1260:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1233:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1242:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1229:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1229:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1254:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1225:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1225:32:1" + }, + "nodeType": "YulIf", + "src": "1222:2:1" + }, + { + "nodeType": "YulBlock", + "src": "1351:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1366:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1380:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1370:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1395:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1430:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1441:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1426:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1426:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1450:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1405:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1405:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1395:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1478:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1493:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1507:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1497:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1523:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1558:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1569:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1554:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1554:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1578:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1533:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1533:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1523:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1606:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1621:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1635:2:1", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1625:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1651:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1686:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1697:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1682:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1682:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1706:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1661:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "1661:53:1" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1651:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1166:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1177:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1189:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1197:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1205:6:1", + "type": "" + } + ], + "src": "1112:619:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1820:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1866:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1868:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "1868:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1868:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1841:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1850:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1837:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1837:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1862:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1833:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1833:32:1" + }, + "nodeType": "YulIf", + "src": "1830:2:1" + }, + { + "nodeType": "YulBlock", + "src": "1959:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1974:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1988:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1978:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2003:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2038:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2049:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2034:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2034:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2058:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2013:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "2013:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2003:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2086:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2101:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2115:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2105:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2131:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2166:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2177:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2162:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2162:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2186:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2141:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "2141:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2131:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1782:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1793:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1805:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1813:6:1", + "type": "" + } + ], + "src": "1737:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2276:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2293:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2313:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "2298:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "2298:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2286:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2286:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2286:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2264:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2271:3:1", + "type": "" + } + ], + "src": "2217:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2424:272:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2434:53:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2481:5:1" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2448:32:1" + }, + "nodeType": "YulFunctionCall", + "src": "2448:39:1" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2438:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2496:78:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2562:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2567:6:1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2503:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "2503:71:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2496:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2609:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2616:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2605:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2605:16:1" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2623:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2628:6:1" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "2583:21:1" + }, + "nodeType": "YulFunctionCall", + "src": "2583:52:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2583:52:1" + }, + { + "nodeType": "YulAssignment", + "src": "2644:46:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2655:3:1" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2682:6:1" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2660:21:1" + }, + "nodeType": "YulFunctionCall", + "src": "2660:29:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2651:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2651:39:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2644:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2405:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2412:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2420:3:1", + "type": "" + } + ], + "src": "2332:364:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2767:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2784:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2807:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2789:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2789:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2777:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2777:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2777:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2755:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2762:3:1", + "type": "" + } + ], + "src": "2702:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2887:51:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2904:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2925:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "2909:15:1" + }, + "nodeType": "YulFunctionCall", + "src": "2909:22:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2897:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2897:35:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2897:35:1" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2875:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2882:3:1", + "type": "" + } + ], + "src": "2826:112:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3036:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3046:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3058:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3069:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3054:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3054:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3046:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3120:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3133:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3144:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3129:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3129:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3082:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "3082:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3082:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3008:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3020:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3031:4:1", + "type": "" + } + ], + "src": "2944:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3278:195:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3288:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3300:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3311:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3296:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3296:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3288:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3335:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3346:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3331:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3331:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3354:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3360:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3350:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3350:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3324:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3324:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3324:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "3380:86:1", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3452:6:1" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3461:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3388:63:1" + }, + "nodeType": "YulFunctionCall", + "src": "3388:78:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3380:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3250:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3262:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3273:4:1", + "type": "" + } + ], + "src": "3160:313:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3577:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3587:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3599:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3610:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3595:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3595:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3587:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3667:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3680:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3691:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3676:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3676:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3623:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "3623:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3623:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3549:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3561:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3572:4:1", + "type": "" + } + ], + "src": "3479:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3801:120:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3811:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3823:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3834:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3819:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3819:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3811:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3887:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3900:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3911:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3896:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3896:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "3847:39:1" + }, + "nodeType": "YulFunctionCall", + "src": "3847:67:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3847:67:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3773:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3785:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3796:4:1", + "type": "" + } + ], + "src": "3707:214:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3967:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3977:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3993:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3987:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "3987:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3977:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "3960:6:1", + "type": "" + } + ], + "src": "3927:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4067:40:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4078:22:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4094:5:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4088:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "4088:12:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4078:6:1" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4050:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4060:6:1", + "type": "" + } + ], + "src": "4008:99:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4209:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4226:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4231:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4219:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4219:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4219:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "4247:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4266:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4271:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4262:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4262:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4247:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4181:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4186:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4197:11:1", + "type": "" + } + ], + "src": "4113:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4332:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4342:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4365:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4347:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4342:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4376:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4399:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4381:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4381:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4376:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4539:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "4541:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "4541:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4541:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4460:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4467:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4535:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4463:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4463:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4457:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "4457:81:1" + }, + "nodeType": "YulIf", + "src": "4454:2:1" + }, + { + "nodeType": "YulAssignment", + "src": "4571:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4582:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4585:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4578:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4578:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "4571:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "4319:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "4322:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "4328:3:1", + "type": "" + } + ], + "src": "4288:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4644:146:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4654:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4677:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4659:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4659:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4654:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4688:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4711:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4693:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4693:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4688:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4735:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "4737:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "4737:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4737:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4729:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4732:1:1" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4726:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "4726:8:1" + }, + "nodeType": "YulIf", + "src": "4723:2:1" + }, + { + "nodeType": "YulAssignment", + "src": "4767:17:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4779:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4782:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4775:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4775:9:1" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "4767:4:1" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "4630:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "4633:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "4639:4:1", + "type": "" + } + ], + "src": "4599:191:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4841:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4851:35:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4880:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "4862:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4862:24:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4851:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4823:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4833:7:1", + "type": "" + } + ], + "src": "4796:96:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4940:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4950:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4975:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4968:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4968:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4961:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4961:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4950:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4922:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4932:7:1", + "type": "" + } + ], + "src": "4898:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5039:81:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5049:65:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5064:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5071:42:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5060:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5060:54:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5049:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5021:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5031:7:1", + "type": "" + } + ], + "src": "4994:126:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5171:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5181:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5192:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5181:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5153:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5163:7:1", + "type": "" + } + ], + "src": "5126:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5252:43:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5262:27:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5277:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5284:4:1", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5273:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5273:16:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5262:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5234:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5244:7:1", + "type": "" + } + ], + "src": "5209:86:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5350:258:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5360:10:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5369:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5364:1:1", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5429:63:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5454:3:1" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5459:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5450:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5450:11:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5473:3:1" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5478:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5469:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5469:11:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5463:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "5463:18:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5443:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5443:39:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5443:39:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5390:1:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5393:6:1" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5387:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5387:13:1" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5401:19:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5403:15:1", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5412:1:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5415:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5408:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5408:10:1" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5403:1:1" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5383:3:1", + "statements": [] + }, + "src": "5379:113:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5526:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5576:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5581:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5572:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5572:16:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5590:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5565:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5565:27:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5565:27:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5507:1:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5510:6:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5504:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5504:13:1" + }, + "nodeType": "YulIf", + "src": "5501:2:1" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "5332:3:1", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "5337:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5342:6:1", + "type": "" + } + ], + "src": "5301:307:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5642:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5659:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5662:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5652:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5652:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5652:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5756:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5759:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5749:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5749:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5749:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5780:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5783:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5773:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5773:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5773:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "5614:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5828:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5845:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5848:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5838:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5838:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5838:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5945:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5935:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5935:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5935:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5966:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5969:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5959:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5959:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5959:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "5800:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6075:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6092:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6095:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6085:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6085:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6085:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "5986:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6198:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6215:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6218:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6208:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6208:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6208:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "6109:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6280:54:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6290:38:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6308:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6315:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6304:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6304:14:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6324:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6320:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6320:7:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6300:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6300:28:1" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6290:6:1" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6263:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6273:6:1", + "type": "" + } + ], + "src": "6232:102:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6383:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6440:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6449:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6452:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6442:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6442:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6442:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6406:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6431:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6413:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "6413:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6403:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "6403:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6396:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6396:43:1" + }, + "nodeType": "YulIf", + "src": "6393:2:1" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6376:5:1", + "type": "" + } + ], + "src": "6340:122:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6511:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6568:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6577:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6580:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6570:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6570:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "6570:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6534:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6559:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6541:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "6541:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6531:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "6531:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6524:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "6524:43:1" + }, + "nodeType": "YulIf", + "src": "6521:2:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6504:5:1", + "type": "" + } + ], + "src": "6468:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "868:2102:0:-:0;;;1174:8;1151:31;;1226:75;;;;;;;;;;1281:12;;1258:8;:20;1267:10;1258:20;;;;;;;;;;;;;;;:35;;;;868:2102;;;;;;", + "deployedSourceMap": "868:2102:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1990:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1309:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2444:523;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;998:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1417:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;954:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1590:392;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2254:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;905:42;;;;;;;;;;;;;;;;;;;:::o;1990:256::-;2096:4;2150:9;2118:7;:19;2126:10;2118:19;;;;;;;;;;;;;;;:29;2138:8;2118:29;;;;;;;;;;;;;;;:41;;;;2196:8;2175:41;;2184:10;2175:41;;;2206:9;2175:41;;;;;;:::i;:::-;;;;;;;;2234:4;2227:11;;1990:256;;;;:::o;1309:100::-;1362:7;1389:12;;1382:19;;1309:100;:::o;2444:523::-;2574:4;2612:8;:15;2621:5;2612:15;;;;;;;;;;;;;;;;2599:9;:28;;2591:37;;;;;;2660:7;:14;2668:5;2660:14;;;;;;;;;;;;;;;:26;2675:10;2660:26;;;;;;;;;;;;;;;;2647:9;:39;;2639:48;;;;;;2718:30;2738:9;2718:8;:15;2727:5;2718:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2700:8;:15;2709:5;2700:15;;;;;;;;;;;;;;;:48;;;;2788:41;2819:9;2788:7;:14;2796:5;2788:14;;;;;;;;;;;;;;;:26;2803:10;2788:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;2759:7;:14;2767:5;2759:14;;;;;;;;;;;;;;;:26;2774:10;2759:26;;;;;;;;;;;;;;;:70;;;;2858:30;2878:9;2858:8;:15;2867:5;2858:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;2840:8;:15;2849:5;2840:15;;;;;;;;;;;;;;;:48;;;;2920:5;2904:33;;2913:5;2904:33;;;2927:9;2904:33;;;;;;:::i;:::-;;;;;;;;2955:4;2948:11;;2444:523;;;;;:::o;998:35::-;1031:2;998:35;:::o;1417:165::-;1522:7;1554:8;:20;1563:10;1554:20;;;;;;;;;;;;;;;;1547:27;;1417:165;;;:::o;954:37::-;;;;;;;;;;;;;;;;;;;:::o;1590:392::-;1697:4;1740:8;:20;1749:10;1740:20;;;;;;;;;;;;;;;;1727:9;:33;;1719:42;;;;;;1795:35;1820:9;1795:8;:20;1804:10;1795:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;1772:8;:20;1781:10;1772:20;;;;;;;;;;;;;;;:58;;;;1862:33;1885:9;1862:8;:18;1871:8;1862:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;1841:8;:18;1850:8;1841:18;;;;;;;;;;;;;;;:54;;;;1932:8;1911:41;;1920:10;1911:41;;;1942:9;1911:41;;;;;;:::i;:::-;;;;;;;;1970:4;1963:11;;1590:392;;;;:::o;2254:182::-;2372:7;2404;:14;2412:5;2404:14;;;;;;;;;;;;;;;:24;2419:8;2404:24;;;;;;;;;;;;;;;;2397:31;;2254:182;;;;:::o;2998:123::-;3056:7;3088:1;3083;:6;;3076:14;;;;:::i;:::-;;3112:1;3108;:5;;;;:::i;:::-;3101:12;;2998:123;;;;:::o;3129:147::-;3187:7;3207:9;3223:1;3219;:5;;;;:::i;:::-;3207:17;;3247:1;3242;:6;;3235:14;;;;:::i;:::-;;3267:1;3260:8;;;3129:147;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:2;;;411:79;;:::i;:::-;373:2;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;363:263;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:2;;;763:79;;:::i;:::-;725:2;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;715:391;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:2;;;1260:79;;:::i;:::-;1222:2;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1212:519;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:2;;;1868:79;;:::i;:::-;1830:2;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1820:391;;;;;:::o;2217:109::-;2298:21;2313:5;2298:21;:::i;:::-;2293:3;2286:34;2276:50;;:::o;2332:364::-;2420:3;2448:39;2481:5;2448:39;:::i;:::-;2503:71;2567:6;2562:3;2503:71;:::i;:::-;2496:78;;2583:52;2628:6;2623:3;2616:4;2609:5;2605:16;2583:52;:::i;:::-;2660:29;2682:6;2660:29;:::i;:::-;2655:3;2651:39;2644:46;;2424:272;;;;;:::o;2702:118::-;2789:24;2807:5;2789:24;:::i;:::-;2784:3;2777:37;2767:53;;:::o;2826:112::-;2909:22;2925:5;2909:22;:::i;:::-;2904:3;2897:35;2887:51;;:::o;2944:210::-;3031:4;3069:2;3058:9;3054:18;3046:26;;3082:65;3144:1;3133:9;3129:17;3120:6;3082:65;:::i;:::-;3036:118;;;;:::o;3160:313::-;3273:4;3311:2;3300:9;3296:18;3288:26;;3360:9;3354:4;3350:20;3346:1;3335:9;3331:17;3324:47;3388:78;3461:4;3452:6;3388:78;:::i;:::-;3380:86;;3278:195;;;;:::o;3479:222::-;3572:4;3610:2;3599:9;3595:18;3587:26;;3623:71;3691:1;3680:9;3676:17;3667:6;3623:71;:::i;:::-;3577:124;;;;:::o;3707:214::-;3796:4;3834:2;3823:9;3819:18;3811:26;;3847:67;3911:1;3900:9;3896:17;3887:6;3847:67;:::i;:::-;3801:120;;;;:::o;4008:99::-;4060:6;4094:5;4088:12;4078:22;;4067:40;;;:::o;4113:169::-;4197:11;4231:6;4226:3;4219:19;4271:4;4266:3;4262:14;4247:29;;4209:73;;;;:::o;4288:305::-;4328:3;4347:20;4365:1;4347:20;:::i;:::-;4342:25;;4381:20;4399:1;4381:20;:::i;:::-;4376:25;;4535:1;4467:66;4463:74;4460:1;4457:81;4454:2;;;4541:18;;:::i;:::-;4454:2;4585:1;4582;4578:9;4571:16;;4332:261;;;;:::o;4599:191::-;4639:4;4659:20;4677:1;4659:20;:::i;:::-;4654:25;;4693:20;4711:1;4693:20;:::i;:::-;4688:25;;4732:1;4729;4726:8;4723:2;;;4737:18;;:::i;:::-;4723:2;4782:1;4779;4775:9;4767:17;;4644:146;;;;:::o;4796:96::-;4833:7;4862:24;4880:5;4862:24;:::i;:::-;4851:35;;4841:51;;;:::o;4898:90::-;4932:7;4975:5;4968:13;4961:21;4950:32;;4940:48;;;:::o;4994:126::-;5031:7;5071:42;5064:5;5060:54;5049:65;;5039:81;;;:::o;5126:77::-;5163:7;5192:5;5181:16;;5171:32;;;:::o;5209:86::-;5244:7;5284:4;5277:5;5273:16;5262:27;;5252:43;;;:::o;5301:307::-;5369:1;5379:113;5393:6;5390:1;5387:13;5379:113;;;5478:1;5473:3;5469:11;5463:18;5459:1;5454:3;5450:11;5443:39;5415:2;5412:1;5408:10;5403:15;;5379:113;;;5510:6;5507:1;5504:13;5501:2;;;5590:1;5581:6;5576:3;5572:16;5565:27;5501:2;5350:258;;;;:::o;5614:180::-;5662:77;5659:1;5652:88;5759:4;5756:1;5749:15;5783:4;5780:1;5773:15;5800:180;5848:77;5845:1;5838:88;5945:4;5942:1;5935:15;5969:4;5966:1;5959:15;6109:117;6218:1;6215;6208:12;6232:102;6273:6;6324:2;6320:7;6315:2;6308:5;6304:14;6300:28;6290:38;;6280:54;;;:::o;6340:122::-;6413:24;6431:5;6413:24;:::i;:::-;6406:5;6403:35;6393:2;;6452:1;6449;6442:12;6393:2;6383:79;:::o;6468:122::-;6541:24;6559:5;6541:24;:::i;:::-;6534:5;6531:35;6521:2;;6580:1;6577;6570:12;6521:2;6511:79;:::o", + "source": "// SPDX-License-Identifier: GPL-3.0\r\n\r\npragma solidity ^0.8.6;\r\n\r\ninterface IERC20 {\r\n function totalSupply() external view returns (uint256);\r\n\r\n function balanceOf(address account) external view returns (uint256);\r\n\r\n function allowance(address owner, address spender)\r\n external\r\n view\r\n returns (uint256);\r\n\r\n function transfer(address recipient, uint256 amount)\r\n external\r\n returns (bool);\r\n\r\n function approve(address spender, uint256 amount) external returns (bool);\r\n\r\n function transferFrom(\r\n address sender,\r\n address recipient,\r\n uint256 amount\r\n ) external returns (bool);\r\n\r\n event Transfer(address indexed from, address indexed to, uint256 value);\r\n event Approval(\r\n address indexed owner,\r\n address indexed spender,\r\n uint256 value\r\n );\r\n}\r\n\r\ncontract ERC20Basic is IERC20 {\r\n string public constant name = \"ERC20Basic\";\r\n string public constant symbol = \"ERC\";\r\n uint8 public constant decimals = 18;\r\n\r\n mapping(address => uint256) balances;\r\n\r\n mapping(address => mapping(address => uint256)) allowed;\r\n\r\n uint256 totalSupply_ = 10 ether;\r\n\r\n using SafeMath for uint256;\r\n\r\n constructor() public {\r\n balances[msg.sender] = totalSupply_;\r\n }\r\n\r\n function totalSupply() public view override returns (uint256) {\r\n return totalSupply_;\r\n }\r\n\r\n function balanceOf(address tokenOwner)\r\n public\r\n view\r\n override\r\n returns (uint256)\r\n {\r\n return balances[tokenOwner];\r\n }\r\n\r\n function transfer(address receiver, uint256 numTokens)\r\n public\r\n override\r\n returns (bool)\r\n {\r\n require(numTokens <= balances[msg.sender]);\r\n balances[msg.sender] = balances[msg.sender].sub(numTokens);\r\n balances[receiver] = balances[receiver].add(numTokens);\r\n emit Transfer(msg.sender, receiver, numTokens);\r\n return true;\r\n }\r\n\r\n function approve(address delegate, uint256 numTokens)\r\n public\r\n override\r\n returns (bool)\r\n {\r\n allowed[msg.sender][delegate] = numTokens;\r\n emit Approval(msg.sender, delegate, numTokens);\r\n return true;\r\n }\r\n\r\n function allowance(address owner, address delegate)\r\n public\r\n view\r\n override\r\n returns (uint256)\r\n {\r\n return allowed[owner][delegate];\r\n }\r\n\r\n function transferFrom(\r\n address owner,\r\n address buyer,\r\n uint256 numTokens\r\n ) public override returns (bool) {\r\n require(numTokens <= balances[owner]);\r\n require(numTokens <= allowed[owner][msg.sender]);\r\n\r\n balances[owner] = balances[owner].sub(numTokens);\r\n allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);\r\n balances[buyer] = balances[buyer].add(numTokens);\r\n emit Transfer(owner, buyer, numTokens);\r\n return true;\r\n }\r\n}\r\n\r\nlibrary SafeMath {\r\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n assert(b <= a);\r\n return a - b;\r\n }\r\n\r\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a + b;\r\n assert(c >= a);\r\n return c;\r\n }\r\n}\r\n\r\ncontract DEX {\r\n event Bought(uint256 amount);\r\n event Sold(uint256 amount);\r\n\r\n IERC20 public token;\r\n\r\n constructor() public {\r\n token = new ERC20Basic();\r\n }\r\n\r\n function balance() public view returns (uint256) {\r\n return token.balanceOf(address(this));\r\n }\r\n\r\n function buy() public payable {\r\n uint256 amountTobuy = msg.value;\r\n uint256 dexBalance = token.balanceOf(address(this));\r\n //require(amountTobuy > 0, \"You need to send some Ether\");\r\n require(amountTobuy <= dexBalance, \"Not enough tokens in the reserve\");\r\n token.transfer(msg.sender, amountTobuy);\r\n emit Bought(amountTobuy);\r\n }\r\n\r\n function sell(uint256 amount) public {\r\n require(amount > 0, \"You need to sell at least some tokens\");\r\n uint256 allowance = token.allowance(msg.sender, address(this));\r\n require(allowance >= amount, \"Check the token allowance\");\r\n token.transferFrom(msg.sender, address(this), amount);\r\n payable(msg.sender).transfer(amount);\r\n emit Sold(amount);\r\n }\r\n}\r\n", + "sourcePath": "F:\\Blockchain_Learning\\repo\\defi-dapps-solidity-smart-contracts\\step34_projects\\project-04\\backend\\contracts\\DEX.sol", + "ast": { + "absolutePath": "project:/contracts/DEX.sol", + "exportedSymbols": { + "DEX": [ + 484 + ], + "ERC20Basic": [ + 307 + ], + "IERC20": [ + 68 + ], + "SafeMath": [ + 352 + ] + }, + "id": 485, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ], + "nodeType": "PragmaDirective", + "src": "39:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 68, + "linearizedBaseContracts": [ + 68 + ], + "name": "IERC20", + "nameLocation": "76:6:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 6, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "99:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "110:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6, + "src": "136:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "136:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "135:9:0" + }, + "scope": 68, + "src": "90:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 13, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "162:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "account", + "nameLocation": "180:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "172:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "172:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "171:17:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "212:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "211:9:0" + }, + "scope": 68, + "src": "153:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "238:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "owner", + "nameLocation": "256:5:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "248:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "248:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "spender", + "nameLocation": "271:7:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "263:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "263:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "247:32:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "330:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "330:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "329:9:0" + }, + "scope": 68, + "src": "229:110:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 31, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "356:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "373:9:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "365:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "amount", + "nameLocation": "392:6:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "384:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "364:35:0" + }, + "returnParameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "436:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "435:6:0" + }, + "scope": 68, + "src": "347:95:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 40, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "459:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "spender", + "nameLocation": "475:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "467:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "467:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "amount", + "nameLocation": "492:6:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "484:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "466:33:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "518:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "518:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "517:6:0" + }, + "scope": 68, + "src": "450:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "541:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "sender", + "nameLocation": "572:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "564:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "564:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "597:9:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "589:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "589:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "mutability": "mutable", + "name": "amount", + "nameLocation": "625:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "617:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "617:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "553:85:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "657:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 48, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "657:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "656:6:0" + }, + "scope": 68, + "src": "532:131:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "id": 59, + "name": "Transfer", + "nameLocation": "677:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "702:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "686:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 52, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "686:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "724:2:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "708:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "736:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "728:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "728:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "685:57:0" + }, + "src": "671:72:0" + }, + { + "anonymous": false, + "id": 67, + "name": "Approval", + "nameLocation": "755:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "790:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "774:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "822:7:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "806:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 62, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "806:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "848:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "840:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "840:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "763:97:0" + }, + "src": "749:112:0" + } + ], + "scope": 485, + "src": "66:798:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 69, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "891:6:0" + }, + "id": 70, + "nodeType": "InheritanceSpecifier", + "src": "891:6:0" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 307, + "linearizedBaseContracts": [ + 307, + 68 + ], + "name": "ERC20Basic", + "nameLocation": "877:10:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 73, + "mutability": "constant", + "name": "name", + "nameLocation": "928:4:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "905:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 71, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "45524332304261736963", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "935:12:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a79e33b9dc0a948bb61d947e9b93ca6444308158c71b1fc39c80594dbec233e5", + "typeString": "literal_string \"ERC20Basic\"" + }, + "value": "ERC20Basic" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 76, + "mutability": "constant", + "name": "symbol", + "nameLocation": "977:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "954:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 74, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "455243", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "986:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aba1fbc2bbf2303cc281eb9028edd772ae6c0c8a2b10b48e871a8884819f04df", + "typeString": "literal_string \"ERC\"" + }, + "value": "ERC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 79, + "mutability": "constant", + "name": "decimals", + "nameLocation": "1020:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "998:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 77, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "998:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3138", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1031:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "balances", + "nameLocation": "1070:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1042:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 82, + "keyType": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1050:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1042:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "1135:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1087:55:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1087:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 87, + "keyType": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1106:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1125:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "totalSupply_", + "nameLocation": "1159:12:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1151:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1151:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:8:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + }, + "value": "10" + }, + "visibility": "internal" + }, + { + "id": 95, + "libraryName": { + "id": 93, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 352, + "src": "1197:8:0" + }, + "nodeType": "UsingForDirective", + "src": "1191:27:0", + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1210:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 105, + "nodeType": "Block", + "src": "1247:54:0", + "statements": [ + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 98, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1258:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 101, + "indexExpression": { + "expression": { + "id": 99, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1267:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1267:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1258:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1281:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1258:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "1258:35:0" + } + ] + }, + "id": 106, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "1237:2:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [], + "src": "1247:0:0" + }, + "scope": 307, + "src": "1226:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 6 + ], + "body": { + "id": 114, + "nodeType": "Block", + "src": "1371:38:0", + "statements": [ + { + "expression": { + "id": 112, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1389:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 111, + "id": 113, + "nodeType": "Return", + "src": "1382:19:0" + } + ] + }, + "functionSelector": "18160ddd", + "id": 115, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1318:11:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 108, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1344:8:0" + }, + "parameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [], + "src": "1329:2:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "1362:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1361:9:0" + }, + "scope": 307, + "src": "1309:100:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 13 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "1536:46:0", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 123, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1554:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 125, + "indexExpression": { + "id": 124, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "1563:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1554:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 122, + "id": 126, + "nodeType": "Return", + "src": "1547:27:0" + } + ] + }, + "functionSelector": "70a08231", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1426:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 119, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1495:8:0" + }, + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "tokenOwner", + "nameLocation": "1444:10:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1436:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1435:20:0" + }, + "returnParameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1522:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1521:9:0" + }, + "scope": 307, + "src": "1417:165:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 31 + ], + "body": { + "id": 180, + "nodeType": "Block", + "src": "1708:274:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 139, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1727:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 140, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1740:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 143, + "indexExpression": { + "expression": { + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1749:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1749:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1740:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1727:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 138, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1719:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1719:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 146, + "nodeType": "ExpressionStatement", + "src": "1719:42:0" + }, + { + "expression": { + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 147, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1772:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 150, + "indexExpression": { + "expression": { + "id": 148, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1781:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1781:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1772:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 156, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1820:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 151, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1795:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 154, + "indexExpression": { + "expression": { + "id": 152, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1804:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1804:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "1795:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1795:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1772:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "1772:58:0" + }, + { + "expression": { + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1841:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 162, + "indexExpression": { + "id": 161, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1850:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1841:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 167, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1885:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1862:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 165, + "indexExpression": { + "id": 164, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1871:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1862:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "1862:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1862:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1841:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "nodeType": "ExpressionStatement", + "src": "1841:54:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 172, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1920:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1920:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 174, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1932:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 175, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1942:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 171, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1911:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 177, + "nodeType": "EmitStatement", + "src": "1906:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1970:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 137, + "id": 179, + "nodeType": "Return", + "src": "1963:11:0" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1599:8:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 134, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1670:8:0" + }, + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1616:8:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1608:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1608:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "1634:9:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1626:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1607:37:0" + }, + "returnParameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1697:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 135, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1697:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1696:6:0" + }, + "scope": 307, + "src": "1590:392:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 40 + ], + "body": { + "id": 209, + "nodeType": "Block", + "src": "2107:139:0", + "statements": [ + { + "expression": { + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 191, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2118:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 195, + "indexExpression": { + "expression": { + "id": 192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2126:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2126:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2118:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 196, + "indexExpression": { + "id": 194, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2138:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2118:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 197, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2150:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2118:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "2118:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 201, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2184:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2184:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 203, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2196:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 204, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2206:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 200, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2175:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2175:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 206, + "nodeType": "EmitStatement", + "src": "2170:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2234:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 190, + "id": 208, + "nodeType": "Return", + "src": "2227:11:0" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 210, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1999:7:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 187, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2069:8:0" + }, + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2015:8:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2007:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2007:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2033:9:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2025:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2006:37:0" + }, + "returnParameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2096:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 188, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2095:6:0" + }, + "scope": 307, + "src": "1990:256:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 22 + ], + "body": { + "id": 226, + "nodeType": "Block", + "src": "2386:50:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 220, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2404:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 222, + "indexExpression": { + "id": 221, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "2412:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 224, + "indexExpression": { + "id": 223, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "2419:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 219, + "id": 225, + "nodeType": "Return", + "src": "2397:31:0" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "2263:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 216, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2345:8:0" + }, + "parameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2281:5:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2273:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2296:8:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2288:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2272:33:0" + }, + "returnParameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2372:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2372:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2371:9:0" + }, + "scope": 307, + "src": "2254:182:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 51 + ], + "body": { + "id": 305, + "nodeType": "Block", + "src": "2580:387:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 240, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2599:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 241, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2612:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 243, + "indexExpression": { + "id": 242, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2621:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2612:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2599:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2591:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 246, + "nodeType": "ExpressionStatement", + "src": "2591:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 248, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2647:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 249, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 251, + "indexExpression": { + "id": 250, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2668:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 254, + "indexExpression": { + "expression": { + "id": 252, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2675:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2675:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2647:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2639:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "2639:48:0" + }, + { + "expression": { + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 258, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2700:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 260, + "indexExpression": { + "id": 259, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2709:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2700:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 265, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2738:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 261, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2718:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 263, + "indexExpression": { + "id": 262, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2727:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2718:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2718:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2718:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2700:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 268, + "nodeType": "ExpressionStatement", + "src": "2700:48:0" + }, + { + "expression": { + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 269, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 270, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2767:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2759:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 274, + "indexExpression": { + "expression": { + "id": 271, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2774:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2774:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2759:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 282, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2819:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 275, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2788:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 277, + "indexExpression": { + "id": 276, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2796:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 280, + "indexExpression": { + "expression": { + "id": 278, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2803:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2803:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2788:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2788:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2759:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 285, + "nodeType": "ExpressionStatement", + "src": "2759:70:0" + }, + { + "expression": { + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 286, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2840:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 288, + "indexExpression": { + "id": 287, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2849:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2840:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 293, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2878:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 289, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2858:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 291, + "indexExpression": { + "id": 290, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2867:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2858:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "2858:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2840:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 296, + "nodeType": "ExpressionStatement", + "src": "2840:48:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2913:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 299, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2920:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 300, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2927:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2904:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2904:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 302, + "nodeType": "EmitStatement", + "src": "2899:38:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 238, + "id": 304, + "nodeType": "Return", + "src": "2948:11:0" + } + ] + }, + "functionSelector": "23b872dd", + "id": 306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2453:12:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 235, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2556:8:0" + }, + "parameters": { + "id": 234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2484:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2476:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2476:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "buyer", + "nameLocation": "2508:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2500:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 233, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2532:9:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2524:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2524:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2465:83:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2574:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2574:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2573:6:0" + }, + "scope": 307, + "src": "2444:523:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "868:2102:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 352, + "linearizedBaseContracts": [ + 352 + ], + "name": "SafeMath", + "nameLocation": "2982:8:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3065:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 317, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3083:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 318, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3088:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3083:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 316, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3076:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3076:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 321, + "nodeType": "ExpressionStatement", + "src": "3076:14:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 322, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 323, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3112:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 315, + "id": 325, + "nodeType": "Return", + "src": "3101:12:0" + } + ] + }, + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "3007:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "a", + "nameLocation": "3019:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3011:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "b", + "nameLocation": "3030:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3022:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3010:22:0" + }, + "returnParameters": { + "id": 315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3056:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3056:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3055:9:0" + }, + "scope": 352, + "src": "2998:123:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 350, + "nodeType": "Block", + "src": "3196:80:0", + "statements": [ + { + "assignments": [ + 337 + ], + "declarations": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "c", + "nameLocation": "3215:1:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "3207:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 341, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 338, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3219:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 339, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "3223:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3219:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3207:17:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 343, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3242:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 344, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3247:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3242:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 342, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 347, + "nodeType": "ExpressionStatement", + "src": "3235:14:0" + }, + { + "expression": { + "id": 348, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3267:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 335, + "id": 349, + "nodeType": "Return", + "src": "3260:8:0" + } + ] + }, + "id": 351, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "3138:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "a", + "nameLocation": "3150:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3142:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "b", + "nameLocation": "3161:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3153:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3153:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3141:22:0" + }, + "returnParameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3187:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3186:9:0" + }, + "scope": 352, + "src": "3129:147:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 485, + "src": "2974:305:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [ + 307 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 484, + "linearizedBaseContracts": [ + 484 + ], + "name": "DEX", + "nameLocation": "3292:3:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "id": 356, + "name": "Bought", + "nameLocation": "3309:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3324:6:0", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "3316:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3315:16:0" + }, + "src": "3303:29:0" + }, + { + "anonymous": false, + "id": 360, + "name": "Sold", + "nameLocation": "3344:4:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3357:6:0", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "3349:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3348:16:0" + }, + "src": "3338:27:0" + }, + { + "constant": false, + "functionSelector": "fc0c546a", + "id": 363, + "mutability": "mutable", + "name": "token", + "nameLocation": "3387:5:0", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "3373:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 361, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "3373:6:0" + }, + "referencedDeclaration": 68, + "src": "3373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 373, + "nodeType": "Block", + "src": "3422:43:0", + "statements": [ + { + "expression": { + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3433:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3441:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_ERC20Basic_$307_$", + "typeString": "function () returns (contract ERC20Basic)" + }, + "typeName": { + "id": 368, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 367, + "name": "ERC20Basic", + "nodeType": "IdentifierPath", + "referencedDeclaration": 307, + "src": "3445:10:0" + }, + "referencedDeclaration": 307, + "src": "3445:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3441:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + }, + "src": "3433:24:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "3433:24:0" + } + ] + }, + "id": 374, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [], + "src": "3412:2:0" + }, + "returnParameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "3422:0:0" + }, + "scope": 484, + "src": "3401:64:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 387, + "nodeType": "Block", + "src": "3522:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 383, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3556:7:0", + "typeDescriptions": {} + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3556:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 379, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3540:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3540:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3540:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 378, + "id": 386, + "nodeType": "Return", + "src": "3533:37:0" + } + ] + }, + "functionSelector": "b69ef8a8", + "id": 388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balance", + "nameLocation": "3482:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "3489:2:0" + }, + "returnParameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 377, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 388, + "src": "3513:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3512:9:0" + }, + "scope": 484, + "src": "3473:105:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 425, + "nodeType": "Block", + "src": "3616:346:0", + "statements": [ + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "mutability": "mutable", + "name": "amountTobuy", + "nameLocation": "3635:11:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3627:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 395, + "initialValue": { + "expression": { + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3649:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3649:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3627:31:0" + }, + { + "assignments": [ + 397 + ], + "declarations": [ + { + "constant": false, + "id": 397, + "mutability": "mutable", + "name": "dexBalance", + "nameLocation": "3677:10:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3669:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3669:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 405, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 402, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3714:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3706:7:0", + "typeDescriptions": {} + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3706:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 398, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3690:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3690:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3690:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3669:51:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 407, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3807:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 408, + "name": "dexBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "3822:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3807:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3834:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + }, + "value": "Not enough tokens in the reserve" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + } + ], + "id": 406, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3799:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 412, + "nodeType": "ExpressionStatement", + "src": "3799:70:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3895:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3895:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 418, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3907:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3880:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "3880:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3880:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 420, + "nodeType": "ExpressionStatement", + "src": "3880:39:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 422, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3942:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 421, + "name": "Bought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "3935:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3935:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 424, + "nodeType": "EmitStatement", + "src": "3930:24:0" + } + ] + }, + "functionSelector": "a6f2ae3a", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buy", + "nameLocation": "3595:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:2:0" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "3616:0:0" + }, + "scope": 484, + "src": "3586:376:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 482, + "nodeType": "Block", + "src": "4007:359:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 432, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4035:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4026:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746f6b656e73", + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4038:39:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + }, + "value": "You need to sell at least some tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + } + ], + "id": 431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4018:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4018:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "ExpressionStatement", + "src": "4018:60:0" + }, + { + "assignments": [ + 439 + ], + "declarations": [ + { + "constant": false, + "id": 439, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4097:9:0", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "4089:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4089:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 449, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 442, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4125:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4125:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 446, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4137:7:0", + "typeDescriptions": {} + } + }, + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 440, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4109:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "4109:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4089:62:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 451, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "4170:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 452, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4183:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4170:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436865636b2074686520746f6b656e20616c6c6f77616e6365", + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191:27:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + }, + "value": "Check the token allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + } + ], + "id": 450, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4162:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4162:57:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "ExpressionStatement", + "src": "4162:57:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 460, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4249:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4249:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 464, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4269:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4261:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4261:7:0", + "typeDescriptions": {} + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4261:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 466, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4276:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 457, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4230:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "4230:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4230:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 468, + "nodeType": "ExpressionStatement", + "src": "4230:53:0" + }, + { + "expression": { + "arguments": [ + { + "id": 475, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4323:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4302:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4302:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4294:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4294:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4294:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "4294:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 479, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4351:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 478, + "name": "Sold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "4346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4346:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 481, + "nodeType": "EmitStatement", + "src": "4341:17:0" + } + ] + }, + "functionSelector": "e4849b32", + "id": 483, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sell", + "nameLocation": "3979:4:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3992:6:0", + "nodeType": "VariableDeclaration", + "scope": 483, + "src": "3984:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3984:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3983:16:0" + }, + "returnParameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "4007:0:0" + }, + "scope": 484, + "src": "3970:396:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "3283:1086:0", + "usedErrors": [] + } + ], + "src": "39:4332:0" + }, + "legacyAST": { + "absolutePath": "project:/contracts/DEX.sol", + "exportedSymbols": { + "DEX": [ + 484 + ], + "ERC20Basic": [ + 307 + ], + "IERC20": [ + 68 + ], + "SafeMath": [ + 352 + ] + }, + "id": 485, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ], + "nodeType": "PragmaDirective", + "src": "39:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 68, + "linearizedBaseContracts": [ + 68 + ], + "name": "IERC20", + "nameLocation": "76:6:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 6, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "99:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "110:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6, + "src": "136:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "136:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "135:9:0" + }, + "scope": 68, + "src": "90:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 13, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "162:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "account", + "nameLocation": "180:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "172:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "172:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "171:17:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "212:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "211:9:0" + }, + "scope": 68, + "src": "153:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "238:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "owner", + "nameLocation": "256:5:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "248:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "248:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "spender", + "nameLocation": "271:7:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "263:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "263:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "247:32:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "330:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "330:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "329:9:0" + }, + "scope": 68, + "src": "229:110:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 31, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "356:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "373:9:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "365:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "amount", + "nameLocation": "392:6:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "384:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "364:35:0" + }, + "returnParameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "436:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "435:6:0" + }, + "scope": 68, + "src": "347:95:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 40, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "459:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "spender", + "nameLocation": "475:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "467:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "467:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "amount", + "nameLocation": "492:6:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "484:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "466:33:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "518:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "518:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "517:6:0" + }, + "scope": 68, + "src": "450:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "541:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "sender", + "nameLocation": "572:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "564:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "564:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "597:9:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "589:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "589:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "mutability": "mutable", + "name": "amount", + "nameLocation": "625:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "617:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "617:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "553:85:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "657:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 48, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "657:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "656:6:0" + }, + "scope": 68, + "src": "532:131:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "id": 59, + "name": "Transfer", + "nameLocation": "677:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "702:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "686:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 52, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "686:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "724:2:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "708:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "736:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "728:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "728:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "685:57:0" + }, + "src": "671:72:0" + }, + { + "anonymous": false, + "id": 67, + "name": "Approval", + "nameLocation": "755:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "790:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "774:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "822:7:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "806:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 62, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "806:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "848:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "840:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "840:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "763:97:0" + }, + "src": "749:112:0" + } + ], + "scope": 485, + "src": "66:798:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 69, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "891:6:0" + }, + "id": 70, + "nodeType": "InheritanceSpecifier", + "src": "891:6:0" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 307, + "linearizedBaseContracts": [ + 307, + 68 + ], + "name": "ERC20Basic", + "nameLocation": "877:10:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 73, + "mutability": "constant", + "name": "name", + "nameLocation": "928:4:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "905:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 71, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "45524332304261736963", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "935:12:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a79e33b9dc0a948bb61d947e9b93ca6444308158c71b1fc39c80594dbec233e5", + "typeString": "literal_string \"ERC20Basic\"" + }, + "value": "ERC20Basic" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 76, + "mutability": "constant", + "name": "symbol", + "nameLocation": "977:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "954:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 74, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "455243", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "986:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aba1fbc2bbf2303cc281eb9028edd772ae6c0c8a2b10b48e871a8884819f04df", + "typeString": "literal_string \"ERC\"" + }, + "value": "ERC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 79, + "mutability": "constant", + "name": "decimals", + "nameLocation": "1020:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "998:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 77, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "998:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3138", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1031:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "balances", + "nameLocation": "1070:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1042:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 82, + "keyType": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1050:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1042:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "1135:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1087:55:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1087:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 87, + "keyType": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1106:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1125:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "totalSupply_", + "nameLocation": "1159:12:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1151:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1151:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:8:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + }, + "value": "10" + }, + "visibility": "internal" + }, + { + "id": 95, + "libraryName": { + "id": 93, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 352, + "src": "1197:8:0" + }, + "nodeType": "UsingForDirective", + "src": "1191:27:0", + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1210:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 105, + "nodeType": "Block", + "src": "1247:54:0", + "statements": [ + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 98, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1258:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 101, + "indexExpression": { + "expression": { + "id": 99, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1267:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1267:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1258:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1281:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1258:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "1258:35:0" + } + ] + }, + "id": 106, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "1237:2:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [], + "src": "1247:0:0" + }, + "scope": 307, + "src": "1226:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 6 + ], + "body": { + "id": 114, + "nodeType": "Block", + "src": "1371:38:0", + "statements": [ + { + "expression": { + "id": 112, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1389:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 111, + "id": 113, + "nodeType": "Return", + "src": "1382:19:0" + } + ] + }, + "functionSelector": "18160ddd", + "id": 115, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1318:11:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 108, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1344:8:0" + }, + "parameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [], + "src": "1329:2:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "1362:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1361:9:0" + }, + "scope": 307, + "src": "1309:100:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 13 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "1536:46:0", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 123, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1554:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 125, + "indexExpression": { + "id": 124, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "1563:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1554:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 122, + "id": 126, + "nodeType": "Return", + "src": "1547:27:0" + } + ] + }, + "functionSelector": "70a08231", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1426:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 119, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1495:8:0" + }, + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "tokenOwner", + "nameLocation": "1444:10:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1436:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1435:20:0" + }, + "returnParameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1522:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1521:9:0" + }, + "scope": 307, + "src": "1417:165:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 31 + ], + "body": { + "id": 180, + "nodeType": "Block", + "src": "1708:274:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 139, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1727:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 140, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1740:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 143, + "indexExpression": { + "expression": { + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1749:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1749:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1740:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1727:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 138, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1719:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1719:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 146, + "nodeType": "ExpressionStatement", + "src": "1719:42:0" + }, + { + "expression": { + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 147, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1772:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 150, + "indexExpression": { + "expression": { + "id": 148, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1781:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1781:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1772:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 156, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1820:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 151, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1795:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 154, + "indexExpression": { + "expression": { + "id": 152, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1804:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1804:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "1795:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1795:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1772:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "1772:58:0" + }, + { + "expression": { + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1841:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 162, + "indexExpression": { + "id": 161, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1850:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1841:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 167, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1885:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1862:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 165, + "indexExpression": { + "id": 164, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1871:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1862:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "1862:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1862:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1841:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "nodeType": "ExpressionStatement", + "src": "1841:54:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 172, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1920:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1920:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 174, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1932:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 175, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1942:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 171, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1911:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 177, + "nodeType": "EmitStatement", + "src": "1906:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1970:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 137, + "id": 179, + "nodeType": "Return", + "src": "1963:11:0" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1599:8:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 134, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1670:8:0" + }, + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1616:8:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1608:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1608:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "1634:9:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1626:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1607:37:0" + }, + "returnParameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1697:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 135, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1697:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1696:6:0" + }, + "scope": 307, + "src": "1590:392:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 40 + ], + "body": { + "id": 209, + "nodeType": "Block", + "src": "2107:139:0", + "statements": [ + { + "expression": { + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 191, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2118:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 195, + "indexExpression": { + "expression": { + "id": 192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2126:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2126:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2118:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 196, + "indexExpression": { + "id": 194, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2138:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2118:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 197, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2150:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2118:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "2118:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 201, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2184:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2184:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 203, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2196:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 204, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2206:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 200, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2175:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2175:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 206, + "nodeType": "EmitStatement", + "src": "2170:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2234:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 190, + "id": 208, + "nodeType": "Return", + "src": "2227:11:0" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 210, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1999:7:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 187, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2069:8:0" + }, + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2015:8:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2007:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2007:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2033:9:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2025:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2006:37:0" + }, + "returnParameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2096:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 188, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2095:6:0" + }, + "scope": 307, + "src": "1990:256:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 22 + ], + "body": { + "id": 226, + "nodeType": "Block", + "src": "2386:50:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 220, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2404:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 222, + "indexExpression": { + "id": 221, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "2412:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 224, + "indexExpression": { + "id": 223, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "2419:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 219, + "id": 225, + "nodeType": "Return", + "src": "2397:31:0" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "2263:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 216, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2345:8:0" + }, + "parameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2281:5:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2273:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2296:8:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2288:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2272:33:0" + }, + "returnParameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2372:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2372:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2371:9:0" + }, + "scope": 307, + "src": "2254:182:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 51 + ], + "body": { + "id": 305, + "nodeType": "Block", + "src": "2580:387:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 240, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2599:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 241, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2612:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 243, + "indexExpression": { + "id": 242, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2621:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2612:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2599:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2591:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 246, + "nodeType": "ExpressionStatement", + "src": "2591:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 248, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2647:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 249, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 251, + "indexExpression": { + "id": 250, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2668:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 254, + "indexExpression": { + "expression": { + "id": 252, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2675:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2675:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2647:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2639:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "2639:48:0" + }, + { + "expression": { + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 258, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2700:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 260, + "indexExpression": { + "id": 259, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2709:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2700:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 265, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2738:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 261, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2718:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 263, + "indexExpression": { + "id": 262, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2727:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2718:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2718:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2718:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2700:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 268, + "nodeType": "ExpressionStatement", + "src": "2700:48:0" + }, + { + "expression": { + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 269, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 270, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2767:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2759:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 274, + "indexExpression": { + "expression": { + "id": 271, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2774:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2774:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2759:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 282, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2819:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 275, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2788:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 277, + "indexExpression": { + "id": 276, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2796:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 280, + "indexExpression": { + "expression": { + "id": 278, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2803:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2803:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2788:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2788:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2759:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 285, + "nodeType": "ExpressionStatement", + "src": "2759:70:0" + }, + { + "expression": { + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 286, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2840:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 288, + "indexExpression": { + "id": 287, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2849:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2840:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 293, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2878:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 289, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2858:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 291, + "indexExpression": { + "id": 290, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2867:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2858:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "2858:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2840:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 296, + "nodeType": "ExpressionStatement", + "src": "2840:48:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2913:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 299, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2920:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 300, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2927:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2904:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2904:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 302, + "nodeType": "EmitStatement", + "src": "2899:38:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 238, + "id": 304, + "nodeType": "Return", + "src": "2948:11:0" + } + ] + }, + "functionSelector": "23b872dd", + "id": 306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2453:12:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 235, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2556:8:0" + }, + "parameters": { + "id": 234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2484:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2476:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2476:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "buyer", + "nameLocation": "2508:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2500:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 233, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2532:9:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2524:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2524:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2465:83:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2574:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2574:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2573:6:0" + }, + "scope": 307, + "src": "2444:523:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "868:2102:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 352, + "linearizedBaseContracts": [ + 352 + ], + "name": "SafeMath", + "nameLocation": "2982:8:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3065:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 317, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3083:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 318, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3088:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3083:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 316, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3076:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3076:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 321, + "nodeType": "ExpressionStatement", + "src": "3076:14:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 322, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 323, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3112:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 315, + "id": 325, + "nodeType": "Return", + "src": "3101:12:0" + } + ] + }, + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "3007:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "a", + "nameLocation": "3019:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3011:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "b", + "nameLocation": "3030:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3022:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3010:22:0" + }, + "returnParameters": { + "id": 315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3056:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3056:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3055:9:0" + }, + "scope": 352, + "src": "2998:123:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 350, + "nodeType": "Block", + "src": "3196:80:0", + "statements": [ + { + "assignments": [ + 337 + ], + "declarations": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "c", + "nameLocation": "3215:1:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "3207:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 341, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 338, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3219:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 339, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "3223:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3219:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3207:17:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 343, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3242:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 344, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3247:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3242:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 342, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 347, + "nodeType": "ExpressionStatement", + "src": "3235:14:0" + }, + { + "expression": { + "id": 348, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3267:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 335, + "id": 349, + "nodeType": "Return", + "src": "3260:8:0" + } + ] + }, + "id": 351, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "3138:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "a", + "nameLocation": "3150:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3142:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "b", + "nameLocation": "3161:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3153:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3153:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3141:22:0" + }, + "returnParameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3187:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3186:9:0" + }, + "scope": 352, + "src": "3129:147:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 485, + "src": "2974:305:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [ + 307 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 484, + "linearizedBaseContracts": [ + 484 + ], + "name": "DEX", + "nameLocation": "3292:3:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "id": 356, + "name": "Bought", + "nameLocation": "3309:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3324:6:0", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "3316:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3315:16:0" + }, + "src": "3303:29:0" + }, + { + "anonymous": false, + "id": 360, + "name": "Sold", + "nameLocation": "3344:4:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3357:6:0", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "3349:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3348:16:0" + }, + "src": "3338:27:0" + }, + { + "constant": false, + "functionSelector": "fc0c546a", + "id": 363, + "mutability": "mutable", + "name": "token", + "nameLocation": "3387:5:0", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "3373:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 361, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "3373:6:0" + }, + "referencedDeclaration": 68, + "src": "3373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 373, + "nodeType": "Block", + "src": "3422:43:0", + "statements": [ + { + "expression": { + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3433:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3441:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_ERC20Basic_$307_$", + "typeString": "function () returns (contract ERC20Basic)" + }, + "typeName": { + "id": 368, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 367, + "name": "ERC20Basic", + "nodeType": "IdentifierPath", + "referencedDeclaration": 307, + "src": "3445:10:0" + }, + "referencedDeclaration": 307, + "src": "3445:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3441:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + }, + "src": "3433:24:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "3433:24:0" + } + ] + }, + "id": 374, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [], + "src": "3412:2:0" + }, + "returnParameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "3422:0:0" + }, + "scope": 484, + "src": "3401:64:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 387, + "nodeType": "Block", + "src": "3522:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 383, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3556:7:0", + "typeDescriptions": {} + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3556:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 379, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3540:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3540:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3540:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 378, + "id": 386, + "nodeType": "Return", + "src": "3533:37:0" + } + ] + }, + "functionSelector": "b69ef8a8", + "id": 388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balance", + "nameLocation": "3482:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "3489:2:0" + }, + "returnParameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 377, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 388, + "src": "3513:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3512:9:0" + }, + "scope": 484, + "src": "3473:105:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 425, + "nodeType": "Block", + "src": "3616:346:0", + "statements": [ + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "mutability": "mutable", + "name": "amountTobuy", + "nameLocation": "3635:11:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3627:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 395, + "initialValue": { + "expression": { + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3649:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3649:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3627:31:0" + }, + { + "assignments": [ + 397 + ], + "declarations": [ + { + "constant": false, + "id": 397, + "mutability": "mutable", + "name": "dexBalance", + "nameLocation": "3677:10:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3669:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3669:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 405, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 402, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3714:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3706:7:0", + "typeDescriptions": {} + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3706:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 398, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3690:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3690:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3690:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3669:51:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 407, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3807:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 408, + "name": "dexBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "3822:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3807:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3834:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + }, + "value": "Not enough tokens in the reserve" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + } + ], + "id": 406, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3799:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 412, + "nodeType": "ExpressionStatement", + "src": "3799:70:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3895:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3895:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 418, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3907:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3880:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "3880:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3880:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 420, + "nodeType": "ExpressionStatement", + "src": "3880:39:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 422, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3942:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 421, + "name": "Bought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "3935:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3935:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 424, + "nodeType": "EmitStatement", + "src": "3930:24:0" + } + ] + }, + "functionSelector": "a6f2ae3a", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buy", + "nameLocation": "3595:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:2:0" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "3616:0:0" + }, + "scope": 484, + "src": "3586:376:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 482, + "nodeType": "Block", + "src": "4007:359:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 432, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4035:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4026:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746f6b656e73", + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4038:39:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + }, + "value": "You need to sell at least some tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + } + ], + "id": 431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4018:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4018:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "ExpressionStatement", + "src": "4018:60:0" + }, + { + "assignments": [ + 439 + ], + "declarations": [ + { + "constant": false, + "id": 439, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4097:9:0", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "4089:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4089:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 449, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 442, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4125:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4125:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 446, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4137:7:0", + "typeDescriptions": {} + } + }, + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 440, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4109:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "4109:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4089:62:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 451, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "4170:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 452, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4183:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4170:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436865636b2074686520746f6b656e20616c6c6f77616e6365", + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191:27:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + }, + "value": "Check the token allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + } + ], + "id": 450, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4162:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4162:57:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "ExpressionStatement", + "src": "4162:57:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 460, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4249:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4249:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 464, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4269:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4261:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4261:7:0", + "typeDescriptions": {} + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4261:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 466, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4276:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 457, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4230:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "4230:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4230:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 468, + "nodeType": "ExpressionStatement", + "src": "4230:53:0" + }, + { + "expression": { + "arguments": [ + { + "id": 475, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4323:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4302:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4302:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4294:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4294:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4294:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "4294:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 479, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4351:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 478, + "name": "Sold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "4346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4346:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 481, + "nodeType": "EmitStatement", + "src": "4341:17:0" + } + ] + }, + "functionSelector": "e4849b32", + "id": 483, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sell", + "nameLocation": "3979:4:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3992:6:0", + "nodeType": "VariableDeclaration", + "scope": 483, + "src": "3984:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3984:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3983:16:0" + }, + "returnParameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "4007:0:0" + }, + "scope": 484, + "src": "3970:396:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "3283:1086:0", + "usedErrors": [] + } + ], + "src": "39:4332:0" + }, + "compiler": { + "name": "solc", + "version": "0.8.6+commit.11564f7e.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-12T12:40:49.323Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/step34_projects/project-04/frontend/src/abis/IERC20.json b/step34_projects/project-04/frontend/src/abis/IERC20.json new file mode 100644 index 0000000..c224147 --- /dev/null +++ b/step34_projects/project-04/frontend/src/abis/IERC20.json @@ -0,0 +1,12429 @@ +{ + "contractName": "IERC20", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/DEX.sol\":\"IERC20\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/DEX.sol\":{\"keccak256\":\"0x8ab902d0aa29fcda7a73f2139c782cdcfa9d1b1ada8a485622541ae67ae7f4e9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://83452b00f65de11ee4e5af40186a7e9ed3ecaf97c061013cfda581486900991b\",\"dweb:/ipfs/QmXAu2Prr6pXVZvkXxUUek6DoSzj1Ba8hoVJe3kU97NFBF\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: GPL-3.0\r\n\r\npragma solidity ^0.8.6;\r\n\r\ninterface IERC20 {\r\n function totalSupply() external view returns (uint256);\r\n\r\n function balanceOf(address account) external view returns (uint256);\r\n\r\n function allowance(address owner, address spender)\r\n external\r\n view\r\n returns (uint256);\r\n\r\n function transfer(address recipient, uint256 amount)\r\n external\r\n returns (bool);\r\n\r\n function approve(address spender, uint256 amount) external returns (bool);\r\n\r\n function transferFrom(\r\n address sender,\r\n address recipient,\r\n uint256 amount\r\n ) external returns (bool);\r\n\r\n event Transfer(address indexed from, address indexed to, uint256 value);\r\n event Approval(\r\n address indexed owner,\r\n address indexed spender,\r\n uint256 value\r\n );\r\n}\r\n\r\ncontract ERC20Basic is IERC20 {\r\n string public constant name = \"ERC20Basic\";\r\n string public constant symbol = \"ERC\";\r\n uint8 public constant decimals = 18;\r\n\r\n mapping(address => uint256) balances;\r\n\r\n mapping(address => mapping(address => uint256)) allowed;\r\n\r\n uint256 totalSupply_ = 10 ether;\r\n\r\n using SafeMath for uint256;\r\n\r\n constructor() public {\r\n balances[msg.sender] = totalSupply_;\r\n }\r\n\r\n function totalSupply() public view override returns (uint256) {\r\n return totalSupply_;\r\n }\r\n\r\n function balanceOf(address tokenOwner)\r\n public\r\n view\r\n override\r\n returns (uint256)\r\n {\r\n return balances[tokenOwner];\r\n }\r\n\r\n function transfer(address receiver, uint256 numTokens)\r\n public\r\n override\r\n returns (bool)\r\n {\r\n require(numTokens <= balances[msg.sender]);\r\n balances[msg.sender] = balances[msg.sender].sub(numTokens);\r\n balances[receiver] = balances[receiver].add(numTokens);\r\n emit Transfer(msg.sender, receiver, numTokens);\r\n return true;\r\n }\r\n\r\n function approve(address delegate, uint256 numTokens)\r\n public\r\n override\r\n returns (bool)\r\n {\r\n allowed[msg.sender][delegate] = numTokens;\r\n emit Approval(msg.sender, delegate, numTokens);\r\n return true;\r\n }\r\n\r\n function allowance(address owner, address delegate)\r\n public\r\n view\r\n override\r\n returns (uint256)\r\n {\r\n return allowed[owner][delegate];\r\n }\r\n\r\n function transferFrom(\r\n address owner,\r\n address buyer,\r\n uint256 numTokens\r\n ) public override returns (bool) {\r\n require(numTokens <= balances[owner]);\r\n require(numTokens <= allowed[owner][msg.sender]);\r\n\r\n balances[owner] = balances[owner].sub(numTokens);\r\n allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);\r\n balances[buyer] = balances[buyer].add(numTokens);\r\n emit Transfer(owner, buyer, numTokens);\r\n return true;\r\n }\r\n}\r\n\r\nlibrary SafeMath {\r\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n assert(b <= a);\r\n return a - b;\r\n }\r\n\r\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a + b;\r\n assert(c >= a);\r\n return c;\r\n }\r\n}\r\n\r\ncontract DEX {\r\n event Bought(uint256 amount);\r\n event Sold(uint256 amount);\r\n\r\n IERC20 public token;\r\n\r\n constructor() public {\r\n token = new ERC20Basic();\r\n }\r\n\r\n function balance() public view returns (uint256) {\r\n return token.balanceOf(address(this));\r\n }\r\n\r\n function buy() public payable {\r\n uint256 amountTobuy = msg.value;\r\n uint256 dexBalance = token.balanceOf(address(this));\r\n //require(amountTobuy > 0, \"You need to send some Ether\");\r\n require(amountTobuy <= dexBalance, \"Not enough tokens in the reserve\");\r\n token.transfer(msg.sender, amountTobuy);\r\n emit Bought(amountTobuy);\r\n }\r\n\r\n function sell(uint256 amount) public {\r\n require(amount > 0, \"You need to sell at least some tokens\");\r\n uint256 allowance = token.allowance(msg.sender, address(this));\r\n require(allowance >= amount, \"Check the token allowance\");\r\n token.transferFrom(msg.sender, address(this), amount);\r\n payable(msg.sender).transfer(amount);\r\n emit Sold(amount);\r\n }\r\n}\r\n", + "sourcePath": "F:\\Blockchain_Learning\\repo\\defi-dapps-solidity-smart-contracts\\step34_projects\\project-04\\backend\\contracts\\DEX.sol", + "ast": { + "absolutePath": "project:/contracts/DEX.sol", + "exportedSymbols": { + "DEX": [ + 484 + ], + "ERC20Basic": [ + 307 + ], + "IERC20": [ + 68 + ], + "SafeMath": [ + 352 + ] + }, + "id": 485, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ], + "nodeType": "PragmaDirective", + "src": "39:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 68, + "linearizedBaseContracts": [ + 68 + ], + "name": "IERC20", + "nameLocation": "76:6:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 6, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "99:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "110:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6, + "src": "136:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "136:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "135:9:0" + }, + "scope": 68, + "src": "90:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 13, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "162:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "account", + "nameLocation": "180:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "172:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "172:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "171:17:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "212:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "211:9:0" + }, + "scope": 68, + "src": "153:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "238:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "owner", + "nameLocation": "256:5:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "248:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "248:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "spender", + "nameLocation": "271:7:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "263:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "263:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "247:32:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "330:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "330:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "329:9:0" + }, + "scope": 68, + "src": "229:110:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 31, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "356:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "373:9:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "365:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "amount", + "nameLocation": "392:6:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "384:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "364:35:0" + }, + "returnParameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "436:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "435:6:0" + }, + "scope": 68, + "src": "347:95:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 40, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "459:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "spender", + "nameLocation": "475:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "467:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "467:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "amount", + "nameLocation": "492:6:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "484:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "466:33:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "518:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "518:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "517:6:0" + }, + "scope": 68, + "src": "450:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "541:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "sender", + "nameLocation": "572:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "564:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "564:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "597:9:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "589:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "589:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "mutability": "mutable", + "name": "amount", + "nameLocation": "625:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "617:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "617:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "553:85:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "657:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 48, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "657:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "656:6:0" + }, + "scope": 68, + "src": "532:131:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "id": 59, + "name": "Transfer", + "nameLocation": "677:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "702:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "686:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 52, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "686:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "724:2:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "708:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "736:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "728:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "728:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "685:57:0" + }, + "src": "671:72:0" + }, + { + "anonymous": false, + "id": 67, + "name": "Approval", + "nameLocation": "755:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "790:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "774:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "822:7:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "806:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 62, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "806:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "848:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "840:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "840:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "763:97:0" + }, + "src": "749:112:0" + } + ], + "scope": 485, + "src": "66:798:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 69, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "891:6:0" + }, + "id": 70, + "nodeType": "InheritanceSpecifier", + "src": "891:6:0" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 307, + "linearizedBaseContracts": [ + 307, + 68 + ], + "name": "ERC20Basic", + "nameLocation": "877:10:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 73, + "mutability": "constant", + "name": "name", + "nameLocation": "928:4:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "905:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 71, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "45524332304261736963", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "935:12:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a79e33b9dc0a948bb61d947e9b93ca6444308158c71b1fc39c80594dbec233e5", + "typeString": "literal_string \"ERC20Basic\"" + }, + "value": "ERC20Basic" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 76, + "mutability": "constant", + "name": "symbol", + "nameLocation": "977:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "954:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 74, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "455243", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "986:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aba1fbc2bbf2303cc281eb9028edd772ae6c0c8a2b10b48e871a8884819f04df", + "typeString": "literal_string \"ERC\"" + }, + "value": "ERC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 79, + "mutability": "constant", + "name": "decimals", + "nameLocation": "1020:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "998:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 77, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "998:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3138", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1031:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "balances", + "nameLocation": "1070:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1042:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 82, + "keyType": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1050:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1042:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "1135:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1087:55:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1087:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 87, + "keyType": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1106:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1125:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "totalSupply_", + "nameLocation": "1159:12:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1151:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1151:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:8:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + }, + "value": "10" + }, + "visibility": "internal" + }, + { + "id": 95, + "libraryName": { + "id": 93, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 352, + "src": "1197:8:0" + }, + "nodeType": "UsingForDirective", + "src": "1191:27:0", + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1210:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 105, + "nodeType": "Block", + "src": "1247:54:0", + "statements": [ + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 98, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1258:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 101, + "indexExpression": { + "expression": { + "id": 99, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1267:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1267:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1258:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1281:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1258:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "1258:35:0" + } + ] + }, + "id": 106, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "1237:2:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [], + "src": "1247:0:0" + }, + "scope": 307, + "src": "1226:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 6 + ], + "body": { + "id": 114, + "nodeType": "Block", + "src": "1371:38:0", + "statements": [ + { + "expression": { + "id": 112, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1389:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 111, + "id": 113, + "nodeType": "Return", + "src": "1382:19:0" + } + ] + }, + "functionSelector": "18160ddd", + "id": 115, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1318:11:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 108, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1344:8:0" + }, + "parameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [], + "src": "1329:2:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "1362:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1361:9:0" + }, + "scope": 307, + "src": "1309:100:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 13 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "1536:46:0", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 123, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1554:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 125, + "indexExpression": { + "id": 124, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "1563:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1554:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 122, + "id": 126, + "nodeType": "Return", + "src": "1547:27:0" + } + ] + }, + "functionSelector": "70a08231", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1426:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 119, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1495:8:0" + }, + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "tokenOwner", + "nameLocation": "1444:10:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1436:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1435:20:0" + }, + "returnParameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1522:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1521:9:0" + }, + "scope": 307, + "src": "1417:165:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 31 + ], + "body": { + "id": 180, + "nodeType": "Block", + "src": "1708:274:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 139, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1727:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 140, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1740:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 143, + "indexExpression": { + "expression": { + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1749:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1749:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1740:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1727:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 138, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1719:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1719:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 146, + "nodeType": "ExpressionStatement", + "src": "1719:42:0" + }, + { + "expression": { + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 147, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1772:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 150, + "indexExpression": { + "expression": { + "id": 148, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1781:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1781:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1772:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 156, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1820:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 151, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1795:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 154, + "indexExpression": { + "expression": { + "id": 152, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1804:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1804:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "1795:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1795:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1772:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "1772:58:0" + }, + { + "expression": { + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1841:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 162, + "indexExpression": { + "id": 161, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1850:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1841:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 167, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1885:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1862:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 165, + "indexExpression": { + "id": 164, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1871:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1862:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "1862:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1862:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1841:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "nodeType": "ExpressionStatement", + "src": "1841:54:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 172, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1920:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1920:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 174, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1932:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 175, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1942:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 171, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1911:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 177, + "nodeType": "EmitStatement", + "src": "1906:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1970:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 137, + "id": 179, + "nodeType": "Return", + "src": "1963:11:0" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1599:8:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 134, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1670:8:0" + }, + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1616:8:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1608:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1608:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "1634:9:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1626:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1607:37:0" + }, + "returnParameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1697:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 135, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1697:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1696:6:0" + }, + "scope": 307, + "src": "1590:392:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 40 + ], + "body": { + "id": 209, + "nodeType": "Block", + "src": "2107:139:0", + "statements": [ + { + "expression": { + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 191, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2118:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 195, + "indexExpression": { + "expression": { + "id": 192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2126:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2126:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2118:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 196, + "indexExpression": { + "id": 194, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2138:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2118:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 197, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2150:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2118:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "2118:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 201, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2184:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2184:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 203, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2196:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 204, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2206:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 200, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2175:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2175:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 206, + "nodeType": "EmitStatement", + "src": "2170:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2234:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 190, + "id": 208, + "nodeType": "Return", + "src": "2227:11:0" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 210, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1999:7:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 187, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2069:8:0" + }, + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2015:8:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2007:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2007:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2033:9:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2025:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2006:37:0" + }, + "returnParameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2096:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 188, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2095:6:0" + }, + "scope": 307, + "src": "1990:256:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 22 + ], + "body": { + "id": 226, + "nodeType": "Block", + "src": "2386:50:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 220, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2404:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 222, + "indexExpression": { + "id": 221, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "2412:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 224, + "indexExpression": { + "id": 223, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "2419:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 219, + "id": 225, + "nodeType": "Return", + "src": "2397:31:0" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "2263:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 216, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2345:8:0" + }, + "parameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2281:5:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2273:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2296:8:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2288:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2272:33:0" + }, + "returnParameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2372:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2372:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2371:9:0" + }, + "scope": 307, + "src": "2254:182:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 51 + ], + "body": { + "id": 305, + "nodeType": "Block", + "src": "2580:387:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 240, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2599:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 241, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2612:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 243, + "indexExpression": { + "id": 242, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2621:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2612:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2599:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2591:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 246, + "nodeType": "ExpressionStatement", + "src": "2591:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 248, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2647:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 249, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 251, + "indexExpression": { + "id": 250, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2668:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 254, + "indexExpression": { + "expression": { + "id": 252, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2675:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2675:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2647:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2639:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "2639:48:0" + }, + { + "expression": { + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 258, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2700:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 260, + "indexExpression": { + "id": 259, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2709:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2700:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 265, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2738:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 261, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2718:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 263, + "indexExpression": { + "id": 262, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2727:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2718:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2718:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2718:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2700:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 268, + "nodeType": "ExpressionStatement", + "src": "2700:48:0" + }, + { + "expression": { + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 269, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 270, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2767:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2759:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 274, + "indexExpression": { + "expression": { + "id": 271, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2774:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2774:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2759:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 282, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2819:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 275, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2788:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 277, + "indexExpression": { + "id": 276, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2796:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 280, + "indexExpression": { + "expression": { + "id": 278, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2803:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2803:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2788:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2788:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2759:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 285, + "nodeType": "ExpressionStatement", + "src": "2759:70:0" + }, + { + "expression": { + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 286, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2840:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 288, + "indexExpression": { + "id": 287, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2849:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2840:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 293, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2878:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 289, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2858:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 291, + "indexExpression": { + "id": 290, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2867:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2858:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "2858:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2840:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 296, + "nodeType": "ExpressionStatement", + "src": "2840:48:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2913:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 299, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2920:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 300, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2927:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2904:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2904:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 302, + "nodeType": "EmitStatement", + "src": "2899:38:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 238, + "id": 304, + "nodeType": "Return", + "src": "2948:11:0" + } + ] + }, + "functionSelector": "23b872dd", + "id": 306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2453:12:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 235, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2556:8:0" + }, + "parameters": { + "id": 234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2484:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2476:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2476:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "buyer", + "nameLocation": "2508:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2500:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 233, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2532:9:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2524:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2524:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2465:83:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2574:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2574:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2573:6:0" + }, + "scope": 307, + "src": "2444:523:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "868:2102:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 352, + "linearizedBaseContracts": [ + 352 + ], + "name": "SafeMath", + "nameLocation": "2982:8:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3065:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 317, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3083:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 318, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3088:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3083:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 316, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3076:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3076:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 321, + "nodeType": "ExpressionStatement", + "src": "3076:14:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 322, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 323, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3112:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 315, + "id": 325, + "nodeType": "Return", + "src": "3101:12:0" + } + ] + }, + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "3007:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "a", + "nameLocation": "3019:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3011:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "b", + "nameLocation": "3030:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3022:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3010:22:0" + }, + "returnParameters": { + "id": 315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3056:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3056:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3055:9:0" + }, + "scope": 352, + "src": "2998:123:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 350, + "nodeType": "Block", + "src": "3196:80:0", + "statements": [ + { + "assignments": [ + 337 + ], + "declarations": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "c", + "nameLocation": "3215:1:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "3207:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 341, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 338, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3219:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 339, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "3223:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3219:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3207:17:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 343, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3242:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 344, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3247:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3242:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 342, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 347, + "nodeType": "ExpressionStatement", + "src": "3235:14:0" + }, + { + "expression": { + "id": 348, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3267:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 335, + "id": 349, + "nodeType": "Return", + "src": "3260:8:0" + } + ] + }, + "id": 351, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "3138:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "a", + "nameLocation": "3150:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3142:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "b", + "nameLocation": "3161:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3153:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3153:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3141:22:0" + }, + "returnParameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3187:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3186:9:0" + }, + "scope": 352, + "src": "3129:147:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 485, + "src": "2974:305:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [ + 307 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 484, + "linearizedBaseContracts": [ + 484 + ], + "name": "DEX", + "nameLocation": "3292:3:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "id": 356, + "name": "Bought", + "nameLocation": "3309:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3324:6:0", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "3316:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3315:16:0" + }, + "src": "3303:29:0" + }, + { + "anonymous": false, + "id": 360, + "name": "Sold", + "nameLocation": "3344:4:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3357:6:0", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "3349:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3348:16:0" + }, + "src": "3338:27:0" + }, + { + "constant": false, + "functionSelector": "fc0c546a", + "id": 363, + "mutability": "mutable", + "name": "token", + "nameLocation": "3387:5:0", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "3373:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 361, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "3373:6:0" + }, + "referencedDeclaration": 68, + "src": "3373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 373, + "nodeType": "Block", + "src": "3422:43:0", + "statements": [ + { + "expression": { + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3433:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3441:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_ERC20Basic_$307_$", + "typeString": "function () returns (contract ERC20Basic)" + }, + "typeName": { + "id": 368, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 367, + "name": "ERC20Basic", + "nodeType": "IdentifierPath", + "referencedDeclaration": 307, + "src": "3445:10:0" + }, + "referencedDeclaration": 307, + "src": "3445:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3441:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + }, + "src": "3433:24:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "3433:24:0" + } + ] + }, + "id": 374, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [], + "src": "3412:2:0" + }, + "returnParameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "3422:0:0" + }, + "scope": 484, + "src": "3401:64:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 387, + "nodeType": "Block", + "src": "3522:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 383, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3556:7:0", + "typeDescriptions": {} + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3556:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 379, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3540:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3540:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3540:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 378, + "id": 386, + "nodeType": "Return", + "src": "3533:37:0" + } + ] + }, + "functionSelector": "b69ef8a8", + "id": 388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balance", + "nameLocation": "3482:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "3489:2:0" + }, + "returnParameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 377, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 388, + "src": "3513:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3512:9:0" + }, + "scope": 484, + "src": "3473:105:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 425, + "nodeType": "Block", + "src": "3616:346:0", + "statements": [ + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "mutability": "mutable", + "name": "amountTobuy", + "nameLocation": "3635:11:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3627:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 395, + "initialValue": { + "expression": { + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3649:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3649:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3627:31:0" + }, + { + "assignments": [ + 397 + ], + "declarations": [ + { + "constant": false, + "id": 397, + "mutability": "mutable", + "name": "dexBalance", + "nameLocation": "3677:10:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3669:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3669:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 405, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 402, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3714:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3706:7:0", + "typeDescriptions": {} + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3706:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 398, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3690:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3690:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3690:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3669:51:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 407, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3807:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 408, + "name": "dexBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "3822:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3807:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3834:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + }, + "value": "Not enough tokens in the reserve" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + } + ], + "id": 406, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3799:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 412, + "nodeType": "ExpressionStatement", + "src": "3799:70:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3895:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3895:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 418, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3907:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3880:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "3880:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3880:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 420, + "nodeType": "ExpressionStatement", + "src": "3880:39:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 422, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3942:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 421, + "name": "Bought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "3935:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3935:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 424, + "nodeType": "EmitStatement", + "src": "3930:24:0" + } + ] + }, + "functionSelector": "a6f2ae3a", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buy", + "nameLocation": "3595:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:2:0" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "3616:0:0" + }, + "scope": 484, + "src": "3586:376:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 482, + "nodeType": "Block", + "src": "4007:359:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 432, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4035:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4026:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746f6b656e73", + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4038:39:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + }, + "value": "You need to sell at least some tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + } + ], + "id": 431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4018:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4018:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "ExpressionStatement", + "src": "4018:60:0" + }, + { + "assignments": [ + 439 + ], + "declarations": [ + { + "constant": false, + "id": 439, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4097:9:0", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "4089:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4089:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 449, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 442, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4125:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4125:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 446, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4137:7:0", + "typeDescriptions": {} + } + }, + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 440, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4109:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "4109:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4089:62:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 451, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "4170:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 452, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4183:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4170:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436865636b2074686520746f6b656e20616c6c6f77616e6365", + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191:27:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + }, + "value": "Check the token allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + } + ], + "id": 450, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4162:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4162:57:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "ExpressionStatement", + "src": "4162:57:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 460, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4249:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4249:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 464, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4269:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4261:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4261:7:0", + "typeDescriptions": {} + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4261:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 466, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4276:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 457, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4230:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "4230:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4230:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 468, + "nodeType": "ExpressionStatement", + "src": "4230:53:0" + }, + { + "expression": { + "arguments": [ + { + "id": 475, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4323:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4302:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4302:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4294:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4294:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4294:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "4294:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 479, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4351:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 478, + "name": "Sold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "4346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4346:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 481, + "nodeType": "EmitStatement", + "src": "4341:17:0" + } + ] + }, + "functionSelector": "e4849b32", + "id": 483, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sell", + "nameLocation": "3979:4:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3992:6:0", + "nodeType": "VariableDeclaration", + "scope": 483, + "src": "3984:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3984:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3983:16:0" + }, + "returnParameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "4007:0:0" + }, + "scope": 484, + "src": "3970:396:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "3283:1086:0", + "usedErrors": [] + } + ], + "src": "39:4332:0" + }, + "legacyAST": { + "absolutePath": "project:/contracts/DEX.sol", + "exportedSymbols": { + "DEX": [ + 484 + ], + "ERC20Basic": [ + 307 + ], + "IERC20": [ + 68 + ], + "SafeMath": [ + 352 + ] + }, + "id": 485, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ], + "nodeType": "PragmaDirective", + "src": "39:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 68, + "linearizedBaseContracts": [ + 68 + ], + "name": "IERC20", + "nameLocation": "76:6:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 6, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "99:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "110:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6, + "src": "136:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "136:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "135:9:0" + }, + "scope": 68, + "src": "90:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 13, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "162:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "account", + "nameLocation": "180:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "172:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "172:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "171:17:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "212:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "211:9:0" + }, + "scope": 68, + "src": "153:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "238:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "owner", + "nameLocation": "256:5:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "248:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "248:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "spender", + "nameLocation": "271:7:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "263:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "263:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "247:32:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "330:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "330:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "329:9:0" + }, + "scope": 68, + "src": "229:110:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 31, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "356:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "373:9:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "365:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "amount", + "nameLocation": "392:6:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "384:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "364:35:0" + }, + "returnParameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "436:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "435:6:0" + }, + "scope": 68, + "src": "347:95:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 40, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "459:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "spender", + "nameLocation": "475:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "467:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "467:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "amount", + "nameLocation": "492:6:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "484:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "466:33:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "518:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "518:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "517:6:0" + }, + "scope": 68, + "src": "450:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "541:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "sender", + "nameLocation": "572:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "564:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "564:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "597:9:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "589:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "589:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "mutability": "mutable", + "name": "amount", + "nameLocation": "625:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "617:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "617:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "553:85:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "657:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 48, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "657:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "656:6:0" + }, + "scope": 68, + "src": "532:131:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "id": 59, + "name": "Transfer", + "nameLocation": "677:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "702:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "686:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 52, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "686:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "724:2:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "708:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "736:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "728:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "728:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "685:57:0" + }, + "src": "671:72:0" + }, + { + "anonymous": false, + "id": 67, + "name": "Approval", + "nameLocation": "755:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "790:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "774:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "822:7:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "806:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 62, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "806:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "848:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "840:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "840:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "763:97:0" + }, + "src": "749:112:0" + } + ], + "scope": 485, + "src": "66:798:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 69, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "891:6:0" + }, + "id": 70, + "nodeType": "InheritanceSpecifier", + "src": "891:6:0" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 307, + "linearizedBaseContracts": [ + 307, + 68 + ], + "name": "ERC20Basic", + "nameLocation": "877:10:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 73, + "mutability": "constant", + "name": "name", + "nameLocation": "928:4:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "905:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 71, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "45524332304261736963", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "935:12:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a79e33b9dc0a948bb61d947e9b93ca6444308158c71b1fc39c80594dbec233e5", + "typeString": "literal_string \"ERC20Basic\"" + }, + "value": "ERC20Basic" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 76, + "mutability": "constant", + "name": "symbol", + "nameLocation": "977:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "954:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 74, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "455243", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "986:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aba1fbc2bbf2303cc281eb9028edd772ae6c0c8a2b10b48e871a8884819f04df", + "typeString": "literal_string \"ERC\"" + }, + "value": "ERC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 79, + "mutability": "constant", + "name": "decimals", + "nameLocation": "1020:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "998:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 77, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "998:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3138", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1031:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "balances", + "nameLocation": "1070:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1042:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 82, + "keyType": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1050:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1042:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "1135:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1087:55:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1087:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 87, + "keyType": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1106:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1125:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "totalSupply_", + "nameLocation": "1159:12:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1151:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1151:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:8:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + }, + "value": "10" + }, + "visibility": "internal" + }, + { + "id": 95, + "libraryName": { + "id": 93, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 352, + "src": "1197:8:0" + }, + "nodeType": "UsingForDirective", + "src": "1191:27:0", + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1210:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 105, + "nodeType": "Block", + "src": "1247:54:0", + "statements": [ + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 98, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1258:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 101, + "indexExpression": { + "expression": { + "id": 99, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1267:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1267:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1258:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1281:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1258:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "1258:35:0" + } + ] + }, + "id": 106, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "1237:2:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [], + "src": "1247:0:0" + }, + "scope": 307, + "src": "1226:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 6 + ], + "body": { + "id": 114, + "nodeType": "Block", + "src": "1371:38:0", + "statements": [ + { + "expression": { + "id": 112, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1389:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 111, + "id": 113, + "nodeType": "Return", + "src": "1382:19:0" + } + ] + }, + "functionSelector": "18160ddd", + "id": 115, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1318:11:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 108, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1344:8:0" + }, + "parameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [], + "src": "1329:2:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "1362:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1361:9:0" + }, + "scope": 307, + "src": "1309:100:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 13 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "1536:46:0", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 123, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1554:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 125, + "indexExpression": { + "id": 124, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "1563:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1554:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 122, + "id": 126, + "nodeType": "Return", + "src": "1547:27:0" + } + ] + }, + "functionSelector": "70a08231", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1426:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 119, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1495:8:0" + }, + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "tokenOwner", + "nameLocation": "1444:10:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1436:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1435:20:0" + }, + "returnParameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1522:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1521:9:0" + }, + "scope": 307, + "src": "1417:165:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 31 + ], + "body": { + "id": 180, + "nodeType": "Block", + "src": "1708:274:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 139, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1727:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 140, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1740:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 143, + "indexExpression": { + "expression": { + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1749:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1749:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1740:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1727:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 138, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1719:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1719:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 146, + "nodeType": "ExpressionStatement", + "src": "1719:42:0" + }, + { + "expression": { + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 147, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1772:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 150, + "indexExpression": { + "expression": { + "id": 148, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1781:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1781:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1772:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 156, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1820:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 151, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1795:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 154, + "indexExpression": { + "expression": { + "id": 152, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1804:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1804:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "1795:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1795:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1772:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "1772:58:0" + }, + { + "expression": { + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1841:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 162, + "indexExpression": { + "id": 161, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1850:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1841:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 167, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1885:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1862:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 165, + "indexExpression": { + "id": 164, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1871:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1862:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "1862:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1862:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1841:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "nodeType": "ExpressionStatement", + "src": "1841:54:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 172, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1920:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1920:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 174, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1932:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 175, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1942:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 171, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1911:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 177, + "nodeType": "EmitStatement", + "src": "1906:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1970:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 137, + "id": 179, + "nodeType": "Return", + "src": "1963:11:0" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1599:8:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 134, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1670:8:0" + }, + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1616:8:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1608:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1608:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "1634:9:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1626:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1607:37:0" + }, + "returnParameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1697:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 135, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1697:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1696:6:0" + }, + "scope": 307, + "src": "1590:392:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 40 + ], + "body": { + "id": 209, + "nodeType": "Block", + "src": "2107:139:0", + "statements": [ + { + "expression": { + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 191, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2118:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 195, + "indexExpression": { + "expression": { + "id": 192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2126:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2126:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2118:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 196, + "indexExpression": { + "id": 194, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2138:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2118:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 197, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2150:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2118:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "2118:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 201, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2184:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2184:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 203, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2196:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 204, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2206:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 200, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2175:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2175:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 206, + "nodeType": "EmitStatement", + "src": "2170:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2234:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 190, + "id": 208, + "nodeType": "Return", + "src": "2227:11:0" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 210, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1999:7:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 187, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2069:8:0" + }, + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2015:8:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2007:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2007:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2033:9:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2025:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2006:37:0" + }, + "returnParameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2096:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 188, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2095:6:0" + }, + "scope": 307, + "src": "1990:256:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 22 + ], + "body": { + "id": 226, + "nodeType": "Block", + "src": "2386:50:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 220, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2404:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 222, + "indexExpression": { + "id": 221, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "2412:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 224, + "indexExpression": { + "id": 223, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "2419:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 219, + "id": 225, + "nodeType": "Return", + "src": "2397:31:0" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "2263:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 216, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2345:8:0" + }, + "parameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2281:5:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2273:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2296:8:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2288:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2272:33:0" + }, + "returnParameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2372:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2372:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2371:9:0" + }, + "scope": 307, + "src": "2254:182:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 51 + ], + "body": { + "id": 305, + "nodeType": "Block", + "src": "2580:387:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 240, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2599:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 241, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2612:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 243, + "indexExpression": { + "id": 242, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2621:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2612:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2599:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2591:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 246, + "nodeType": "ExpressionStatement", + "src": "2591:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 248, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2647:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 249, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 251, + "indexExpression": { + "id": 250, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2668:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 254, + "indexExpression": { + "expression": { + "id": 252, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2675:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2675:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2647:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2639:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "2639:48:0" + }, + { + "expression": { + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 258, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2700:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 260, + "indexExpression": { + "id": 259, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2709:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2700:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 265, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2738:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 261, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2718:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 263, + "indexExpression": { + "id": 262, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2727:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2718:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2718:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2718:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2700:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 268, + "nodeType": "ExpressionStatement", + "src": "2700:48:0" + }, + { + "expression": { + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 269, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 270, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2767:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2759:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 274, + "indexExpression": { + "expression": { + "id": 271, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2774:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2774:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2759:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 282, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2819:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 275, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2788:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 277, + "indexExpression": { + "id": 276, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2796:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 280, + "indexExpression": { + "expression": { + "id": 278, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2803:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2803:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2788:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2788:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2759:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 285, + "nodeType": "ExpressionStatement", + "src": "2759:70:0" + }, + { + "expression": { + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 286, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2840:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 288, + "indexExpression": { + "id": 287, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2849:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2840:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 293, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2878:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 289, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2858:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 291, + "indexExpression": { + "id": 290, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2867:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2858:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "2858:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2840:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 296, + "nodeType": "ExpressionStatement", + "src": "2840:48:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2913:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 299, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2920:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 300, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2927:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2904:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2904:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 302, + "nodeType": "EmitStatement", + "src": "2899:38:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 238, + "id": 304, + "nodeType": "Return", + "src": "2948:11:0" + } + ] + }, + "functionSelector": "23b872dd", + "id": 306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2453:12:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 235, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2556:8:0" + }, + "parameters": { + "id": 234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2484:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2476:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2476:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "buyer", + "nameLocation": "2508:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2500:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 233, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2532:9:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2524:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2524:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2465:83:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2574:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2574:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2573:6:0" + }, + "scope": 307, + "src": "2444:523:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "868:2102:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 352, + "linearizedBaseContracts": [ + 352 + ], + "name": "SafeMath", + "nameLocation": "2982:8:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3065:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 317, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3083:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 318, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3088:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3083:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 316, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3076:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3076:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 321, + "nodeType": "ExpressionStatement", + "src": "3076:14:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 322, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 323, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3112:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 315, + "id": 325, + "nodeType": "Return", + "src": "3101:12:0" + } + ] + }, + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "3007:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "a", + "nameLocation": "3019:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3011:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "b", + "nameLocation": "3030:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3022:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3010:22:0" + }, + "returnParameters": { + "id": 315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3056:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3056:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3055:9:0" + }, + "scope": 352, + "src": "2998:123:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 350, + "nodeType": "Block", + "src": "3196:80:0", + "statements": [ + { + "assignments": [ + 337 + ], + "declarations": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "c", + "nameLocation": "3215:1:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "3207:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 341, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 338, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3219:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 339, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "3223:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3219:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3207:17:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 343, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3242:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 344, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3247:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3242:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 342, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 347, + "nodeType": "ExpressionStatement", + "src": "3235:14:0" + }, + { + "expression": { + "id": 348, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3267:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 335, + "id": 349, + "nodeType": "Return", + "src": "3260:8:0" + } + ] + }, + "id": 351, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "3138:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "a", + "nameLocation": "3150:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3142:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "b", + "nameLocation": "3161:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3153:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3153:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3141:22:0" + }, + "returnParameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3187:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3186:9:0" + }, + "scope": 352, + "src": "3129:147:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 485, + "src": "2974:305:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [ + 307 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 484, + "linearizedBaseContracts": [ + 484 + ], + "name": "DEX", + "nameLocation": "3292:3:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "id": 356, + "name": "Bought", + "nameLocation": "3309:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3324:6:0", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "3316:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3315:16:0" + }, + "src": "3303:29:0" + }, + { + "anonymous": false, + "id": 360, + "name": "Sold", + "nameLocation": "3344:4:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3357:6:0", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "3349:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3348:16:0" + }, + "src": "3338:27:0" + }, + { + "constant": false, + "functionSelector": "fc0c546a", + "id": 363, + "mutability": "mutable", + "name": "token", + "nameLocation": "3387:5:0", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "3373:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 361, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "3373:6:0" + }, + "referencedDeclaration": 68, + "src": "3373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 373, + "nodeType": "Block", + "src": "3422:43:0", + "statements": [ + { + "expression": { + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3433:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3441:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_ERC20Basic_$307_$", + "typeString": "function () returns (contract ERC20Basic)" + }, + "typeName": { + "id": 368, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 367, + "name": "ERC20Basic", + "nodeType": "IdentifierPath", + "referencedDeclaration": 307, + "src": "3445:10:0" + }, + "referencedDeclaration": 307, + "src": "3445:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3441:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + }, + "src": "3433:24:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "3433:24:0" + } + ] + }, + "id": 374, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [], + "src": "3412:2:0" + }, + "returnParameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "3422:0:0" + }, + "scope": 484, + "src": "3401:64:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 387, + "nodeType": "Block", + "src": "3522:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 383, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3556:7:0", + "typeDescriptions": {} + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3556:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 379, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3540:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3540:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3540:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 378, + "id": 386, + "nodeType": "Return", + "src": "3533:37:0" + } + ] + }, + "functionSelector": "b69ef8a8", + "id": 388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balance", + "nameLocation": "3482:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "3489:2:0" + }, + "returnParameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 377, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 388, + "src": "3513:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3512:9:0" + }, + "scope": 484, + "src": "3473:105:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 425, + "nodeType": "Block", + "src": "3616:346:0", + "statements": [ + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "mutability": "mutable", + "name": "amountTobuy", + "nameLocation": "3635:11:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3627:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 395, + "initialValue": { + "expression": { + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3649:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3649:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3627:31:0" + }, + { + "assignments": [ + 397 + ], + "declarations": [ + { + "constant": false, + "id": 397, + "mutability": "mutable", + "name": "dexBalance", + "nameLocation": "3677:10:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3669:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3669:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 405, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 402, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3714:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3706:7:0", + "typeDescriptions": {} + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3706:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 398, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3690:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3690:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3690:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3669:51:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 407, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3807:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 408, + "name": "dexBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "3822:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3807:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3834:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + }, + "value": "Not enough tokens in the reserve" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + } + ], + "id": 406, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3799:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 412, + "nodeType": "ExpressionStatement", + "src": "3799:70:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3895:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3895:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 418, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3907:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3880:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "3880:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3880:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 420, + "nodeType": "ExpressionStatement", + "src": "3880:39:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 422, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3942:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 421, + "name": "Bought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "3935:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3935:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 424, + "nodeType": "EmitStatement", + "src": "3930:24:0" + } + ] + }, + "functionSelector": "a6f2ae3a", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buy", + "nameLocation": "3595:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:2:0" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "3616:0:0" + }, + "scope": 484, + "src": "3586:376:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 482, + "nodeType": "Block", + "src": "4007:359:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 432, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4035:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4026:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746f6b656e73", + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4038:39:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + }, + "value": "You need to sell at least some tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + } + ], + "id": 431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4018:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4018:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "ExpressionStatement", + "src": "4018:60:0" + }, + { + "assignments": [ + 439 + ], + "declarations": [ + { + "constant": false, + "id": 439, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4097:9:0", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "4089:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4089:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 449, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 442, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4125:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4125:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 446, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4137:7:0", + "typeDescriptions": {} + } + }, + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 440, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4109:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "4109:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4089:62:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 451, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "4170:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 452, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4183:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4170:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436865636b2074686520746f6b656e20616c6c6f77616e6365", + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191:27:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + }, + "value": "Check the token allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + } + ], + "id": 450, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4162:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4162:57:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "ExpressionStatement", + "src": "4162:57:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 460, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4249:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4249:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 464, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4269:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4261:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4261:7:0", + "typeDescriptions": {} + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4261:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 466, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4276:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 457, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4230:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "4230:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4230:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 468, + "nodeType": "ExpressionStatement", + "src": "4230:53:0" + }, + { + "expression": { + "arguments": [ + { + "id": 475, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4323:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4302:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4302:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4294:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4294:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4294:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "4294:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 479, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4351:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 478, + "name": "Sold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "4346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4346:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 481, + "nodeType": "EmitStatement", + "src": "4341:17:0" + } + ] + }, + "functionSelector": "e4849b32", + "id": 483, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sell", + "nameLocation": "3979:4:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3992:6:0", + "nodeType": "VariableDeclaration", + "scope": 483, + "src": "3984:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3984:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3983:16:0" + }, + "returnParameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "4007:0:0" + }, + "scope": 484, + "src": "3970:396:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "3283:1086:0", + "usedErrors": [] + } + ], + "src": "39:4332:0" + }, + "compiler": { + "name": "solc", + "version": "0.8.6+commit.11564f7e.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-12T12:40:49.353Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/step34_projects/project-04/frontend/src/abis/SafeMath.json b/step34_projects/project-04/frontend/src/abis/SafeMath.json new file mode 100644 index 0000000..d204678 --- /dev/null +++ b/step34_projects/project-04/frontend/src/abis/SafeMath.json @@ -0,0 +1,12245 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/DEX.sol\":\"SafeMath\"},\"evmVersion\":\"berlin\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/DEX.sol\":{\"keccak256\":\"0x8ab902d0aa29fcda7a73f2139c782cdcfa9d1b1ada8a485622541ae67ae7f4e9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://83452b00f65de11ee4e5af40186a7e9ed3ecaf97c061013cfda581486900991b\",\"dweb:/ipfs/QmXAu2Prr6pXVZvkXxUUek6DoSzj1Ba8hoVJe3kU97NFBF\"]}},\"version\":1}", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec011a55a5db4992a591caae9816e063a93857a087e54dd5e70af0a9cbe8773264736f6c63430008060033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec011a55a5db4992a591caae9816e063a93857a087e54dd5e70af0a9cbe8773264736f6c63430008060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "2974:305:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "2974:305:0:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: GPL-3.0\r\n\r\npragma solidity ^0.8.6;\r\n\r\ninterface IERC20 {\r\n function totalSupply() external view returns (uint256);\r\n\r\n function balanceOf(address account) external view returns (uint256);\r\n\r\n function allowance(address owner, address spender)\r\n external\r\n view\r\n returns (uint256);\r\n\r\n function transfer(address recipient, uint256 amount)\r\n external\r\n returns (bool);\r\n\r\n function approve(address spender, uint256 amount) external returns (bool);\r\n\r\n function transferFrom(\r\n address sender,\r\n address recipient,\r\n uint256 amount\r\n ) external returns (bool);\r\n\r\n event Transfer(address indexed from, address indexed to, uint256 value);\r\n event Approval(\r\n address indexed owner,\r\n address indexed spender,\r\n uint256 value\r\n );\r\n}\r\n\r\ncontract ERC20Basic is IERC20 {\r\n string public constant name = \"ERC20Basic\";\r\n string public constant symbol = \"ERC\";\r\n uint8 public constant decimals = 18;\r\n\r\n mapping(address => uint256) balances;\r\n\r\n mapping(address => mapping(address => uint256)) allowed;\r\n\r\n uint256 totalSupply_ = 10 ether;\r\n\r\n using SafeMath for uint256;\r\n\r\n constructor() public {\r\n balances[msg.sender] = totalSupply_;\r\n }\r\n\r\n function totalSupply() public view override returns (uint256) {\r\n return totalSupply_;\r\n }\r\n\r\n function balanceOf(address tokenOwner)\r\n public\r\n view\r\n override\r\n returns (uint256)\r\n {\r\n return balances[tokenOwner];\r\n }\r\n\r\n function transfer(address receiver, uint256 numTokens)\r\n public\r\n override\r\n returns (bool)\r\n {\r\n require(numTokens <= balances[msg.sender]);\r\n balances[msg.sender] = balances[msg.sender].sub(numTokens);\r\n balances[receiver] = balances[receiver].add(numTokens);\r\n emit Transfer(msg.sender, receiver, numTokens);\r\n return true;\r\n }\r\n\r\n function approve(address delegate, uint256 numTokens)\r\n public\r\n override\r\n returns (bool)\r\n {\r\n allowed[msg.sender][delegate] = numTokens;\r\n emit Approval(msg.sender, delegate, numTokens);\r\n return true;\r\n }\r\n\r\n function allowance(address owner, address delegate)\r\n public\r\n view\r\n override\r\n returns (uint256)\r\n {\r\n return allowed[owner][delegate];\r\n }\r\n\r\n function transferFrom(\r\n address owner,\r\n address buyer,\r\n uint256 numTokens\r\n ) public override returns (bool) {\r\n require(numTokens <= balances[owner]);\r\n require(numTokens <= allowed[owner][msg.sender]);\r\n\r\n balances[owner] = balances[owner].sub(numTokens);\r\n allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);\r\n balances[buyer] = balances[buyer].add(numTokens);\r\n emit Transfer(owner, buyer, numTokens);\r\n return true;\r\n }\r\n}\r\n\r\nlibrary SafeMath {\r\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n assert(b <= a);\r\n return a - b;\r\n }\r\n\r\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a + b;\r\n assert(c >= a);\r\n return c;\r\n }\r\n}\r\n\r\ncontract DEX {\r\n event Bought(uint256 amount);\r\n event Sold(uint256 amount);\r\n\r\n IERC20 public token;\r\n\r\n constructor() public {\r\n token = new ERC20Basic();\r\n }\r\n\r\n function balance() public view returns (uint256) {\r\n return token.balanceOf(address(this));\r\n }\r\n\r\n function buy() public payable {\r\n uint256 amountTobuy = msg.value;\r\n uint256 dexBalance = token.balanceOf(address(this));\r\n //require(amountTobuy > 0, \"You need to send some Ether\");\r\n require(amountTobuy <= dexBalance, \"Not enough tokens in the reserve\");\r\n token.transfer(msg.sender, amountTobuy);\r\n emit Bought(amountTobuy);\r\n }\r\n\r\n function sell(uint256 amount) public {\r\n require(amount > 0, \"You need to sell at least some tokens\");\r\n uint256 allowance = token.allowance(msg.sender, address(this));\r\n require(allowance >= amount, \"Check the token allowance\");\r\n token.transferFrom(msg.sender, address(this), amount);\r\n payable(msg.sender).transfer(amount);\r\n emit Sold(amount);\r\n }\r\n}\r\n", + "sourcePath": "F:\\Blockchain_Learning\\repo\\defi-dapps-solidity-smart-contracts\\step34_projects\\project-04\\backend\\contracts\\DEX.sol", + "ast": { + "absolutePath": "project:/contracts/DEX.sol", + "exportedSymbols": { + "DEX": [ + 484 + ], + "ERC20Basic": [ + 307 + ], + "IERC20": [ + 68 + ], + "SafeMath": [ + 352 + ] + }, + "id": 485, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ], + "nodeType": "PragmaDirective", + "src": "39:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 68, + "linearizedBaseContracts": [ + 68 + ], + "name": "IERC20", + "nameLocation": "76:6:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 6, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "99:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "110:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6, + "src": "136:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "136:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "135:9:0" + }, + "scope": 68, + "src": "90:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 13, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "162:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "account", + "nameLocation": "180:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "172:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "172:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "171:17:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "212:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "211:9:0" + }, + "scope": 68, + "src": "153:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "238:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "owner", + "nameLocation": "256:5:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "248:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "248:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "spender", + "nameLocation": "271:7:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "263:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "263:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "247:32:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "330:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "330:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "329:9:0" + }, + "scope": 68, + "src": "229:110:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 31, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "356:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "373:9:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "365:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "amount", + "nameLocation": "392:6:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "384:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "364:35:0" + }, + "returnParameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "436:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "435:6:0" + }, + "scope": 68, + "src": "347:95:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 40, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "459:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "spender", + "nameLocation": "475:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "467:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "467:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "amount", + "nameLocation": "492:6:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "484:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "466:33:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "518:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "518:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "517:6:0" + }, + "scope": 68, + "src": "450:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "541:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "sender", + "nameLocation": "572:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "564:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "564:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "597:9:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "589:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "589:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "mutability": "mutable", + "name": "amount", + "nameLocation": "625:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "617:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "617:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "553:85:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "657:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 48, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "657:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "656:6:0" + }, + "scope": 68, + "src": "532:131:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "id": 59, + "name": "Transfer", + "nameLocation": "677:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "702:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "686:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 52, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "686:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "724:2:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "708:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "736:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "728:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "728:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "685:57:0" + }, + "src": "671:72:0" + }, + { + "anonymous": false, + "id": 67, + "name": "Approval", + "nameLocation": "755:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "790:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "774:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "822:7:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "806:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 62, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "806:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "848:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "840:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "840:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "763:97:0" + }, + "src": "749:112:0" + } + ], + "scope": 485, + "src": "66:798:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 69, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "891:6:0" + }, + "id": 70, + "nodeType": "InheritanceSpecifier", + "src": "891:6:0" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 307, + "linearizedBaseContracts": [ + 307, + 68 + ], + "name": "ERC20Basic", + "nameLocation": "877:10:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 73, + "mutability": "constant", + "name": "name", + "nameLocation": "928:4:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "905:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 71, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "45524332304261736963", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "935:12:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a79e33b9dc0a948bb61d947e9b93ca6444308158c71b1fc39c80594dbec233e5", + "typeString": "literal_string \"ERC20Basic\"" + }, + "value": "ERC20Basic" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 76, + "mutability": "constant", + "name": "symbol", + "nameLocation": "977:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "954:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 74, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "455243", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "986:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aba1fbc2bbf2303cc281eb9028edd772ae6c0c8a2b10b48e871a8884819f04df", + "typeString": "literal_string \"ERC\"" + }, + "value": "ERC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 79, + "mutability": "constant", + "name": "decimals", + "nameLocation": "1020:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "998:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 77, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "998:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3138", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1031:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "balances", + "nameLocation": "1070:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1042:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 82, + "keyType": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1050:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1042:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "1135:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1087:55:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1087:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 87, + "keyType": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1106:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1125:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "totalSupply_", + "nameLocation": "1159:12:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1151:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1151:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:8:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + }, + "value": "10" + }, + "visibility": "internal" + }, + { + "id": 95, + "libraryName": { + "id": 93, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 352, + "src": "1197:8:0" + }, + "nodeType": "UsingForDirective", + "src": "1191:27:0", + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1210:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 105, + "nodeType": "Block", + "src": "1247:54:0", + "statements": [ + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 98, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1258:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 101, + "indexExpression": { + "expression": { + "id": 99, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1267:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1267:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1258:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1281:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1258:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "1258:35:0" + } + ] + }, + "id": 106, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "1237:2:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [], + "src": "1247:0:0" + }, + "scope": 307, + "src": "1226:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 6 + ], + "body": { + "id": 114, + "nodeType": "Block", + "src": "1371:38:0", + "statements": [ + { + "expression": { + "id": 112, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1389:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 111, + "id": 113, + "nodeType": "Return", + "src": "1382:19:0" + } + ] + }, + "functionSelector": "18160ddd", + "id": 115, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1318:11:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 108, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1344:8:0" + }, + "parameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [], + "src": "1329:2:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "1362:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1361:9:0" + }, + "scope": 307, + "src": "1309:100:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 13 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "1536:46:0", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 123, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1554:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 125, + "indexExpression": { + "id": 124, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "1563:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1554:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 122, + "id": 126, + "nodeType": "Return", + "src": "1547:27:0" + } + ] + }, + "functionSelector": "70a08231", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1426:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 119, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1495:8:0" + }, + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "tokenOwner", + "nameLocation": "1444:10:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1436:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1435:20:0" + }, + "returnParameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1522:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1521:9:0" + }, + "scope": 307, + "src": "1417:165:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 31 + ], + "body": { + "id": 180, + "nodeType": "Block", + "src": "1708:274:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 139, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1727:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 140, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1740:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 143, + "indexExpression": { + "expression": { + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1749:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1749:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1740:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1727:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 138, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1719:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1719:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 146, + "nodeType": "ExpressionStatement", + "src": "1719:42:0" + }, + { + "expression": { + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 147, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1772:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 150, + "indexExpression": { + "expression": { + "id": 148, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1781:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1781:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1772:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 156, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1820:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 151, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1795:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 154, + "indexExpression": { + "expression": { + "id": 152, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1804:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1804:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "1795:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1795:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1772:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "1772:58:0" + }, + { + "expression": { + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1841:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 162, + "indexExpression": { + "id": 161, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1850:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1841:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 167, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1885:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1862:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 165, + "indexExpression": { + "id": 164, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1871:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1862:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "1862:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1862:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1841:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "nodeType": "ExpressionStatement", + "src": "1841:54:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 172, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1920:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1920:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 174, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1932:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 175, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1942:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 171, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1911:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 177, + "nodeType": "EmitStatement", + "src": "1906:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1970:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 137, + "id": 179, + "nodeType": "Return", + "src": "1963:11:0" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1599:8:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 134, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1670:8:0" + }, + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1616:8:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1608:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1608:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "1634:9:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1626:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1607:37:0" + }, + "returnParameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1697:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 135, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1697:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1696:6:0" + }, + "scope": 307, + "src": "1590:392:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 40 + ], + "body": { + "id": 209, + "nodeType": "Block", + "src": "2107:139:0", + "statements": [ + { + "expression": { + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 191, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2118:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 195, + "indexExpression": { + "expression": { + "id": 192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2126:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2126:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2118:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 196, + "indexExpression": { + "id": 194, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2138:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2118:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 197, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2150:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2118:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "2118:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 201, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2184:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2184:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 203, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2196:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 204, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2206:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 200, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2175:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2175:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 206, + "nodeType": "EmitStatement", + "src": "2170:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2234:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 190, + "id": 208, + "nodeType": "Return", + "src": "2227:11:0" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 210, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1999:7:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 187, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2069:8:0" + }, + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2015:8:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2007:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2007:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2033:9:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2025:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2006:37:0" + }, + "returnParameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2096:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 188, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2095:6:0" + }, + "scope": 307, + "src": "1990:256:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 22 + ], + "body": { + "id": 226, + "nodeType": "Block", + "src": "2386:50:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 220, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2404:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 222, + "indexExpression": { + "id": 221, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "2412:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 224, + "indexExpression": { + "id": 223, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "2419:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 219, + "id": 225, + "nodeType": "Return", + "src": "2397:31:0" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "2263:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 216, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2345:8:0" + }, + "parameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2281:5:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2273:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2296:8:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2288:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2272:33:0" + }, + "returnParameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2372:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2372:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2371:9:0" + }, + "scope": 307, + "src": "2254:182:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 51 + ], + "body": { + "id": 305, + "nodeType": "Block", + "src": "2580:387:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 240, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2599:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 241, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2612:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 243, + "indexExpression": { + "id": 242, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2621:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2612:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2599:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2591:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 246, + "nodeType": "ExpressionStatement", + "src": "2591:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 248, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2647:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 249, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 251, + "indexExpression": { + "id": 250, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2668:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 254, + "indexExpression": { + "expression": { + "id": 252, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2675:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2675:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2647:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2639:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "2639:48:0" + }, + { + "expression": { + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 258, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2700:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 260, + "indexExpression": { + "id": 259, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2709:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2700:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 265, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2738:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 261, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2718:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 263, + "indexExpression": { + "id": 262, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2727:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2718:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2718:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2718:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2700:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 268, + "nodeType": "ExpressionStatement", + "src": "2700:48:0" + }, + { + "expression": { + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 269, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 270, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2767:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2759:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 274, + "indexExpression": { + "expression": { + "id": 271, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2774:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2774:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2759:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 282, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2819:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 275, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2788:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 277, + "indexExpression": { + "id": 276, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2796:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 280, + "indexExpression": { + "expression": { + "id": 278, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2803:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2803:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2788:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2788:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2759:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 285, + "nodeType": "ExpressionStatement", + "src": "2759:70:0" + }, + { + "expression": { + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 286, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2840:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 288, + "indexExpression": { + "id": 287, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2849:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2840:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 293, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2878:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 289, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2858:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 291, + "indexExpression": { + "id": 290, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2867:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2858:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "2858:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2840:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 296, + "nodeType": "ExpressionStatement", + "src": "2840:48:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2913:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 299, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2920:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 300, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2927:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2904:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2904:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 302, + "nodeType": "EmitStatement", + "src": "2899:38:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 238, + "id": 304, + "nodeType": "Return", + "src": "2948:11:0" + } + ] + }, + "functionSelector": "23b872dd", + "id": 306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2453:12:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 235, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2556:8:0" + }, + "parameters": { + "id": 234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2484:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2476:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2476:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "buyer", + "nameLocation": "2508:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2500:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 233, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2532:9:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2524:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2524:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2465:83:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2574:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2574:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2573:6:0" + }, + "scope": 307, + "src": "2444:523:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "868:2102:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 352, + "linearizedBaseContracts": [ + 352 + ], + "name": "SafeMath", + "nameLocation": "2982:8:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3065:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 317, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3083:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 318, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3088:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3083:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 316, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3076:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3076:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 321, + "nodeType": "ExpressionStatement", + "src": "3076:14:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 322, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 323, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3112:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 315, + "id": 325, + "nodeType": "Return", + "src": "3101:12:0" + } + ] + }, + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "3007:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "a", + "nameLocation": "3019:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3011:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "b", + "nameLocation": "3030:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3022:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3010:22:0" + }, + "returnParameters": { + "id": 315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3056:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3056:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3055:9:0" + }, + "scope": 352, + "src": "2998:123:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 350, + "nodeType": "Block", + "src": "3196:80:0", + "statements": [ + { + "assignments": [ + 337 + ], + "declarations": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "c", + "nameLocation": "3215:1:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "3207:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 341, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 338, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3219:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 339, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "3223:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3219:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3207:17:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 343, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3242:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 344, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3247:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3242:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 342, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 347, + "nodeType": "ExpressionStatement", + "src": "3235:14:0" + }, + { + "expression": { + "id": 348, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3267:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 335, + "id": 349, + "nodeType": "Return", + "src": "3260:8:0" + } + ] + }, + "id": 351, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "3138:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "a", + "nameLocation": "3150:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3142:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "b", + "nameLocation": "3161:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3153:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3153:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3141:22:0" + }, + "returnParameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3187:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3186:9:0" + }, + "scope": 352, + "src": "3129:147:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 485, + "src": "2974:305:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [ + 307 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 484, + "linearizedBaseContracts": [ + 484 + ], + "name": "DEX", + "nameLocation": "3292:3:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "id": 356, + "name": "Bought", + "nameLocation": "3309:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3324:6:0", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "3316:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3315:16:0" + }, + "src": "3303:29:0" + }, + { + "anonymous": false, + "id": 360, + "name": "Sold", + "nameLocation": "3344:4:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3357:6:0", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "3349:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3348:16:0" + }, + "src": "3338:27:0" + }, + { + "constant": false, + "functionSelector": "fc0c546a", + "id": 363, + "mutability": "mutable", + "name": "token", + "nameLocation": "3387:5:0", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "3373:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 361, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "3373:6:0" + }, + "referencedDeclaration": 68, + "src": "3373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 373, + "nodeType": "Block", + "src": "3422:43:0", + "statements": [ + { + "expression": { + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3433:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3441:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_ERC20Basic_$307_$", + "typeString": "function () returns (contract ERC20Basic)" + }, + "typeName": { + "id": 368, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 367, + "name": "ERC20Basic", + "nodeType": "IdentifierPath", + "referencedDeclaration": 307, + "src": "3445:10:0" + }, + "referencedDeclaration": 307, + "src": "3445:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3441:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + }, + "src": "3433:24:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "3433:24:0" + } + ] + }, + "id": 374, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [], + "src": "3412:2:0" + }, + "returnParameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "3422:0:0" + }, + "scope": 484, + "src": "3401:64:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 387, + "nodeType": "Block", + "src": "3522:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 383, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3556:7:0", + "typeDescriptions": {} + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3556:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 379, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3540:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3540:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3540:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 378, + "id": 386, + "nodeType": "Return", + "src": "3533:37:0" + } + ] + }, + "functionSelector": "b69ef8a8", + "id": 388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balance", + "nameLocation": "3482:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "3489:2:0" + }, + "returnParameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 377, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 388, + "src": "3513:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3512:9:0" + }, + "scope": 484, + "src": "3473:105:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 425, + "nodeType": "Block", + "src": "3616:346:0", + "statements": [ + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "mutability": "mutable", + "name": "amountTobuy", + "nameLocation": "3635:11:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3627:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 395, + "initialValue": { + "expression": { + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3649:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3649:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3627:31:0" + }, + { + "assignments": [ + 397 + ], + "declarations": [ + { + "constant": false, + "id": 397, + "mutability": "mutable", + "name": "dexBalance", + "nameLocation": "3677:10:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3669:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3669:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 405, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 402, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3714:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3706:7:0", + "typeDescriptions": {} + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3706:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 398, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3690:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3690:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3690:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3669:51:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 407, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3807:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 408, + "name": "dexBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "3822:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3807:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3834:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + }, + "value": "Not enough tokens in the reserve" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + } + ], + "id": 406, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3799:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 412, + "nodeType": "ExpressionStatement", + "src": "3799:70:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3895:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3895:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 418, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3907:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3880:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "3880:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3880:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 420, + "nodeType": "ExpressionStatement", + "src": "3880:39:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 422, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3942:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 421, + "name": "Bought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "3935:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3935:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 424, + "nodeType": "EmitStatement", + "src": "3930:24:0" + } + ] + }, + "functionSelector": "a6f2ae3a", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buy", + "nameLocation": "3595:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:2:0" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "3616:0:0" + }, + "scope": 484, + "src": "3586:376:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 482, + "nodeType": "Block", + "src": "4007:359:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 432, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4035:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4026:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746f6b656e73", + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4038:39:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + }, + "value": "You need to sell at least some tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + } + ], + "id": 431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4018:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4018:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "ExpressionStatement", + "src": "4018:60:0" + }, + { + "assignments": [ + 439 + ], + "declarations": [ + { + "constant": false, + "id": 439, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4097:9:0", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "4089:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4089:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 449, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 442, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4125:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4125:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 446, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4137:7:0", + "typeDescriptions": {} + } + }, + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 440, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4109:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "4109:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4089:62:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 451, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "4170:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 452, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4183:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4170:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436865636b2074686520746f6b656e20616c6c6f77616e6365", + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191:27:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + }, + "value": "Check the token allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + } + ], + "id": 450, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4162:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4162:57:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "ExpressionStatement", + "src": "4162:57:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 460, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4249:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4249:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 464, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4269:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4261:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4261:7:0", + "typeDescriptions": {} + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4261:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 466, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4276:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 457, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4230:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "4230:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4230:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 468, + "nodeType": "ExpressionStatement", + "src": "4230:53:0" + }, + { + "expression": { + "arguments": [ + { + "id": 475, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4323:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4302:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4302:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4294:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4294:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4294:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "4294:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 479, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4351:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 478, + "name": "Sold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "4346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4346:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 481, + "nodeType": "EmitStatement", + "src": "4341:17:0" + } + ] + }, + "functionSelector": "e4849b32", + "id": 483, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sell", + "nameLocation": "3979:4:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3992:6:0", + "nodeType": "VariableDeclaration", + "scope": 483, + "src": "3984:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3984:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3983:16:0" + }, + "returnParameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "4007:0:0" + }, + "scope": 484, + "src": "3970:396:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "3283:1086:0", + "usedErrors": [] + } + ], + "src": "39:4332:0" + }, + "legacyAST": { + "absolutePath": "project:/contracts/DEX.sol", + "exportedSymbols": { + "DEX": [ + 484 + ], + "ERC20Basic": [ + 307 + ], + "IERC20": [ + 68 + ], + "SafeMath": [ + 352 + ] + }, + "id": 485, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ], + "nodeType": "PragmaDirective", + "src": "39:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 68, + "linearizedBaseContracts": [ + 68 + ], + "name": "IERC20", + "nameLocation": "76:6:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "18160ddd", + "id": 6, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "99:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "110:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6, + "src": "136:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "136:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "135:9:0" + }, + "scope": 68, + "src": "90:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 13, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "162:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "account", + "nameLocation": "180:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "172:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "172:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "171:17:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "212:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "211:9:0" + }, + "scope": 68, + "src": "153:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "238:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "owner", + "nameLocation": "256:5:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "248:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "248:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "spender", + "nameLocation": "271:7:0", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "263:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "263:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "247:32:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "330:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "330:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "329:9:0" + }, + "scope": 68, + "src": "229:110:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 31, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "356:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "373:9:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "365:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "amount", + "nameLocation": "392:6:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "384:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "364:35:0" + }, + "returnParameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "436:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "435:6:0" + }, + "scope": 68, + "src": "347:95:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 40, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "459:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "spender", + "nameLocation": "475:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "467:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "467:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "amount", + "nameLocation": "492:6:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "484:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "466:33:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "518:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "518:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "517:6:0" + }, + "scope": 68, + "src": "450:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "541:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "sender", + "nameLocation": "572:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "564:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "564:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "597:9:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "589:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "589:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "mutability": "mutable", + "name": "amount", + "nameLocation": "625:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "617:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "617:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "553:85:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "657:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 48, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "657:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "656:6:0" + }, + "scope": 68, + "src": "532:131:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "id": 59, + "name": "Transfer", + "nameLocation": "677:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "702:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "686:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 52, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "686:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "724:2:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "708:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "736:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "728:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "728:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "685:57:0" + }, + "src": "671:72:0" + }, + { + "anonymous": false, + "id": 67, + "name": "Approval", + "nameLocation": "755:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "790:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "774:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "822:7:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "806:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 62, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "806:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "848:5:0", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "840:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "840:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "763:97:0" + }, + "src": "749:112:0" + } + ], + "scope": 485, + "src": "66:798:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 69, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "891:6:0" + }, + "id": 70, + "nodeType": "InheritanceSpecifier", + "src": "891:6:0" + } + ], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 307, + "linearizedBaseContracts": [ + 307, + 68 + ], + "name": "ERC20Basic", + "nameLocation": "877:10:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "06fdde03", + "id": 73, + "mutability": "constant", + "name": "name", + "nameLocation": "928:4:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "905:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 71, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "905:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "45524332304261736963", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "935:12:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a79e33b9dc0a948bb61d947e9b93ca6444308158c71b1fc39c80594dbec233e5", + "typeString": "literal_string \"ERC20Basic\"" + }, + "value": "ERC20Basic" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 76, + "mutability": "constant", + "name": "symbol", + "nameLocation": "977:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "954:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 74, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "455243", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "986:5:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aba1fbc2bbf2303cc281eb9028edd772ae6c0c8a2b10b48e871a8884819f04df", + "typeString": "literal_string \"ERC\"" + }, + "value": "ERC" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 79, + "mutability": "constant", + "name": "decimals", + "nameLocation": "1020:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "998:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 77, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "998:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3138", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1031:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "balances", + "nameLocation": "1070:8:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1042:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 82, + "keyType": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1050:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1042:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "1135:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1087:55:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 84, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1087:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 87, + "keyType": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1106:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1125:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "totalSupply_", + "nameLocation": "1159:12:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "1151:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1151:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:8:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + }, + "value": "10" + }, + "visibility": "internal" + }, + { + "id": 95, + "libraryName": { + "id": 93, + "name": "SafeMath", + "nodeType": "IdentifierPath", + "referencedDeclaration": 352, + "src": "1197:8:0" + }, + "nodeType": "UsingForDirective", + "src": "1191:27:0", + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1210:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 105, + "nodeType": "Block", + "src": "1247:54:0", + "statements": [ + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 98, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1258:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 101, + "indexExpression": { + "expression": { + "id": 99, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1267:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1267:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1258:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1281:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1258:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "1258:35:0" + } + ] + }, + "id": 106, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "1237:2:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [], + "src": "1247:0:0" + }, + "scope": 307, + "src": "1226:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 6 + ], + "body": { + "id": 114, + "nodeType": "Block", + "src": "1371:38:0", + "statements": [ + { + "expression": { + "id": 112, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1389:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 111, + "id": 113, + "nodeType": "Return", + "src": "1382:19:0" + } + ] + }, + "functionSelector": "18160ddd", + "id": 115, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1318:11:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 108, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1344:8:0" + }, + "parameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [], + "src": "1329:2:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "1362:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1361:9:0" + }, + "scope": 307, + "src": "1309:100:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 13 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "1536:46:0", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 123, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1554:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 125, + "indexExpression": { + "id": 124, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "1563:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1554:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 122, + "id": 126, + "nodeType": "Return", + "src": "1547:27:0" + } + ] + }, + "functionSelector": "70a08231", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1426:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 119, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1495:8:0" + }, + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "tokenOwner", + "nameLocation": "1444:10:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1436:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1435:20:0" + }, + "returnParameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "1522:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1521:9:0" + }, + "scope": 307, + "src": "1417:165:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 31 + ], + "body": { + "id": 180, + "nodeType": "Block", + "src": "1708:274:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 139, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1727:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 140, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1740:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 143, + "indexExpression": { + "expression": { + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1749:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1749:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1740:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1727:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 138, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1719:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1719:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 146, + "nodeType": "ExpressionStatement", + "src": "1719:42:0" + }, + { + "expression": { + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 147, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1772:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 150, + "indexExpression": { + "expression": { + "id": 148, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1781:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1781:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1772:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 156, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1820:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 151, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1795:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 154, + "indexExpression": { + "expression": { + "id": 152, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1804:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1804:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "1795:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1795:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1772:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "1772:58:0" + }, + { + "expression": { + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1841:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 162, + "indexExpression": { + "id": 161, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1850:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1841:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 167, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1885:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1862:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 165, + "indexExpression": { + "id": 164, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1871:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1862:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "1862:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1862:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1841:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "nodeType": "ExpressionStatement", + "src": "1841:54:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 172, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1920:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1920:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 174, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1932:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 175, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1942:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 171, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1911:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 177, + "nodeType": "EmitStatement", + "src": "1906:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1970:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 137, + "id": 179, + "nodeType": "Return", + "src": "1963:11:0" + } + ] + }, + "functionSelector": "a9059cbb", + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1599:8:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 134, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1670:8:0" + }, + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1616:8:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1608:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1608:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "1634:9:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1626:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1607:37:0" + }, + "returnParameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "1697:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 135, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1697:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1696:6:0" + }, + "scope": 307, + "src": "1590:392:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 40 + ], + "body": { + "id": 209, + "nodeType": "Block", + "src": "2107:139:0", + "statements": [ + { + "expression": { + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 191, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2118:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 195, + "indexExpression": { + "expression": { + "id": 192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2126:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2126:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2118:19:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 196, + "indexExpression": { + "id": 194, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2138:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2118:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 197, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2150:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2118:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "2118:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 201, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2184:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2184:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 203, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2196:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 204, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2206:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 200, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2175:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2175:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 206, + "nodeType": "EmitStatement", + "src": "2170:46:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2234:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 190, + "id": 208, + "nodeType": "Return", + "src": "2227:11:0" + } + ] + }, + "functionSelector": "095ea7b3", + "id": 210, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1999:7:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 187, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2069:8:0" + }, + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2015:8:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2007:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2007:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2033:9:0", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2025:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2006:37:0" + }, + "returnParameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "2096:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 188, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2095:6:0" + }, + "scope": 307, + "src": "1990:256:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 22 + ], + "body": { + "id": 226, + "nodeType": "Block", + "src": "2386:50:0", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 220, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2404:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 222, + "indexExpression": { + "id": 221, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "2412:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 224, + "indexExpression": { + "id": 223, + "name": "delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "2419:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 219, + "id": 225, + "nodeType": "Return", + "src": "2397:31:0" + } + ] + }, + "functionSelector": "dd62ed3e", + "id": 227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "2263:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 216, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2345:8:0" + }, + "parameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2281:5:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2273:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "delegate", + "nameLocation": "2296:8:0", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2288:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2288:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2272:33:0" + }, + "returnParameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2372:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2372:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2371:9:0" + }, + "scope": 307, + "src": "2254:182:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 51 + ], + "body": { + "id": 305, + "nodeType": "Block", + "src": "2580:387:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 240, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2599:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "id": 241, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2612:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 243, + "indexExpression": { + "id": 242, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2621:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2612:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2599:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2591:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 246, + "nodeType": "ExpressionStatement", + "src": "2591:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 248, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2647:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 249, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 251, + "indexExpression": { + "id": 250, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2668:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 254, + "indexExpression": { + "expression": { + "id": 252, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2675:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2675:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2660:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2647:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2639:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "2639:48:0" + }, + { + "expression": { + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 258, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2700:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 260, + "indexExpression": { + "id": 259, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2709:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2700:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 265, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2738:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 261, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2718:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 263, + "indexExpression": { + "id": 262, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2727:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2718:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2718:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2718:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2700:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 268, + "nodeType": "ExpressionStatement", + "src": "2700:48:0" + }, + { + "expression": { + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 269, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 270, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2767:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2759:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 274, + "indexExpression": { + "expression": { + "id": 271, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2774:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2774:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2759:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 282, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2819:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 275, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "2788:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 277, + "indexExpression": { + "id": 276, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2796:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 280, + "indexExpression": { + "expression": { + "id": 278, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2803:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2803:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2788:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 327, + "src": "2788:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2788:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2759:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 285, + "nodeType": "ExpressionStatement", + "src": "2759:70:0" + }, + { + "expression": { + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 286, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2840:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 288, + "indexExpression": { + "id": 287, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2849:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2840:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 293, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2878:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 289, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "2858:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 291, + "indexExpression": { + "id": 290, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2867:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2858:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 351, + "src": "2858:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2840:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 296, + "nodeType": "ExpressionStatement", + "src": "2840:48:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2913:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 299, + "name": "buyer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2920:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 300, + "name": "numTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2927:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2904:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2904:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 302, + "nodeType": "EmitStatement", + "src": "2899:38:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 238, + "id": 304, + "nodeType": "Return", + "src": "2948:11:0" + } + ] + }, + "functionSelector": "23b872dd", + "id": 306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2453:12:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 235, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2556:8:0" + }, + "parameters": { + "id": 234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2484:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2476:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2476:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "buyer", + "nameLocation": "2508:5:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2500:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 233, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "2532:9:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2524:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2524:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2465:83:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2574:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2574:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2573:6:0" + }, + "scope": 307, + "src": "2444:523:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "868:2102:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 352, + "linearizedBaseContracts": [ + 352 + ], + "name": "SafeMath", + "nameLocation": "2982:8:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3065:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 317, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3083:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 318, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3088:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3083:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 316, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3076:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3076:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 321, + "nodeType": "ExpressionStatement", + "src": "3076:14:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 322, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 323, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "3112:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 315, + "id": 325, + "nodeType": "Return", + "src": "3101:12:0" + } + ] + }, + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "3007:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "a", + "nameLocation": "3019:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3011:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3011:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "b", + "nameLocation": "3030:1:0", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3022:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3010:22:0" + }, + "returnParameters": { + "id": 315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "3056:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3056:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3055:9:0" + }, + "scope": 352, + "src": "2998:123:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 350, + "nodeType": "Block", + "src": "3196:80:0", + "statements": [ + { + "assignments": [ + 337 + ], + "declarations": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "c", + "nameLocation": "3215:1:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "3207:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 341, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 338, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3219:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 339, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "3223:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3219:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3207:17:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 343, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3242:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 344, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "3247:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3242:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 342, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "3235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 347, + "nodeType": "ExpressionStatement", + "src": "3235:14:0" + }, + { + "expression": { + "id": 348, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "3267:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 335, + "id": 349, + "nodeType": "Return", + "src": "3260:8:0" + } + ] + }, + "id": 351, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "3138:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "a", + "nameLocation": "3150:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3142:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "b", + "nameLocation": "3161:1:0", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3153:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3153:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3141:22:0" + }, + "returnParameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "3187:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3186:9:0" + }, + "scope": 352, + "src": "3129:147:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 485, + "src": "2974:305:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [ + 307 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 484, + "linearizedBaseContracts": [ + 484 + ], + "name": "DEX", + "nameLocation": "3292:3:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "id": 356, + "name": "Bought", + "nameLocation": "3309:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3324:6:0", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "3316:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3315:16:0" + }, + "src": "3303:29:0" + }, + { + "anonymous": false, + "id": 360, + "name": "Sold", + "nameLocation": "3344:4:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3357:6:0", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "3349:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3348:16:0" + }, + "src": "3338:27:0" + }, + { + "constant": false, + "functionSelector": "fc0c546a", + "id": 363, + "mutability": "mutable", + "name": "token", + "nameLocation": "3387:5:0", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "3373:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 361, + "name": "IERC20", + "nodeType": "IdentifierPath", + "referencedDeclaration": 68, + "src": "3373:6:0" + }, + "referencedDeclaration": 68, + "src": "3373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 373, + "nodeType": "Block", + "src": "3422:43:0", + "statements": [ + { + "expression": { + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3433:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3441:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_ERC20Basic_$307_$", + "typeString": "function () returns (contract ERC20Basic)" + }, + "typeName": { + "id": 368, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 367, + "name": "ERC20Basic", + "nodeType": "IdentifierPath", + "referencedDeclaration": 307, + "src": "3445:10:0" + }, + "referencedDeclaration": 307, + "src": "3445:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3441:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Basic_$307", + "typeString": "contract ERC20Basic" + } + }, + "src": "3433:24:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "3433:24:0" + } + ] + }, + "id": 374, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [], + "src": "3412:2:0" + }, + "returnParameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "3422:0:0" + }, + "scope": 484, + "src": "3401:64:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 387, + "nodeType": "Block", + "src": "3522:56:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 383, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3556:7:0", + "typeDescriptions": {} + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3556:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 379, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3540:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3540:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3540:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 378, + "id": 386, + "nodeType": "Return", + "src": "3533:37:0" + } + ] + }, + "functionSelector": "b69ef8a8", + "id": 388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balance", + "nameLocation": "3482:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "3489:2:0" + }, + "returnParameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 377, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 388, + "src": "3513:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3512:9:0" + }, + "scope": 484, + "src": "3473:105:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 425, + "nodeType": "Block", + "src": "3616:346:0", + "statements": [ + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "mutability": "mutable", + "name": "amountTobuy", + "nameLocation": "3635:11:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3627:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 395, + "initialValue": { + "expression": { + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3649:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3649:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3627:31:0" + }, + { + "assignments": [ + 397 + ], + "declarations": [ + { + "constant": false, + "id": 397, + "mutability": "mutable", + "name": "dexBalance", + "nameLocation": "3677:10:0", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "3669:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3669:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 405, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 402, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3714:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3706:7:0", + "typeDescriptions": {} + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3706:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 398, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3690:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3690:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3690:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3669:51:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 407, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3807:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 408, + "name": "dexBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "3822:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3807:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3834:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + }, + "value": "Not enough tokens in the reserve" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11c8f04e2b1fb46d5ad724dbc8387e938437ecdd510be07e544e2a61a447dca", + "typeString": "literal_string \"Not enough tokens in the reserve\"" + } + ], + "id": 406, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3799:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 412, + "nodeType": "ExpressionStatement", + "src": "3799:70:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3895:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3895:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 418, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3907:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 413, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "3880:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "3880:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3880:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 420, + "nodeType": "ExpressionStatement", + "src": "3880:39:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 422, + "name": "amountTobuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "3942:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 421, + "name": "Bought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "3935:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3935:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 424, + "nodeType": "EmitStatement", + "src": "3930:24:0" + } + ] + }, + "functionSelector": "a6f2ae3a", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buy", + "nameLocation": "3595:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:2:0" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "3616:0:0" + }, + "scope": 484, + "src": "3586:376:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 482, + "nodeType": "Block", + "src": "4007:359:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 432, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4035:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4026:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746f6b656e73", + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4038:39:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + }, + "value": "You need to sell at least some tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_678ee0b96747772543566939e944d1564f7cbd541aeffda6bfd357fe4a2fbd61", + "typeString": "literal_string \"You need to sell at least some tokens\"" + } + ], + "id": 431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4018:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4018:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "ExpressionStatement", + "src": "4018:60:0" + }, + { + "assignments": [ + 439 + ], + "declarations": [ + { + "constant": false, + "id": 439, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4097:9:0", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "4089:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4089:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 449, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 442, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4125:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4125:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 446, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4137:7:0", + "typeDescriptions": {} + } + }, + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 440, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4109:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "4109:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4089:62:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 451, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "4170:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 452, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4183:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4170:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436865636b2074686520746f6b656e20616c6c6f77616e6365", + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191:27:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + }, + "value": "Check the token allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_727fc1e09070e074c1e4faeaff9f905dd58d37cba7b8f174a2a35f24c4fc6650", + "typeString": "literal_string \"Check the token allowance\"" + } + ], + "id": 450, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4162:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4162:57:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "ExpressionStatement", + "src": "4162:57:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 460, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4249:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4249:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 464, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4269:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DEX_$484", + "typeString": "contract DEX" + } + ], + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4261:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4261:7:0", + "typeDescriptions": {} + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4261:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 466, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4276:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 457, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "4230:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$68", + "typeString": "contract IERC20" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "4230:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4230:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 468, + "nodeType": "ExpressionStatement", + "src": "4230:53:0" + }, + { + "expression": { + "arguments": [ + { + "id": 475, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4323:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4302:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4302:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4294:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4294:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4294:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4294:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "4294:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 479, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4351:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 478, + "name": "Sold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "4346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4346:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 481, + "nodeType": "EmitStatement", + "src": "4341:17:0" + } + ] + }, + "functionSelector": "e4849b32", + "id": 483, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sell", + "nameLocation": "3979:4:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3992:6:0", + "nodeType": "VariableDeclaration", + "scope": 483, + "src": "3984:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3984:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3983:16:0" + }, + "returnParameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "4007:0:0" + }, + "scope": 484, + "src": "3970:396:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 485, + "src": "3283:1086:0", + "usedErrors": [] + } + ], + "src": "39:4332:0" + }, + "compiler": { + "name": "solc", + "version": "0.8.6+commit.11564f7e.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.3", + "updatedAt": "2021-09-12T12:40:49.370Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/step34_projects/project-04/frontend/src/config.ts b/step34_projects/project-04/frontend/src/config.ts new file mode 100644 index 0000000..b560780 --- /dev/null +++ b/step34_projects/project-04/frontend/src/config.ts @@ -0,0 +1 @@ +export const DEX_ADDRESS = "0x2De3a4FDb29dca292018E8a237116282E0fFD750"; \ No newline at end of file diff --git a/step34_projects/project-04/frontend/src/index.tsx b/step34_projects/project-04/frontend/src/index.tsx new file mode 100644 index 0000000..d0fa224 --- /dev/null +++ b/step34_projects/project-04/frontend/src/index.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import 'bootstrap/dist/css/bootstrap.min.css'; +import ReactDOM from 'react-dom'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + +ReactDOM.render( + + + , + document.getElementById('root') +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/step34_projects/project-04/frontend/src/logo.svg b/step34_projects/project-04/frontend/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/step34_projects/project-04/frontend/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/step34_projects/project-04/frontend/src/react-app-env.d.ts b/step34_projects/project-04/frontend/src/react-app-env.d.ts new file mode 100644 index 0000000..6431bc5 --- /dev/null +++ b/step34_projects/project-04/frontend/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/step34_projects/project-04/frontend/src/reportWebVitals.ts b/step34_projects/project-04/frontend/src/reportWebVitals.ts new file mode 100644 index 0000000..49a2a16 --- /dev/null +++ b/step34_projects/project-04/frontend/src/reportWebVitals.ts @@ -0,0 +1,15 @@ +import { ReportHandler } from 'web-vitals'; + +const reportWebVitals = (onPerfEntry?: ReportHandler) => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/step34_projects/project-04/frontend/src/setupTests.ts b/step34_projects/project-04/frontend/src/setupTests.ts new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/step34_projects/project-04/frontend/src/setupTests.ts @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/step34_projects/project-04/frontend/tsconfig.json b/step34_projects/project-04/frontend/tsconfig.json new file mode 100644 index 0000000..9d379a3 --- /dev/null +++ b/step34_projects/project-04/frontend/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"] +} diff --git a/step34_projects/project-04/frontend/types/web3-v1-contracts/DEX.d.ts b/step34_projects/project-04/frontend/types/web3-v1-contracts/DEX.d.ts new file mode 100644 index 0000000..5c60e08 --- /dev/null +++ b/step34_projects/project-04/frontend/types/web3-v1-contracts/DEX.d.ts @@ -0,0 +1,64 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import BN from "bn.js"; +import { ContractOptions } from "web3-eth-contract"; +import { EventLog } from "web3-core"; +import { EventEmitter } from "events"; +import { + Callback, + PayableTransactionObject, + NonPayableTransactionObject, + BlockType, + ContractEventLog, + BaseContract, +} from "./types"; + +interface EventOptions { + filter?: object; + fromBlock?: BlockType; + topics?: string[]; +} + +export type Bought = ContractEventLog<{ + amount: string; + 0: string; +}>; +export type Sold = ContractEventLog<{ + amount: string; + 0: string; +}>; + +export interface DEX extends BaseContract { + constructor( + jsonInterface: any[], + address?: string, + options?: ContractOptions + ): DEX; + clone(): DEX; + methods: { + token(): NonPayableTransactionObject; + + balance(): NonPayableTransactionObject; + + buy(): PayableTransactionObject; + + sell(amount: number | string | BN): NonPayableTransactionObject; + }; + events: { + Bought(cb?: Callback): EventEmitter; + Bought(options?: EventOptions, cb?: Callback): EventEmitter; + + Sold(cb?: Callback): EventEmitter; + Sold(options?: EventOptions, cb?: Callback): EventEmitter; + + allEvents(options?: EventOptions, cb?: Callback): EventEmitter; + }; + + once(event: "Bought", cb: Callback): void; + once(event: "Bought", options: EventOptions, cb: Callback): void; + + once(event: "Sold", cb: Callback): void; + once(event: "Sold", options: EventOptions, cb: Callback): void; +} diff --git a/step34_projects/project-04/frontend/types/web3-v1-contracts/ERC20Basic.d.ts b/step34_projects/project-04/frontend/types/web3-v1-contracts/ERC20Basic.d.ts new file mode 100644 index 0000000..301f0e0 --- /dev/null +++ b/step34_projects/project-04/frontend/types/web3-v1-contracts/ERC20Basic.d.ts @@ -0,0 +1,95 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import BN from "bn.js"; +import { ContractOptions } from "web3-eth-contract"; +import { EventLog } from "web3-core"; +import { EventEmitter } from "events"; +import { + Callback, + PayableTransactionObject, + NonPayableTransactionObject, + BlockType, + ContractEventLog, + BaseContract, +} from "./types"; + +interface EventOptions { + filter?: object; + fromBlock?: BlockType; + topics?: string[]; +} + +export type Approval = ContractEventLog<{ + owner: string; + spender: string; + value: string; + 0: string; + 1: string; + 2: string; +}>; +export type Transfer = ContractEventLog<{ + from: string; + to: string; + value: string; + 0: string; + 1: string; + 2: string; +}>; + +export interface ERC20Basic extends BaseContract { + constructor( + jsonInterface: any[], + address?: string, + options?: ContractOptions + ): ERC20Basic; + clone(): ERC20Basic; + methods: { + decimals(): NonPayableTransactionObject; + + name(): NonPayableTransactionObject; + + symbol(): NonPayableTransactionObject; + + totalSupply(): NonPayableTransactionObject; + + balanceOf(tokenOwner: string): NonPayableTransactionObject; + + transfer( + receiver: string, + numTokens: number | string | BN + ): NonPayableTransactionObject; + + approve( + delegate: string, + numTokens: number | string | BN + ): NonPayableTransactionObject; + + allowance( + owner: string, + delegate: string + ): NonPayableTransactionObject; + + transferFrom( + owner: string, + buyer: string, + numTokens: number | string | BN + ): NonPayableTransactionObject; + }; + events: { + Approval(cb?: Callback): EventEmitter; + Approval(options?: EventOptions, cb?: Callback): EventEmitter; + + Transfer(cb?: Callback): EventEmitter; + Transfer(options?: EventOptions, cb?: Callback): EventEmitter; + + allEvents(options?: EventOptions, cb?: Callback): EventEmitter; + }; + + once(event: "Approval", cb: Callback): void; + once(event: "Approval", options: EventOptions, cb: Callback): void; + + once(event: "Transfer", cb: Callback): void; + once(event: "Transfer", options: EventOptions, cb: Callback): void; +} diff --git a/step34_projects/project-04/frontend/types/web3-v1-contracts/IERC20.d.ts b/step34_projects/project-04/frontend/types/web3-v1-contracts/IERC20.d.ts new file mode 100644 index 0000000..4282d72 --- /dev/null +++ b/step34_projects/project-04/frontend/types/web3-v1-contracts/IERC20.d.ts @@ -0,0 +1,89 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import BN from "bn.js"; +import { ContractOptions } from "web3-eth-contract"; +import { EventLog } from "web3-core"; +import { EventEmitter } from "events"; +import { + Callback, + PayableTransactionObject, + NonPayableTransactionObject, + BlockType, + ContractEventLog, + BaseContract, +} from "./types"; + +interface EventOptions { + filter?: object; + fromBlock?: BlockType; + topics?: string[]; +} + +export type Approval = ContractEventLog<{ + owner: string; + spender: string; + value: string; + 0: string; + 1: string; + 2: string; +}>; +export type Transfer = ContractEventLog<{ + from: string; + to: string; + value: string; + 0: string; + 1: string; + 2: string; +}>; + +export interface IERC20 extends BaseContract { + constructor( + jsonInterface: any[], + address?: string, + options?: ContractOptions + ): IERC20; + clone(): IERC20; + methods: { + totalSupply(): NonPayableTransactionObject; + + balanceOf(account: string): NonPayableTransactionObject; + + allowance( + owner: string, + spender: string + ): NonPayableTransactionObject; + + transfer( + recipient: string, + amount: number | string | BN + ): NonPayableTransactionObject; + + approve( + spender: string, + amount: number | string | BN + ): NonPayableTransactionObject; + + transferFrom( + sender: string, + recipient: string, + amount: number | string | BN + ): NonPayableTransactionObject; + }; + events: { + Approval(cb?: Callback): EventEmitter; + Approval(options?: EventOptions, cb?: Callback): EventEmitter; + + Transfer(cb?: Callback): EventEmitter; + Transfer(options?: EventOptions, cb?: Callback): EventEmitter; + + allEvents(options?: EventOptions, cb?: Callback): EventEmitter; + }; + + once(event: "Approval", cb: Callback): void; + once(event: "Approval", options: EventOptions, cb: Callback): void; + + once(event: "Transfer", cb: Callback): void; + once(event: "Transfer", options: EventOptions, cb: Callback): void; +} diff --git a/step34_projects/project-04/frontend/types/web3-v1-contracts/types.d.ts b/step34_projects/project-04/frontend/types/web3-v1-contracts/types.d.ts new file mode 100644 index 0000000..a1282fc --- /dev/null +++ b/step34_projects/project-04/frontend/types/web3-v1-contracts/types.d.ts @@ -0,0 +1,73 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import BN from "bn.js"; +import { Contract } from "web3-eth-contract"; +import { EventLog, PromiEvent, TransactionReceipt } from "web3-core/types"; +import { EventEmitter } from "events"; + +interface EstimateGasOptions { + from?: string; + gas?: number; + value?: number | string | BN; +} + +interface EventOptions { + filter?: object; + fromBlock?: BlockType; + topics?: string[]; +} + +export type Callback = (error: Error, result: T) => void; +export interface ContractEventLog extends EventLog { + returnValues: T; +} +export interface ContractEventEmitter extends EventEmitter { + on(event: "connected", listener: (subscriptionId: string) => void): this; + on( + event: "data" | "changed", + listener: (event: ContractEventLog) => void + ): this; + on(event: "error", listener: (error: Error) => void): this; +} + +export interface NonPayableTx { + nonce?: string | number | BN; + chainId?: string | number | BN; + from?: string; + to?: string; + data?: string; + gas?: string | number | BN; + maxPriorityFeePerGas?: string | number | BN; + maxFeePerGas?: string | number | BN; + gasPrice?: string | number | BN; +} + +export interface PayableTx extends NonPayableTx { + value?: string | number | BN; +} + +export interface NonPayableTransactionObject { + arguments: any[]; + call(tx?: NonPayableTx, block?: BlockType): Promise; + send(tx?: NonPayableTx): PromiEvent; + estimateGas(tx?: NonPayableTx): Promise; + encodeABI(): string; +} + +export interface PayableTransactionObject { + arguments: any[]; + call(tx?: PayableTx, block?: BlockType): Promise; + send(tx?: PayableTx): PromiEvent; + estimateGas(tx?: PayableTx): Promise; + encodeABI(): string; +} + +export type BlockType = + | "latest" + | "pending" + | "genesis" + | "earliest" + | number + | BN; +export type BaseContract = Omit; diff --git a/step34_projects/project-04/frontend/yarn.lock b/step34_projects/project-04/frontend/yarn.lock new file mode 100644 index 0000000..8238375 --- /dev/null +++ b/step34_projects/project-04/frontend/yarn.lock @@ -0,0 +1,13205 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.13.tgz#27e19e0ed3726ccf54067ced4109501765e7e2e8" + integrity sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg== + +"@babel/core@7.12.3": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" + integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.1" + "@babel/parser" "^7.12.3" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.5", "@babel/core@^7.8.4": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.17.tgz#993c5e893333107a2815d8e0d73a2c3755e280b2" + integrity sha512-V3CuX1aBywbJvV2yzJScRxeiiw0v2KZZYYE3giywxzFJL13RiyPjaaDwhDnxmgFTTS7FgvM2ijr4QmKNIu0AtQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.12.17" + "@babel/helper-module-transforms" "^7.12.17" + "@babel/helpers" "^7.12.17" + "@babel/parser" "^7.12.17" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.12.17" + "@babel/types" "^7.12.17" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.1", "@babel/generator@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.17.tgz#9ef1dd792d778b32284411df63f4f668a9957287" + integrity sha512-DSA7ruZrY4WI8VxuS1jWSRezFnghEoYEFrZcw9BizQRmOZiUsiHl59+qEARGPqPikwA/GPTyRCi7isuCK/oyqg== + dependencies: + "@babel/types" "^7.12.17" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.17.tgz#91d83fae61ef390d39c3f0507cb83979bab837c7" + integrity sha512-5EkibqLVYOuZ89BSg2lv+GG8feywLuvMXNYgf0Im4MssE0mFWPztSpJbildNnUgw0bLI2EsIN4MpSHC2iUJkQA== + dependencies: + "@babel/compat-data" "^7.12.13" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.12.13", "@babel/helper-create-class-features-plugin@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.17.tgz#704b69c8a78d03fb1c5fcc2e7b593f8a65628944" + integrity sha512-I/nurmTxIxHV0M+rIpfQBF1oN342+yvl2kwZUrQuOClMamHF1w5tknfZubgNOLRoA73SzBFAdFcpb4M9HwOeWQ== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.12.17" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + regexpu-core "^4.7.1" + +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz#0e46990da9e271502f77507efa4c9918d3d8634a" + integrity sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-hoist-variables@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz#13aba58b7480b502362316ea02f52cca0e9796cd" + integrity sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-member-expression-to-functions@^7.12.13", "@babel/helper-member-expression-to-functions@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.17.tgz#f82838eb06e1235307b6d71457b6670ff71ee5ac" + integrity sha512-Bzv4p3ODgS/qpBE0DiJ9qf5WxSmrQ8gVTe8ClMfwwsY2x/rhykxxy3bXzG7AGTnPB2ij37zGJ/Q/6FruxHxsxg== + dependencies: + "@babel/types" "^7.12.17" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" + integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.12.13", "@babel/helper-module-transforms@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.17.tgz#7c75b987d6dfd5b48e575648f81eaac891539509" + integrity sha512-sFL+p6zOCQMm9vilo06M4VHuTxUAwa6IxgL56Tq1DVtA0ziAGTH1ThmJq7xwPqdQlgAbKX3fb0oZNbtRIyA5KQ== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.12.17" + "@babel/types" "^7.12.17" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz#174254d0f2424d8aefb4dd48057511247b0a9eeb" + integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== + +"@babel/helper-remap-async-to-generator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz#170365f4140e2d20e5c88f8ba23c24468c296878" + integrity sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-replace-supers@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz#00ec4fb6862546bd3d0aff9aac56074277173121" + integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-simple-access@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" + integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + +"@babel/helper-wrap-function@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz#e3ea8cb3ee0a16911f9c1b50d9e99fe8fe30f9ff" + integrity sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helpers@^7.12.1", "@babel/helpers@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.17.tgz#71e03d2981a6b5ee16899964f4101dc8471d60bc" + integrity sha512-tEpjqSBGt/SFEsFikKds1sLNChKKGGR17flIgQKXH4fG6m9gTgl3gnOC1giHNyaBCSKuTfxaSzHi7UnvqiVKxg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.12.17" + "@babel/types" "^7.12.17" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" + integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.17", "@babel/parser@^7.12.3", "@babel/parser@^7.7.0": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.17.tgz#bc85d2d47db38094e5bb268fc761716e7d693848" + integrity sha512-r1yKkiUTYMQ8LiEI0UcQx5ETw5dpTLn9wijn9hk6KkTtOK95FndDN10M+8/s6k/Ymlbivw0Av9q4SlgF80PtHg== + +"@babel/plugin-proposal-async-generator-functions@^7.12.1", "@babel/plugin-proposal-async-generator-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz#d1c6d841802ffb88c64a2413e311f7345b9e66b5" + integrity sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-remap-async-to-generator" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz#3d2ce350367058033c93c098e348161d6dc0d8c8" + integrity sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-proposal-decorators@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz#59271439fed4145456c41067450543aee332d15f" + integrity sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-decorators" "^7.12.1" + +"@babel/plugin-proposal-dynamic-import@^7.12.1", "@babel/plugin-proposal-dynamic-import@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.17.tgz#e0ebd8db65acc37eac518fa17bead2174e224512" + integrity sha512-ZNGoFZqrnuy9H2izB2jLlnNDAfVPlGl5NhFEiFe4D84ix9GQGygF+CWMGHKuE+bpyS/AOuDQCnkiRNqW2IzS1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-export-namespace-from@^7.12.1", "@babel/plugin-proposal-export-namespace-from@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.12.1", "@babel/plugin-proposal-json-strings@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz#ced7888a2db92a3d520a2e35eb421fdb7fcc9b5d" + integrity sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1", "@babel/plugin-proposal-logical-assignment-operators@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz#575b5d9a08d8299eeb4db6430da6e16e5cf14350" + integrity sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.13.tgz#24867307285cee4e1031170efd8a7ac807deefde" + integrity sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz#0e2c6774c4ce48be412119b4d693ac777f7685a6" + integrity sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-numeric-separator@^7.12.1", "@babel/plugin-proposal-numeric-separator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz#f93f3116381ff94bc676fdcb29d71045cd1ec011" + integrity sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.13" + +"@babel/plugin-proposal-optional-catch-binding@^7.12.1", "@babel/plugin-proposal-optional-catch-binding@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz#4640520afe57728af14b4d1574ba844f263bcae5" + integrity sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" + integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.17.tgz#e382becadc2cb16b7913b6c672d92e4b33385b5c" + integrity sha512-TvxwI80pWftrGPKHNfkvX/HnoeSTR7gC4ezWnAL39PuktYUe6r8kEpOLTYnkBTsaoeazXm2jHJ22EQ81sdgfcA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz#ea78a12554d784ecf7fc55950b752d469d9c4a71" + integrity sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.1", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-decorators@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" + integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz#5df9962503c0a9c918381c929d51d4d6949e7e86" + integrity sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" + integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.12.1", "@babel/plugin-syntax-top-level-await@^7.12.13", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-typescript@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" + integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz#eda5670b282952100c229f8a3bd49e0f6a72e9fe" + integrity sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-async-to-generator@^7.12.1", "@babel/plugin-transform-async-to-generator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.13.tgz#fed8c69eebf187a535bfa4ee97a614009b24f7ae" + integrity sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-remap-async-to-generator" "^7.12.13" + +"@babel/plugin-transform-block-scoped-functions@^7.12.1", "@babel/plugin-transform-block-scoped-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" + integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.13.tgz#9728edc1838b5d62fc93ad830bd523b1fcb0e1f6" + integrity sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.12.1", "@babel/plugin-transform-computed-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.13.tgz#6a210647a3d67f21f699cfd2a01333803b27339d" + integrity sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.13.tgz#fc56c5176940c5b41735c677124d1d20cecc9aeb" + integrity sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-duplicate-keys@^7.12.1", "@babel/plugin-transform-duplicate-keys@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-exponentiation-operator@^7.12.1", "@babel/plugin-transform-exponentiation-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-flow-strip-types@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.1.tgz#8430decfa7eb2aea5414ed4a3fa6e1652b7d77c4" + integrity sha512-8hAtkmsQb36yMmEtk2JZ9JnVyDSnDOdlB+0nEGzIDLuK4yR3JcEjfuFPYkdEPSh8Id+rAMeBEn+X0iVEyho6Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-flow" "^7.12.1" + +"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz#561ff6d74d9e1c8879cb12dbaf4a14cd29d15cf6" + integrity sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-function-name@^7.12.1", "@babel/plugin-transform-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-literals@^7.12.1", "@babel/plugin-transform-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-member-expression-literals@^7.12.1", "@babel/plugin-transform-member-expression-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.13.tgz#43db16249b274ee2e551e2422090aa1c47692d56" + integrity sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA== + dependencies: + "@babel/helper-module-transforms" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz#5043b870a784a8421fa1fd9136a24f294da13e50" + integrity sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ== + dependencies: + "@babel/helper-module-transforms" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-simple-access" "^7.12.13" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.12.1", "@babel/plugin-transform-modules-systemjs@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz#351937f392c7f07493fc79b2118201d50404a3c5" + integrity sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA== + dependencies: + "@babel/helper-hoist-variables" "^7.12.13" + "@babel/helper-module-transforms" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.12.1", "@babel/plugin-transform-modules-umd@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz#26c66f161d3456674e344b4b1255de4d530cfb37" + integrity sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w== + dependencies: + "@babel/helper-module-transforms" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1", "@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + +"@babel/plugin-transform-new-target@^7.12.1", "@babel/plugin-transform-new-target@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-object-super@^7.12.1", "@babel/plugin-transform-object-super@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz#461e76dfb63c2dfd327b8a008a9e802818ce9853" + integrity sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-property-literals@^7.12.1", "@babel/plugin-transform-property-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.13.tgz#f8ee56888545d53d80f766b3cc1563ab2c241f92" + integrity sha512-qmzKVTn46Upvtxv8LQoQ8mTCdUC83AOVQIQm57e9oekLT5cmK9GOMOfcWhe8jMNx4UJXn/UDhVZ/7lGofVNeDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-display-name@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" + integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-display-name@^7.12.1", "@babel/plugin-transform-react-display-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" + integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-jsx-development@^7.12.1", "@babel/plugin-transform-react-jsx-development@^7.12.12": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" + integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.12.17" + +"@babel/plugin-transform-react-jsx-self@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz#422d99d122d592acab9c35ea22a6cfd9bf189f60" + integrity sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-jsx-source@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" + integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-jsx@^7.12.1", "@babel/plugin-transform-react-jsx@^7.12.13", "@babel/plugin-transform-react-jsx@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz#dd2c1299f5e26de584939892de3cfc1807a38f24" + integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/types" "^7.12.17" + +"@babel/plugin-transform-react-pure-annotations@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" + integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-regenerator@^7.12.1", "@babel/plugin-transform-regenerator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" + integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.12.1", "@babel/plugin-transform-reserved-words@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-runtime@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" + integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.13.tgz#ca0d5645abbd560719c354451b849f14df4a7949" + integrity sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + +"@babel/plugin-transform-sticky-regex@^7.12.1", "@babel/plugin-transform-sticky-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.13.tgz#655037b07ebbddaf3b7752f55d15c2fd6f5aa865" + integrity sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-typeof-symbol@^7.12.1", "@babel/plugin-transform-typeof-symbol@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-typescript@^7.12.1": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.17.tgz#4aa6a5041888dd2e5d316ec39212b0cf855211bb" + integrity sha512-1bIYwnhRoetxkFonuZRtDZPFEjl1l5r+3ITkxLC3mlMaFja+GQFo94b/WHEPjqWLU9Bc+W4oFZbvCGe9eYMu1g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.17" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-typescript" "^7.12.13" + +"@babel/plugin-transform-unicode-escapes@^7.12.1", "@babel/plugin-transform-unicode-escapes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-unicode-regex@^7.12.1", "@babel/plugin-transform-unicode-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/preset-env@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" + integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== + dependencies: + "@babel/compat-data" "^7.12.1" + "@babel/helper-compilation-targets" "^7.12.1" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-proposal-async-generator-functions" "^7.12.1" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-dynamic-import" "^7.12.1" + "@babel/plugin-proposal-export-namespace-from" "^7.12.1" + "@babel/plugin-proposal-json-strings" "^7.12.1" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.12.1" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-async-to-generator" "^7.12.1" + "@babel/plugin-transform-block-scoped-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-computed-properties" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-dotall-regex" "^7.12.1" + "@babel/plugin-transform-duplicate-keys" "^7.12.1" + "@babel/plugin-transform-exponentiation-operator" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-function-name" "^7.12.1" + "@babel/plugin-transform-literals" "^7.12.1" + "@babel/plugin-transform-member-expression-literals" "^7.12.1" + "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/plugin-transform-modules-commonjs" "^7.12.1" + "@babel/plugin-transform-modules-systemjs" "^7.12.1" + "@babel/plugin-transform-modules-umd" "^7.12.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" + "@babel/plugin-transform-new-target" "^7.12.1" + "@babel/plugin-transform-object-super" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-property-literals" "^7.12.1" + "@babel/plugin-transform-regenerator" "^7.12.1" + "@babel/plugin-transform-reserved-words" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-unicode-escapes" "^7.12.1" + "@babel/plugin-transform-unicode-regex" "^7.12.1" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.12.1" + core-js-compat "^3.6.2" + semver "^5.5.0" + +"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.8.4": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.17.tgz#94a3793ff089c32ee74d76a3c03a7597693ebaaa" + integrity sha512-9PMijx8zFbCwTHrd2P4PJR5nWGH3zWebx2OcpTjqQrHhCiL2ssSR2Sc9ko2BsI2VmVBfoaQmPrlMTCui4LmXQg== + dependencies: + "@babel/compat-data" "^7.12.13" + "@babel/helper-compilation-targets" "^7.12.17" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-proposal-async-generator-functions" "^7.12.13" + "@babel/plugin-proposal-class-properties" "^7.12.13" + "@babel/plugin-proposal-dynamic-import" "^7.12.17" + "@babel/plugin-proposal-export-namespace-from" "^7.12.13" + "@babel/plugin-proposal-json-strings" "^7.12.13" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.13" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.13" + "@babel/plugin-proposal-numeric-separator" "^7.12.13" + "@babel/plugin-proposal-object-rest-spread" "^7.12.13" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.13" + "@babel/plugin-proposal-optional-chaining" "^7.12.17" + "@babel/plugin-proposal-private-methods" "^7.12.13" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.12.13" + "@babel/plugin-transform-arrow-functions" "^7.12.13" + "@babel/plugin-transform-async-to-generator" "^7.12.13" + "@babel/plugin-transform-block-scoped-functions" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.12.13" + "@babel/plugin-transform-classes" "^7.12.13" + "@babel/plugin-transform-computed-properties" "^7.12.13" + "@babel/plugin-transform-destructuring" "^7.12.13" + "@babel/plugin-transform-dotall-regex" "^7.12.13" + "@babel/plugin-transform-duplicate-keys" "^7.12.13" + "@babel/plugin-transform-exponentiation-operator" "^7.12.13" + "@babel/plugin-transform-for-of" "^7.12.13" + "@babel/plugin-transform-function-name" "^7.12.13" + "@babel/plugin-transform-literals" "^7.12.13" + "@babel/plugin-transform-member-expression-literals" "^7.12.13" + "@babel/plugin-transform-modules-amd" "^7.12.13" + "@babel/plugin-transform-modules-commonjs" "^7.12.13" + "@babel/plugin-transform-modules-systemjs" "^7.12.13" + "@babel/plugin-transform-modules-umd" "^7.12.13" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" + "@babel/plugin-transform-new-target" "^7.12.13" + "@babel/plugin-transform-object-super" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.12.13" + "@babel/plugin-transform-property-literals" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.12.13" + "@babel/plugin-transform-reserved-words" "^7.12.13" + "@babel/plugin-transform-shorthand-properties" "^7.12.13" + "@babel/plugin-transform-spread" "^7.12.13" + "@babel/plugin-transform-sticky-regex" "^7.12.13" + "@babel/plugin-transform-template-literals" "^7.12.13" + "@babel/plugin-transform-typeof-symbol" "^7.12.13" + "@babel/plugin-transform-unicode-escapes" "^7.12.13" + "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.12.17" + core-js-compat "^3.8.0" + semver "^5.5.0" + +"@babel/preset-modules@^0.1.3": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.1.tgz#7f022b13f55b6dd82f00f16d1c599ae62985358c" + integrity sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.12.1" + "@babel/plugin-transform-react-jsx" "^7.12.1" + "@babel/plugin-transform-react-jsx-development" "^7.12.1" + "@babel/plugin-transform-react-jsx-self" "^7.12.1" + "@babel/plugin-transform-react-jsx-source" "^7.12.1" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + +"@babel/preset-react@^7.12.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.13.tgz#5f911b2eb24277fa686820d5bd81cad9a0602a0a" + integrity sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-react-display-name" "^7.12.13" + "@babel/plugin-transform-react-jsx" "^7.12.13" + "@babel/plugin-transform-react-jsx-development" "^7.12.12" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + +"@babel/preset-typescript@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz#86480b483bb97f75036e8864fe404cc782cc311b" + integrity sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.12.1" + +"@babel/runtime-corejs3@^7.10.2": + version "7.12.18" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.18.tgz#e5663237e5658e4c09586995d2dd6d2c8cfd6fc0" + integrity sha512-ngR7yhNTjDxxe1VYmhqQqqXZWujGb6g0IoA4qeG6MxNGRnIw2Zo8ImY8HfaQ7l3T6GklWhdNfyhWk0C0iocdVA== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" + integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": + version "7.12.18" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" + integrity sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.12.5", "@babel/runtime@^7.13.16", "@babel/runtime@^7.14.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.3.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.13", "@babel/traverse@^7.12.17", "@babel/traverse@^7.7.0": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.17.tgz#40ec8c7ffb502c4e54c7f95492dc11b88d718619" + integrity sha512-LGkTqDqdiwC6Q7fWSwQoas/oyiEYw6Hqjve5KOSykXkmFJFqzvGMb9niaUEag3Rlve492Mkye3gLw9FTv94fdQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.12.17" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.12.17" + "@babel/types" "^7.12.17" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.12.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.17.tgz#9d711eb807e0934c90b8b1ca0eb1f7230d150963" + integrity sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@csstools/normalize.css@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" + integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== + +"@eslint/eslintrc@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" + integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.20" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.4.0.tgz#2d67f6e6ba22246c5c89104e6b9a119fb3039766" + integrity sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.0" + +"@ethereumjs/tx@^3.2.1": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.0.tgz#14ed1b7fa0f28e1cd61e3ecbdab824205f6a4378" + integrity sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA== + dependencies: + "@ethereumjs/common" "^2.4.0" + ethereumjs-util "^7.1.0" + +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + +"@ethersproject/abstract-provider@^5.4.0": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" + integrity sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ== + dependencies: + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/networks" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + "@ethersproject/web" "^5.4.0" + +"@ethersproject/abstract-signer@^5.4.0": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" + integrity sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA== + dependencies: + "@ethersproject/abstract-provider" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + +"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" + integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q== + dependencies: + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/keccak256" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/rlp" "^5.4.0" + +"@ethersproject/base64@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" + integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ== + dependencies: + "@ethersproject/bytes" "^5.4.0" + +"@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.0": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.1.tgz#64399d3b9ae80aa83d483e550ba57ea062c1042d" + integrity sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg== + dependencies: + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + bn.js "^4.11.9" + +"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" + integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA== + dependencies: + "@ethersproject/logger" "^5.4.0" + +"@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" + integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q== + dependencies: + "@ethersproject/bignumber" "^5.4.0" + +"@ethersproject/hash@^5.0.4": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" + integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA== + dependencies: + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/address" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/keccak256" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + +"@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" + integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A== + dependencies: + "@ethersproject/bytes" "^5.4.0" + js-sha3 "0.5.7" + +"@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" + integrity sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ== + +"@ethersproject/networks@^5.4.0": + version "5.4.2" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" + integrity sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw== + dependencies: + "@ethersproject/logger" "^5.4.0" + +"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.0.tgz#38ba20539b44dcc5d5f80c45ad902017dcdbefe7" + integrity sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A== + dependencies: + "@ethersproject/logger" "^5.4.0" + +"@ethersproject/rlp@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" + integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg== + dependencies: + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + +"@ethersproject/signing-key@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" + integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A== + dependencies: + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" + integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA== + dependencies: + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + +"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" + integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ== + dependencies: + "@ethersproject/address" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/keccak256" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/rlp" "^5.4.0" + "@ethersproject/signing-key" "^5.4.0" + +"@ethersproject/web@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" + integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og== + dependencies: + "@ethersproject/base64" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.1.0": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.0", "@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.0", "@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.0", "@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.0", "@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" + integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + dependencies: + "@nodelib/fs.stat" "2.0.4" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + dependencies: + "@nodelib/fs.scandir" "2.1.4" + fastq "^1.6.0" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@pmmmwh/react-refresh-webpack-plugin@0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766" + integrity sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ== + dependencies: + ansi-html "^0.0.7" + error-stack-parser "^2.0.6" + html-entities "^1.2.1" + native-url "^0.2.6" + schema-utils "^2.6.5" + source-map "^0.7.3" + +"@popperjs/core@^2.9.2": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.3.tgz#8b68da1ebd7fc603999cf6ebee34a4899a14b88e" + integrity sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ== + +"@react-aria/ssr@^3.0.1": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.0.3.tgz#eabdb731374df07f361ca9ed5abb4601e0c8aefe" + integrity sha512-m7mFU1GGkdlSq++QdAcV6n21B0mc8TEqCSuMdhckkL4psMrnuj5rUoW8pI17LvIxB6RU2tGnjtjJeVBuiE86ow== + dependencies: + "@babel/runtime" "^7.6.2" + +"@restart/context@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@restart/context/-/context-2.1.4.tgz#a99d87c299a34c28bd85bb489cb07bfd23149c02" + integrity sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q== + +"@restart/hooks@^0.3.26": + version "0.3.27" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.3.27.tgz#91f356d66d4699a8cd8b3d008402708b6a9dc505" + integrity sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw== + dependencies: + dequal "^2.0.2" + +"@restart/hooks@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.0.tgz#f923d7c96b9bce969de097dd458c822b5c8072ee" + integrity sha512-+RenTVobiCHPjUTbhQDV8m0PU1xEWqgloMIIOlf86oKnfghKR/l4tKto7TH543shEQZZa7ARSMTvT0cXN9u8+g== + dependencies: + dequal "^2.0.2" + +"@restart/ui@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-0.2.2.tgz#57067918a5ac5761848bb70a74aa020025cc91ce" + integrity sha512-PgNkiyOaWwx8ttQ45KNABXU3780fB/UxNFxcsCpC4RRAlaByZHHbNLOKfhuFs+ZUU0uLxEH9wYQEhDAZc6ajkA== + dependencies: + "@babel/runtime" "^7.13.16" + "@popperjs/core" "^2.9.2" + "@react-aria/ssr" "^3.0.1" + "@restart/hooks" "^0.4.0" + "@types/warning" "^3.0.0" + dequal "^2.0.2" + dom-helpers "^5.2.0" + prop-types "^15.7.2" + uncontrollable "^7.2.1" + warning "^4.0.3" + +"@rollup/plugin-node-resolve@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" + integrity sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q== + dependencies: + "@rollup/pluginutils" "^3.0.8" + "@types/resolve" "0.0.8" + builtin-modules "^3.1.0" + is-module "^1.0.0" + resolve "^1.14.2" + +"@rollup/plugin-replace@^2.3.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.1.tgz#c411b5ab72809fb1bfc8b487d8d02eef661460d3" + integrity sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sinonjs/commons@^1.7.0": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" + integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@surma/rollup-plugin-off-main-thread@^1.1.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58" + integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A== + dependencies: + ejs "^2.6.1" + magic-string "^0.25.0" + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/webpack@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + loader-utils "^2.0.0" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@testing-library/dom@^7.28.1": + version "7.31.2" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" + integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.6" + lz-string "^1.4.4" + pretty-format "^26.6.2" + +"@testing-library/jest-dom@^5.11.4": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.14.1.tgz#8501e16f1e55a55d675fe73eecee32cdaddb9766" + integrity sha512-dfB7HVIgTNCxH22M1+KU6viG5of2ldoA5ly8Ar8xkezKHKXjRvznCdbMbqjYGgO2xjRbwnR+rR8MLUIqF3kKbQ== + dependencies: + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^4.2.2" + chalk "^3.0.0" + css "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react@^11.1.0": + version "11.2.7" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.7.tgz#b29e2e95c6765c815786c0bc1d5aed9cb2bf7818" + integrity sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.28.1" + +"@testing-library/user-event@^12.1.10": + version "12.8.3" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.8.3.tgz#1aa3ed4b9f79340a1e1836bc7f57c501e838704a" + integrity sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ== + dependencies: + "@babel/runtime" "^7.12.5" + +"@typechain/web3-v1@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@typechain/web3-v1/-/web3-v1-3.1.0.tgz#3124cd25589dad93c5115acb87c65ea708d89ab3" + integrity sha512-pZG8Kd+sm5DzxZsBn/4SVBb1tu3k6Kh5K6iUiqKffuTJoMHGkDpJLLC+UTGPMs3+8q+0tAGwgGFDFdaCjAkqFQ== + dependencies: + lodash "^4.17.15" + ts-essentials "^7.0.1" + +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== + +"@types/aria-query@^4.2.0": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" + integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz#b9a1efa635201ba9bc850323a8793ee2d36c04a0" + integrity sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg== + dependencies: + "@babel/types" "^7.3.0" + +"@types/bn.js@^4.11.5": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/bn.js@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" + integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + dependencies: + "@types/node" "*" + +"@types/eslint@^7.2.6": + version "7.2.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" + integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/html-minifier-terser@^5.0.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" + integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== + +"@types/invariant@^2.2.33": + version "2.2.34" + resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.34.tgz#05e4f79f465c2007884374d4795452f995720bbe" + integrity sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*": + version "27.0.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.1.tgz#fafcc997da0135865311bb1215ba16dba6bdf4ca" + integrity sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw== + dependencies: + jest-diff "^27.0.0" + pretty-format "^27.0.0" + +"@types/jest@^26.0.15": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "14.14.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" + integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== + +"@types/node@^12.0.0", "@types/node@^12.12.6": + version "12.20.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.20.tgz#ce3d6c13c15c5e622a85efcd3a1cb2d9c7fa43a6" + integrity sha512-kqmxiJg4AT7rsSPIhO6eoBIx9mNwwpeH42yjtgQh6X2ANSpLpvToMXv+LMFdfxpwG1FZXZ41OGZMiUAtbBLEvg== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + +"@types/prettier@^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.1.tgz#374e31645d58cb18a07b3ecd8e9dede4deb2cccd" + integrity sha512-DxZZbyMAM9GWEzXL+BMZROWz9oo6A9EilwwOMET2UVu2uZTqMWS5S69KVtuVKaRjCUpcrOXRalet86/OpG4kqw== + +"@types/prettier@^2.1.1": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== + +"@types/prop-types@*", "@types/prop-types@^15.7.3": + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== + +"@types/q@^1.5.1": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + +"@types/react-dom@^17.0.0": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" + integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.1": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.2.tgz#38890fd9db68bf1f2252b99a942998dc7877c5b3" + integrity sha512-KibDWL6nshuOJ0fu8ll7QnV/LVTo3PzQ9aCPnRUYPfX7eZohHwLIdNHj7pftanREzHNP4/nJa8oeM73uSiavMQ== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@>=16.14.8", "@types/react@>=16.9.11", "@types/react@^17.0.0": + version "17.0.19" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.19.tgz#8f2a85e8180a43b57966b237d26a29481dacc991" + integrity sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/resolve@0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" + integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== + dependencies: + "@types/node" "*" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@types/secp256k1@^4.0.1": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + +"@types/tapable@*", "@types/tapable@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" + integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== + +"@types/testing-library__jest-dom@^5.9.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.1.tgz#014162a5cee6571819d48e999980694e2f657c3c" + integrity sha512-Gk9vaXfbzc5zCXI9eYE9BI5BNHEp4D3FWjgqBE/ePGYElLAP+KvxBcsdkwfIVvezs605oiyd/VrpiHe3Oeg+Aw== + dependencies: + "@types/jest" "*" + +"@types/uglify-js@*": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.12.0.tgz#2bb061c269441620d46b946350c8f16d52ef37c5" + integrity sha512-sYAF+CF9XZ5cvEBkI7RtrG9g2GtMBkviTnBxYYyq+8BWvO4QtXfwwR6a2LFwCi4evMKZfpv6U43ViYvv17Wz3Q== + dependencies: + source-map "^0.6.1" + +"@types/warning@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" + integrity sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI= + +"@types/webpack-sources@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" + integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4.41.8": + version "4.41.26" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" + integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^4.5.0": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.2.tgz#981b26b4076c62a5a55873fbef3fe98f83360c61" + integrity sha512-uiQQeu9tWl3f1+oK0yoAv9lt/KXO24iafxgQTkIYO/kitruILGx3uH+QtIAHqxFV+yIsdnJH+alel9KuE3J15Q== + dependencies: + "@typescript-eslint/experimental-utils" "4.15.2" + "@typescript-eslint/scope-manager" "4.15.2" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + lodash "^4.17.15" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.15.2", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.2.tgz#5efd12355bd5b535e1831282e6cf465b9a71cf36" + integrity sha512-Fxoshw8+R5X3/Vmqwsjc8nRO/7iTysRtDqx6rlfLZ7HbT8TZhPeQqbPjTyk2RheH3L8afumecTQnUc9EeXxohQ== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.15.2" + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/typescript-estree" "4.15.2" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/experimental-utils@^3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" + integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.5.0": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.15.2.tgz#c804474321ef76a3955aec03664808f0d6e7872e" + integrity sha512-SHeF8xbsC6z2FKXsaTb1tBCf0QZsjJ94H6Bo51Y1aVEZ4XAefaw5ZAilMoDPlGghe+qtq7XdTiDlGfVTOmvA+Q== + dependencies: + "@typescript-eslint/scope-manager" "4.15.2" + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/typescript-estree" "4.15.2" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.15.2.tgz#5725bda656995960ae1d004bfd1cd70320f37f4f" + integrity sha512-Zm0tf/MSKuX6aeJmuXexgdVyxT9/oJJhaCkijv0DvJVT3ui4zY6XYd6iwIo/8GEZGy43cd7w1rFMiCLHbRzAPQ== + dependencies: + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/visitor-keys" "4.15.2" + +"@typescript-eslint/types@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== + +"@typescript-eslint/types@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.15.2.tgz#04acf3a2dc8001a88985291744241e732ef22c60" + integrity sha512-r7lW7HFkAarfUylJ2tKndyO9njwSyoy6cpfDKWPX6/ctZA+QyaYscAHXVAfJqtnY6aaTwDYrOhp+ginlbc7HfQ== + +"@typescript-eslint/typescript-estree@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== + dependencies: + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/visitor-keys" "3.10.1" + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.2.tgz#c2f7a1e94f3428d229d5ecff3ead6581ee9b62fa" + integrity sha512-cGR8C2g5SPtHTQvAymEODeqx90pJHadWsgTtx6GbnTWKqsg7yp6Eaya9nFzUd4KrKhxdYTTFBiYeTPQaz/l8bw== + dependencies: + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/visitor-keys" "4.15.2" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== + dependencies: + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/visitor-keys@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.2.tgz#3d1c7979ce75bf6acf9691109bd0d6b5706192b9" + integrity sha512-TME1VgSb7wTwgENN5KVj4Nqg25hP8DisXxNBojM4Nn31rYaNDIocNm5cmjOFfh42n7NVERxWrDFoETO/76ePyg== + dependencies: + "@typescript-eslint/types" "4.15.2" + eslint-visitor-keys "^2.0.0" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +address@1.1.2, address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^7.0.2: + version "7.1.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84" + integrity sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-html@0.0.7, ansi-html@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3, anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-back@^1.0.3, array-back@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" + integrity sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs= + dependencies: + typical "^2.6.0" + +array-back@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" + integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== + dependencies: + typical "^2.6.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.1, array-includes@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +array.prototype.flatmap@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + function-bind "^1.1.1" + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.6.1: + version "9.8.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +available-typed-arrays@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" + integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axe-core@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.2.tgz#7cf783331320098bfbef620df3b3c770147bc224" + integrity sha512-V+Nq70NxKhYt89ArVcaNL9FDryB3vQOd+BFXZIfO3RP6rwtj+2yqqqdHEkacutglPaZLkJeuXKCjCJDMGPtPqg== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" + integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== + dependencies: + babylon "^6.18.0" + +babel-jest@^26.6.0, babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-loader@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + dependencies: + "@babel/runtime" "^7.7.2" + cosmiconfig "^6.0.0" + resolve "^1.12.0" + +babel-plugin-named-asset-import@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz#156cd55d3f1228a5765774340937afc8398067dd" + integrity sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw== + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-plugin-transform-object-rest-spread@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-react-remove-prop-types@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +babel-preset-react-app@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.0.tgz#689b60edc705f8a70ce87f47ab0e560a317d7045" + integrity sha512-itL2z8v16khpuKutx5IH8UdCdSTuzrOhRFTEdIhveZ2i1iBKDrVE0ATa4sFVy+02GLucZNVBWtoarXBy0Msdpg== + dependencies: + "@babel/core" "7.12.3" + "@babel/plugin-proposal-class-properties" "7.12.1" + "@babel/plugin-proposal-decorators" "7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "7.12.1" + "@babel/plugin-proposal-numeric-separator" "7.12.1" + "@babel/plugin-proposal-optional-chaining" "7.12.1" + "@babel/plugin-transform-flow-strip-types" "7.12.1" + "@babel/plugin-transform-react-display-name" "7.12.1" + "@babel/plugin-transform-runtime" "7.12.1" + "@babel/preset-env" "7.12.1" + "@babel/preset-react" "7.12.1" + "@babel/preset-typescript" "7.12.1" + "@babel/runtime" "7.12.1" + babel-plugin-macros "2.8.0" + babel-plugin-transform-react-remove-prop-types "0.4.24" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base-x@^3.0.2, base-x@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" + integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bfj@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" + integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + dependencies: + bluebird "^3.5.5" + check-types "^11.1.1" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bignumber.js@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" + integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +blakejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" + integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== + +bluebird@^3.5.0, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^4.11.1, bn.js@^4.11.6: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== + +bn.js@^5.1.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.0, body-parser@^1.16.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +bootstrap@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.0.tgz#543ef8f44f4b9af67b0230f19508542fec38ef55" + integrity sha512-bs74WNI9BgBo3cEovmdMHikSKoXnDgA6VQjJ7TyTotU6L7d41ZyCEEelPwkYEzsG/Zjv3ie9IE3EMAje0W9Xew== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@4.14.2: + version "4.14.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" + integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== + dependencies: + caniuse-lite "^1.0.30001125" + electron-to-chromium "^1.3.564" + escalade "^3.0.2" + node-releases "^1.1.61" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.6.2, browserslist@^4.6.4: + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== + dependencies: + caniuse-lite "^1.0.30001181" + colorette "^1.2.1" + electron-to-chromium "^1.3.649" + escalade "^3.1.1" + node-releases "^1.1.70" + +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +bufferutil@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.3.tgz#66724b756bed23cd7c28c4d306d7994f9943cc6b" + integrity sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw== + dependencies: + node-gyp-build "^4.2.0" + +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0, camelcase@^6.1.0, camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001181: + version "1.0.30001191" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz#bacb432b6701f690c8c5f7c680166b9a9f0843d9" + integrity sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +check-types@^11.1.1: + version "11.1.2" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" + integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.4.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +chownr@^1.1.1, chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + +clean-css@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" + integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.4" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +command-line-args@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" + integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== + dependencies: + array-back "^2.0.0" + find-replace "^1.0.3" + typical "^2.6.1" + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +confusing-browser-globals@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" + integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookiejar@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" + integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.6.2, core-js-compat@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.0.tgz#29da39385f16b71e1915565aa0385c4e0963ad56" + integrity sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ== + dependencies: + browserslist "^4.16.3" + semver "7.0.0" + +core-js-pure@^3.0.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.9.0.tgz#326cc74e1fef8b7443a6a793ddb0adfcd81f9efb" + integrity sha512-3pEcmMZC9Cq0D4ZBh3pe2HLtqxpGNJBLXF/kZ2YzK17RbKp94w0HFbdbSx8H8kAlZG5k76hvLrkPm57Uyef+kg== + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.6.5: + version "3.9.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.9.0.tgz#790b1bb11553a2272b36e2625c7179db345492f8" + integrity sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@^2.8.1: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +crc-32@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@3.12.0, crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" + integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== + dependencies: + camelcase "^6.0.0" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^2.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.3" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.1" + semver "^7.3.2" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0, css-select@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" + integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + +cssdb@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +damerau-levenshtein@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" + integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.1, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +dequal@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" + integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff-sequences@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" + integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.7.tgz#8c2aa6325968f2933160a0b7dbb380893ddf3e7d" + integrity sha512-ml3lJIq9YjUfM9TUnEPvEYWFSwivwIGBPKpewX7tii7fwCazA8yCioGdqQcNsItPpfFvSJ3VIdMQPj60LJhcQA== + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.649: + version "1.3.671" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.671.tgz#8feaed6eae42d279fa4611f58c42a5a1eb81b2a0" + integrity sha512-RTD97QkdrJKaKwRv9h/wGAaoR2lGxNXEcBXS31vjitgTPwTWAbLdS7cEsBK68eEQy7p6YyT8D5BxBEYHu2SuwQ== + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.1.tgz#c9b25604256bb3428964bead3ab63069d736f7ee" + integrity sha512-117l1H6U4X3Krn+MrzYrL57d5H7siRHWraBs7s+LjRuFK7Fe7hJqnJ0skWlinqsycVLU5YAo6L8CsEYQ0V5prg== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.17.2: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0-next.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" + integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.1" + is-regex "^1.1.1" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.3" + string.prototype.trimstart "^1.0.3" + +es-abstract@^1.18.5: + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.0.2, escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.14.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-react-app@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e" + integrity sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A== + dependencies: + confusing-browser-globals "^1.0.10" + +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-flowtype@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.2.2.tgz#c6e5dd2fad4e757a1c63e652da6cff597659554f" + integrity sha512-C4PlPYpszr9h1cBfUbTNRI1IdxUCF0qrXAHkXS2+bESp7WUUCnvb3UBBnYlaQLvJYJ2lRz+2SPQQ/WyV7p/Tow== + dependencies: + lodash "^4.17.15" + string-natural-compare "^3.0.1" + +eslint-plugin-import@^2.22.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-jest@^24.1.0: + version "24.1.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.1.5.tgz#1e866a9f0deac587d0a3d5d7cefe99815a580de2" + integrity sha512-FIP3lwC8EzEG+rOs1y96cOJmMVpdFNreoDJv29B5vIupVssRi8zrSY3QadogT0K3h1Y8TMxJ6ZSAzYUmFCp2hg== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-jsx-a11y@^6.3.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@^7.21.5: + version "7.22.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz#3d1c542d1d3169c45421c1215d9470e341707269" + integrity sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== + dependencies: + array-includes "^3.1.1" + array.prototype.flatmap "^1.2.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + object.entries "^1.1.2" + object.fromentries "^2.0.2" + object.values "^1.1.1" + prop-types "^15.7.2" + resolve "^1.18.1" + string.prototype.matchall "^4.0.2" + +eslint-plugin-testing-library@^3.9.2: + version "3.10.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.1.tgz#4dd02306d601c3238fdabf1d1dbc5f2a8e85d531" + integrity sha512-nQIFe2muIFv2oR2zIuXE4vTbcFNx8hZKRzgHZqJg8rfopIWwoTwtlbCCNELT/jXzVe1uZF68ALGYoDXjLczKiQ== + dependencies: + "@typescript-eslint/experimental-utils" "^3.10.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint-webpack-plugin@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.2.tgz#4ee17577d6392bf72048080a1678d6237183db81" + integrity sha512-ndD9chZ/kaGnjjx7taRg7c6FK/YKb29SSYzaLtPBIYLYJQmZtuKqtQbAvTS2ymiMQT6X0VW9vZIHK0KLstv93Q== + dependencies: + "@types/eslint" "^7.2.6" + arrify "^2.0.1" + jest-worker "^26.6.2" + micromatch "^4.0.2" + schema-utils "^3.0.0" + +eslint@^7.11.0: + version "7.20.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.20.0.tgz#db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7" + integrity sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.3.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + file-entry-cache "^6.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.20" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eth-ens-namehash@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26: + version "0.1.29" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz#e2b43a30bfcdbcb432a4eb42bd5f2393209b3fd5" + integrity sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.4" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + +ethjs-util@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^26.6.0, expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +express@^4.14.0, express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz#8b8f2ac8bf3632d67afcd65dac248d5fdc45385e" + integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +file-entry-cache@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" + integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" + integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-replace@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" + integrity sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A= + dependencies: + array-back "^1.0.4" + test-value "^2.1.0" + +find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0: + version "1.13.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" + integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-ts-checker-webpack-plugin@4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" + integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== + dependencies: + "@babel/code-frame" "^7.5.5" + chalk "^2.4.1" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2, fsevents@^2.1.3, fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^11.0.1: + version "11.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" + integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +got@9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +got@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +harmony-reflect@^1.4.6: + version "1.6.1" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^1.2.1, html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-webpack-plugin@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c" + integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.15" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +htmlparser2@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + dependencies: + harmony-reflect "^1.4.6" + +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== + dependencies: + punycode "2.1.0" + +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +immer@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" + integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-callable@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.0.0, is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + +is-regex@^1.0.4, is-regex@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + +is-regex@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-string@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3, is-typed-array@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.7.tgz#881ddc660b13cb8423b2090fa88c0fe37a83eb2f" + integrity sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA== + dependencies: + available-typed-arrays "^1.0.4" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-circus@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-26.6.0.tgz#7d9647b2e7f921181869faae1f90a2629fd70705" + integrity sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.0" + "@jest/test-result" "^26.6.0" + "@jest/types" "^26.6.0" + "@types/babel__traverse" "^7.0.4" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^26.6.0" + is-generator-fn "^2.0.0" + jest-each "^26.6.0" + jest-matcher-utils "^26.6.0" + jest-message-util "^26.6.0" + jest-runner "^26.6.0" + jest-runtime "^26.6.0" + jest-snapshot "^26.6.0" + jest-util "^26.6.0" + pretty-format "^26.6.0" + stack-utils "^2.0.2" + throat "^5.0.0" + +jest-cli@^26.6.0: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-diff@^27.0.0: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" + integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.0, jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-get-type@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" + integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.0, jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.0, jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.0.tgz#070fe7159af87b03e50f52ea5e17ee95bbee40e1" + integrity sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ== + dependencies: + "@jest/types" "^26.6.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.0" + read-pkg-up "^7.0.1" + resolve "^1.17.0" + slash "^3.0.0" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.0, jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.0, jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.0, jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.6.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watch-typeahead@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz#45221b86bb6710b7e97baaa1640ae24a07785e63" + integrity sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + jest-regex-util "^26.0.0" + jest-watcher "^26.3.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + +jest-watcher@^26.3.0, jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^26.5.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.0.tgz#546b25a1d8c888569dbbe93cae131748086a4a25" + integrity sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA== + dependencies: + "@jest/core" "^26.6.0" + import-local "^3.0.2" + jest-cli "^26.6.0" + +js-sha3@0.5.7, js-sha3@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= + +js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + +keccak@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" + integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loglevel@^1.6.8: + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.46.0, "mime-db@>= 1.43.0 < 2": + version "1.46.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" + integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== + +mime-db@1.49.0: + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.29" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" + integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== + dependencies: + mime-db "1.46.0" + +mime-types@^2.1.16: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + dependencies: + mime-db "1.49.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" + integrity sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mock-fs@^4.1.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= + +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-url@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" + integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== + dependencies: + querystring "^0.2.0" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-gyp-build@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" + integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1" + integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-releases@^1.1.61, node-releases@^1.1.70: + version "1.1.70" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" + integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + +object-inspect@^1.8.0, object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.0, object.entries@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +object.fromentries@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + dependencies: + http-https "^1.0.0" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimize-css-assets-webpack-plugin@5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" + integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== + dependencies: + cssnano "^4.1.10" + last-call-webpack-plugin "^3.0.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-headers@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" + integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.17: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-attribute-case-insensitive@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" + integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^6.0.2" + +postcss-browser-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz#1248d2d935fb72053c8e1f61a84a57292d9f65e9" + integrity sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig== + dependencies: + postcss "^7" + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.11: + version "8.0.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-flexbugs-fixes@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== + dependencies: + postcss "^7.0.26" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" + integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== + dependencies: + postcss "^7.0.2" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" + integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== + dependencies: + lodash.template "^4.5.0" + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-8.0.1.tgz#90e80a7763d7fdf2da6f2f0f82be832ce4f66776" + integrity sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ== + dependencies: + "@csstools/normalize.css" "^10.1.0" + browserslist "^4.6.2" + postcss "^7.0.17" + postcss-browser-comments "^3.0.0" + sanitize.css "^10.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + dependencies: + autoprefixer "^9.6.1" + browserslist "^4.6.4" + caniuse-lite "^1.0.30000981" + css-blank-pseudo "^0.1.4" + css-has-pseudo "^0.10.0" + css-prefers-color-scheme "^3.1.1" + cssdb "^4.4.0" + postcss "^7.0.17" + postcss-attribute-case-insensitive "^4.0.1" + postcss-color-functional-notation "^2.0.1" + postcss-color-gray "^5.0.0" + postcss-color-hex-alpha "^5.0.3" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.8" + postcss-custom-properties "^8.0.11" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-double-position-gradients "^1.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-safe-parser@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz#459dd27df6bc2ba64608824ba39e45dacf5e852d" + integrity sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ== + dependencies: + postcss "^8.1.0" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" + integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@7.0.21: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^8.1.0: + version "8.2.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe" + integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg== + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" + source-map "^0.6.1" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prettier@^2.1.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== + +pretty-bytes@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-format@^26.0.0, pretty-format@^26.6.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^27.0.0, pretty-format@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" + integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== + dependencies: + "@jest/types" "^27.0.6" + ansi-regex "^5.0.0" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" + integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + dependencies: + asap "~2.0.6" + +prompts@2.4.0, prompts@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types-extra@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" + integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== + dependencies: + react-is "^16.3.2" + warning "^4.0.0" + +prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" + integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== + +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-app-polyfill@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz#a0bea50f078b8a082970a9d853dc34b6dcc6a3cf" + integrity sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA== + dependencies: + core-js "^3.6.5" + object-assign "^4.1.1" + promise "^8.1.0" + raf "^3.4.1" + regenerator-runtime "^0.13.7" + whatwg-fetch "^3.4.1" + +react-bootstrap@^2.0.0-beta.5: + version "2.0.0-beta.5" + resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.0.0-beta.5.tgz#3bdb532cd8c13b360dd277102607e4ff7ca58013" + integrity sha512-vMRsO3akQ4utRZkMuWtJ82g0vOqzQUoHK7pZs7af3P7c43zrBWzFYM161aKBAIY6Kfhc9Wn2Ms7tZcdpc3pszA== + dependencies: + "@babel/runtime" "^7.14.0" + "@restart/context" "^2.1.4" + "@restart/hooks" "^0.3.26" + "@restart/ui" "^0.2.1" + "@types/invariant" "^2.2.33" + "@types/prop-types" "^15.7.3" + "@types/react" ">=16.14.8" + "@types/react-transition-group" "^4.4.1" + "@types/warning" "^3.0.0" + classnames "^2.3.1" + dom-helpers "^5.2.1" + invariant "^2.2.4" + prop-types "^15.7.2" + prop-types-extra "^1.1.0" + react-transition-group "^4.4.1" + uncontrollable "^7.2.1" + warning "^4.0.3" + +react-dev-utils@^11.0.3: + version "11.0.4" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" + integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== + dependencies: + "@babel/code-frame" "7.10.4" + address "1.1.2" + browserslist "4.14.2" + chalk "2.4.2" + cross-spawn "7.0.3" + detect-port-alt "1.1.6" + escape-string-regexp "2.0.0" + filesize "6.1.0" + find-up "4.1.0" + fork-ts-checker-webpack-plugin "4.1.6" + global-modules "2.0.0" + globby "11.0.1" + gzip-size "5.1.1" + immer "8.0.1" + is-root "2.1.0" + loader-utils "2.0.0" + open "^7.0.2" + pkg-up "3.1.0" + prompts "2.4.0" + react-error-overlay "^6.0.9" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + strip-ansi "6.0.0" + text-table "0.2.0" + +react-dom@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-error-overlay@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" + integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== + +react-is@^16.3.2, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-refresh@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" + integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== + +react-scripts@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-4.0.3.tgz#b1cafed7c3fa603e7628ba0f187787964cb5d345" + integrity sha512-S5eO4vjUzUisvkIPB7jVsKtuH2HhWcASREYWHAQ1FP5HyCv3xgn+wpILAEWkmy+A+tTNbSZClhxjT3qz6g4L1A== + dependencies: + "@babel/core" "7.12.3" + "@pmmmwh/react-refresh-webpack-plugin" "0.4.3" + "@svgr/webpack" "5.5.0" + "@typescript-eslint/eslint-plugin" "^4.5.0" + "@typescript-eslint/parser" "^4.5.0" + babel-eslint "^10.1.0" + babel-jest "^26.6.0" + babel-loader "8.1.0" + babel-plugin-named-asset-import "^0.3.7" + babel-preset-react-app "^10.0.0" + bfj "^7.0.2" + camelcase "^6.1.0" + case-sensitive-paths-webpack-plugin "2.3.0" + css-loader "4.3.0" + dotenv "8.2.0" + dotenv-expand "5.1.0" + eslint "^7.11.0" + eslint-config-react-app "^6.0.0" + eslint-plugin-flowtype "^5.2.0" + eslint-plugin-import "^2.22.1" + eslint-plugin-jest "^24.1.0" + eslint-plugin-jsx-a11y "^6.3.1" + eslint-plugin-react "^7.21.5" + eslint-plugin-react-hooks "^4.2.0" + eslint-plugin-testing-library "^3.9.2" + eslint-webpack-plugin "^2.5.2" + file-loader "6.1.1" + fs-extra "^9.0.1" + html-webpack-plugin "4.5.0" + identity-obj-proxy "3.0.0" + jest "26.6.0" + jest-circus "26.6.0" + jest-resolve "26.6.0" + jest-watch-typeahead "0.6.1" + mini-css-extract-plugin "0.11.3" + optimize-css-assets-webpack-plugin "5.0.4" + pnp-webpack-plugin "1.6.4" + postcss-flexbugs-fixes "4.2.1" + postcss-loader "3.0.0" + postcss-normalize "8.0.1" + postcss-preset-env "6.7.0" + postcss-safe-parser "5.0.2" + prompts "2.4.0" + react-app-polyfill "^2.0.0" + react-dev-utils "^11.0.3" + react-refresh "^0.8.3" + resolve "1.18.1" + resolve-url-loader "^3.1.2" + sass-loader "^10.0.5" + semver "7.3.2" + style-loader "1.3.0" + terser-webpack-plugin "4.2.3" + ts-pnp "1.2.0" + url-loader "4.1.1" + webpack "4.44.2" + webpack-dev-server "3.11.1" + webpack-manifest-plugin "2.2.0" + workbox-webpack-plugin "5.1.4" + optionalDependencies: + fsevents "^2.1.3" + +react-transition-group@^4.4.1: + version "4.4.2" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" + integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.7" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" + integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" + integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== + dependencies: + css-select "^2.0.2" + dom-converter "^0.2" + htmlparser2 "^3.10.1" + lodash "^4.17.20" + strip-ansi "^3.0.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.79.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url-loader@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" + integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.21" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rlp@^2.2.4: + version "2.2.6" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" + integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== + dependencies: + bn.js "^4.11.1" + +rollup-plugin-babel@^4.3.3: + version "4.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb" + integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + rollup-pluginutils "^2.8.1" + +rollup-plugin-terser@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413" + integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w== + dependencies: + "@babel/code-frame" "^7.5.5" + jest-worker "^24.9.0" + rollup-pluginutils "^2.8.2" + serialize-javascript "^4.0.0" + terser "^4.6.2" + +rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^1.31.1: + version "1.32.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" + integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== + dependencies: + "@types/estree" "*" + "@types/node" "*" + acorn "^7.1.0" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sanitize.css@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" + integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== + +sass-loader@^10.0.5: + version "10.1.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" + integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +scrypt-js@^3.0.0, scrypt-js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" + integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== + dependencies: + elliptic "^6.5.2" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.8: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== + dependencies: + node-forge "^0.10.0" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.2.1, semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^2.7.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" + integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" + integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== + dependencies: + debug "^3.2.6" + eventsource "^1.0.7" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.4.7" + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" + integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has-symbols "^1.0.1" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= + dependencies: + is-hex-prefixed "1.0.0" + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-loader@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" + integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.7.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^1.0.0, svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +swarm-js@^0.1.40: + version "0.1.40" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" + integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^7.1.0" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.4: + version "6.0.7" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== + dependencies: + ajv "^7.0.2" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^4.0.2: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + +tar@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +tempy@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" + integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== + dependencies: + temp-dir "^1.0.0" + type-fest "^0.3.1" + unique-string "^1.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.4" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2, terser@^4.6.2, terser@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.3.4: + version "5.6.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" + integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +test-value@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" + integrity sha1-Edpv9nDzRxpztiXKTz/c97t0gpE= + dependencies: + array-back "^1.0.3" + typical "^2.6.0" + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-essentials@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== + +ts-pnp@1.2.0, ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + +tsutils@^3.17.1: + version "3.20.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.20.0.tgz#ea03ea45462e146b53d70ce0893de453ff24f698" + integrity sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132" + integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== + +typechain@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-5.1.2.tgz#c8784d6155a8e69397ca47f438a3b4fb2aa939da" + integrity sha512-FuaCxJd7BD3ZAjVJoO+D6TnqKey3pQdsqOBsC83RKYWKli5BDhdf0TPkwfyjt20TUlZvOzJifz+lDwXsRkiSKA== + dependencies: + "@types/prettier" "^2.1.1" + command-line-args "^4.0.7" + debug "^4.1.1" + fs-extra "^7.0.0" + glob "^7.1.6" + js-sha3 "^0.8.0" + lodash "^4.17.15" + mkdirp "^1.0.4" + prettier "^2.1.2" + ts-essentials "^7.0.1" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^4.1.2: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== + +typical@^2.6.0, typical@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" + integrity sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0= + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +uncontrollable@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738" + integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ== + dependencies: + "@babel/runtime" "^7.6.3" + "@types/react" ">=16.9.11" + invariant "^2.2.4" + react-lifecycles-compat "^3.0.4" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1, upath@^1.1.2, upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.4.3, url-parse@^1.4.7: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +utf-8-validate@^5.0.2: + version "5.0.5" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1" + integrity sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ== + dependencies: + node-gyp-build "^4.2.0" + +utf8@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +util@^0.12.0: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +v8-to-istanbul@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +warning@^4.0.0, warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-vitals@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-1.1.2.tgz#06535308168986096239aa84716e68b4c6ae6d1c" + integrity sha512-PFMKIY+bRSXlMxVAQ+m2aw9c/ioUYfDgrYot0YUa+/xa0sakubWhSDyxAKwzymvXVdF4CZI71g06W+mqhzu6ig== + +web3-bzz@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.5.2.tgz#a04feaa19462cff6d5a8c87dad1aca4619d9dfc8" + integrity sha512-W/sPCdA+XQ9duUYKHAwf/g69cbbV8gTCRsa1MpZwU7spXECiyJ2EvD/QzAZ+UpJk3GELXFF/fUByeZ3VRQKF2g== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + +web3-core-helpers@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.5.2.tgz#b6bd5071ca099ba3f92dfafb552eed2b70af2795" + integrity sha512-U7LJoeUdQ3aY9t5gU7t/1XpcApsWm+4AcW5qKl/44ZxD44w0Dmsq1c5zJm3GuLr/a9MwQfXK4lpmvxVQWHHQRg== + dependencies: + web3-eth-iban "1.5.2" + web3-utils "1.5.2" + +web3-core-method@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.5.2.tgz#d1d602657be1000a29d11e3ca3bf7bc778dea9a5" + integrity sha512-/mC5t9UjjJoQmJJqO5nWK41YHo+tMzFaT7Tp7jDCQsBkinE68KsUJkt0jzygpheW84Zra0DVp6q19gf96+cugg== + dependencies: + "@ethereumjs/common" "^2.4.0" + "@ethersproject/transactions" "^5.0.0-beta.135" + web3-core-helpers "1.5.2" + web3-core-promievent "1.5.2" + web3-core-subscriptions "1.5.2" + web3-utils "1.5.2" + +web3-core-promievent@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.5.2.tgz#2dc9fe0e5bbeb7c360fc1aac5f12b32d9949a59b" + integrity sha512-5DacbJXe98ozSor7JlkTNCy6G8945VunRRkPxMk98rUrg60ECVEM/vuefk1atACzjQsKx6tmLZuHxbJQ64TQeQ== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.5.2.tgz#43ccc00779394c941b28e6e07e217350fd1ded71" + integrity sha512-oRVW9OrAsXN2JIZt68OEg1Mb1A9a/L3JAGMv15zLEFEnJEGw0KQsGK1ET2kvZBzvpFd5G0EVkYCnx7WDe4HSNw== + dependencies: + util "^0.12.0" + web3-core-helpers "1.5.2" + web3-providers-http "1.5.2" + web3-providers-ipc "1.5.2" + web3-providers-ws "1.5.2" + +web3-core-subscriptions@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.5.2.tgz#8eaebde44f81fc13c45b555c4422fe79393da9cf" + integrity sha512-hapI4rKFk22yurtIv0BYvkraHsM7epA4iI8Np+HuH6P9DD0zj/llaps6TXLM9HyacLBRwmOLZmr+pHBsPopUnQ== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.5.2" + +web3-core@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.5.2.tgz#ca2b9b1ed3cf84d48b31c9bb91f7628f97cfdcd5" + integrity sha512-sebMpQbg3kbh3vHUbHrlKGKOxDWqjgt8KatmTBsTAWj/HwWYVDzeX+2Q84+swNYsm2DrTBVFlqTErFUwPBvyaA== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-core-requestmanager "1.5.2" + web3-utils "1.5.2" + +web3-eth-abi@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.5.2.tgz#b627eada967f39ae4657ddd61b693cb00d55cb29" + integrity sha512-P3bJbDR5wib4kWGfVeBKBVi27T+AiHy4EJxYM6SMNbpm3DboLDdisu9YBd6INMs8rzxgnprBbGmmyn4jKIDKAA== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.5.2" + +web3-eth-accounts@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.5.2.tgz#cf506c21037fa497fe42f1f055980ce4acf83731" + integrity sha512-F8mtzxgEhxfLc66vPi0Gqd6mpscvvk7Ua575bsJ1p9J2X/VtuKgDgpWcU4e4LKeROQ+ouCpAG9//0j9jQuij3A== + dependencies: + "@ethereumjs/common" "^2.3.0" + "@ethereumjs/tx" "^3.2.1" + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" + uuid "3.3.2" + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-utils "1.5.2" + +web3-eth-contract@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.5.2.tgz#ffbd799fd01e36596aaadefba323e24a98a23c2f" + integrity sha512-4B8X/IPFxZCTmtENpdWXtyw5fskf2muyc3Jm5brBQRb4H3lVh1/ZyQy7vOIkdphyaXu4m8hBLHzeyKkd37mOUg== + dependencies: + "@types/bn.js" "^4.11.5" + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-core-promievent "1.5.2" + web3-core-subscriptions "1.5.2" + web3-eth-abi "1.5.2" + web3-utils "1.5.2" + +web3-eth-ens@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.5.2.tgz#ecb3708f0e8e2e847e9d89e8428da12c30bba6a4" + integrity sha512-/UrLL42ZOCYge+BpFBdzG8ICugaRS4f6X7PxJKO+zAt+TwNgBpjuWfW/ZYNcuqJun/ZyfcTuj03TXqA1RlNhZQ== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-promievent "1.5.2" + web3-eth-abi "1.5.2" + web3-eth-contract "1.5.2" + web3-utils "1.5.2" + +web3-eth-iban@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.5.2.tgz#f390ad244ef8a6c94de7c58736b0b80a484abc8e" + integrity sha512-C04YDXuSG/aDwOHSX+HySBGb0KraiAVt+/l1Mw7y/fCUrKC/K0yYzMYqY/uYOcvLtepBPsC4ZfUYWUBZ2PO8Vg== + dependencies: + bn.js "^4.11.9" + web3-utils "1.5.2" + +web3-eth-personal@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.5.2.tgz#043335a19ab59e119ba61e3bd6c3b8cde8120490" + integrity sha512-nH5N2GiVC0C5XeMEKU16PeFP3Hb3hkPvlR6Tf9WQ+pE+jw1c8eaXBO1CJQLr15ikhUF3s94ICyHcfjzkDsmRbA== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-net "1.5.2" + web3-utils "1.5.2" + +web3-eth@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.5.2.tgz#0f6470df60a2a7d04df4423ca7721db8ed5ad72b" + integrity sha512-DwWQ6TCOUqvYyo7T20S7HpQDPveNHNqOn2Q2F3E8ZFyEjmqT4XsGiwvm08kB/VgQ4e/ANyq/i8PPFSYMT8JKHg== + dependencies: + web3-core "1.5.2" + web3-core-helpers "1.5.2" + web3-core-method "1.5.2" + web3-core-subscriptions "1.5.2" + web3-eth-abi "1.5.2" + web3-eth-accounts "1.5.2" + web3-eth-contract "1.5.2" + web3-eth-ens "1.5.2" + web3-eth-iban "1.5.2" + web3-eth-personal "1.5.2" + web3-net "1.5.2" + web3-utils "1.5.2" + +web3-net@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.5.2.tgz#58915d7e2dad025d2a08f02c865f3abe61c48eff" + integrity sha512-VEc9c+jfoERhbJIxnx0VPlQDot8Lm4JW/tOWFU+ekHgIiu2zFKj5YxhURIth7RAbsaRsqCb79aE+M0eI8maxVQ== + dependencies: + web3-core "1.5.2" + web3-core-method "1.5.2" + web3-utils "1.5.2" + +web3-providers-http@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.5.2.tgz#94f95fe5572ca54aa2c2ffd42c63956436c9eb0a" + integrity sha512-dUNFJc9IMYDLZnkoQX3H4ZjvHjGO6VRVCqrBrdh84wPX/0da9dOA7DwIWnG0Gv3n9ybWwu5JHQxK4MNQ444lyA== + dependencies: + web3-core-helpers "1.5.2" + xhr2-cookies "1.1.0" + +web3-providers-ipc@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.5.2.tgz#68a516883c998eeddf60df4cead77baca4fb4aaa" + integrity sha512-SJC4Sivt4g9LHKlRy7cs1jkJgp7bjrQeUndE6BKs0zNALKguxu6QYnzbmuHCTFW85GfMDjhvi24jyyZHMnBNXQ== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.5.2" + +web3-providers-ws@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.5.2.tgz#d336a93ed608b40cdcadfadd1f1bc8d32ea046e0" + integrity sha512-xy9RGlyO8MbJDuKv2vAMDkg+en+OvXG0CGTCM2BTl6l1vIdHpCa+6A/9KV2rK8aU9OBZ7/Pf+Y19517kHVl9RA== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.5.2" + websocket "^1.0.32" + +web3-shh@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.5.2.tgz#a72a3d903c0708a004db94a72d934a302d880aea" + integrity sha512-wOxOcYt4Sa0AHAI8gG7RulCwVuVjSRS/M/AbFsea3XfJdN6sU13/syY7OdZNjNYuKjYTzxKYrd3dU/K2iqffVw== + dependencies: + web3-core "1.5.2" + web3-core-method "1.5.2" + web3-core-subscriptions "1.5.2" + web3-net "1.5.2" + +web3-utils@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.5.2.tgz#150982dcb1918ffc54eba87528e28f009ebc03aa" + integrity sha512-quTtTeQJHYSxAwIBOCGEcQtqdVcFWX6mCFNoqnp+mRbq+Hxbs8CGgO/6oqfBx4OvxIOfCpgJWYVHswRXnbEu9Q== + dependencies: + bn.js "^4.11.9" + eth-lib "0.2.8" + ethereum-bloom-filters "^1.0.6" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + +web3@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.5.2.tgz#736ca2f39048c63964203dd811f519400973e78d" + integrity sha512-aapKLdO8t7Cos6tZLeeQUtCJvTiPMlLcHsHHDLSBZ/VaJEucSTxzun32M8sp3BmF4waDEmhY+iyUM1BKvtAcVQ== + dependencies: + web3-bzz "1.5.2" + web3-core "1.5.2" + web3-eth "1.5.2" + web3-eth-personal "1.5.2" + web3-net "1.5.2" + web3-shh "1.5.2" + web3-utils "1.5.2" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz#c74028bf5ba8885aaf230e48a20e8936ab8511f0" + integrity sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-manifest-plugin@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz#19ca69b435b0baec7e29fbe90fb4015de2de4f16" + integrity sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ== + dependencies: + fs-extra "^7.0.0" + lodash ">=3.5 <5" + object.entries "^1.1.0" + tapable "^1.0.0" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.44.2: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +websocket@^1.0.32: + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@^3.4.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.1.tgz#93bc4005af6c2cc30ba3e42ec3125947c8f54ed3" + integrity sha512-IEmN/ZfmMw6G1hgZpVd0LuZXOQDisrMOZrzYd5x3RAK4bMPlJohKUZWZ9t/QsTvH0dV9TbPDcc2OSuIDcihnHA== + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-typed-array@^1.1.2: + version "1.1.6" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.6.tgz#f3713d801da0720a7f26f50c596980a9f5c8b383" + integrity sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q== + dependencies: + available-typed-arrays "^1.0.4" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.6" + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workbox-background-sync@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz#5ae0bbd455f4e9c319e8d827c055bb86c894fd12" + integrity sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA== + dependencies: + workbox-core "^5.1.4" + +workbox-broadcast-update@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz#0eeb89170ddca7f6914fa3523fb14462891f2cfc" + integrity sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA== + dependencies: + workbox-core "^5.1.4" + +workbox-build@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-5.1.4.tgz#23d17ed5c32060c363030c8823b39d0eabf4c8c7" + integrity sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow== + dependencies: + "@babel/core" "^7.8.4" + "@babel/preset-env" "^7.8.4" + "@babel/runtime" "^7.8.4" + "@hapi/joi" "^15.1.0" + "@rollup/plugin-node-resolve" "^7.1.1" + "@rollup/plugin-replace" "^2.3.1" + "@surma/rollup-plugin-off-main-thread" "^1.1.1" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^8.1.0" + glob "^7.1.6" + lodash.template "^4.5.0" + pretty-bytes "^5.3.0" + rollup "^1.31.1" + rollup-plugin-babel "^4.3.3" + rollup-plugin-terser "^5.3.1" + source-map "^0.7.3" + source-map-url "^0.4.0" + stringify-object "^3.3.0" + strip-comments "^1.0.2" + tempy "^0.3.0" + upath "^1.2.0" + workbox-background-sync "^5.1.4" + workbox-broadcast-update "^5.1.4" + workbox-cacheable-response "^5.1.4" + workbox-core "^5.1.4" + workbox-expiration "^5.1.4" + workbox-google-analytics "^5.1.4" + workbox-navigation-preload "^5.1.4" + workbox-precaching "^5.1.4" + workbox-range-requests "^5.1.4" + workbox-routing "^5.1.4" + workbox-strategies "^5.1.4" + workbox-streams "^5.1.4" + workbox-sw "^5.1.4" + workbox-window "^5.1.4" + +workbox-cacheable-response@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz#9ff26e1366214bdd05cf5a43da9305b274078a54" + integrity sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA== + dependencies: + workbox-core "^5.1.4" + +workbox-core@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-5.1.4.tgz#8bbfb2362ecdff30e25d123c82c79ac65d9264f4" + integrity sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg== + +workbox-expiration@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-5.1.4.tgz#92b5df461e8126114943a3b15c55e4ecb920b163" + integrity sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ== + dependencies: + workbox-core "^5.1.4" + +workbox-google-analytics@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz#b3376806b1ac7d7df8418304d379707195fa8517" + integrity sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA== + dependencies: + workbox-background-sync "^5.1.4" + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + workbox-strategies "^5.1.4" + +workbox-navigation-preload@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz#30d1b720d26a05efc5fa11503e5cc1ed5a78902a" + integrity sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ== + dependencies: + workbox-core "^5.1.4" + +workbox-precaching@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-5.1.4.tgz#874f7ebdd750dd3e04249efae9a1b3f48285fe6b" + integrity sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA== + dependencies: + workbox-core "^5.1.4" + +workbox-range-requests@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz#7066a12c121df65bf76fdf2b0868016aa2bab859" + integrity sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw== + dependencies: + workbox-core "^5.1.4" + +workbox-routing@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-5.1.4.tgz#3e8cd86bd3b6573488d1a2ce7385e547b547e970" + integrity sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw== + dependencies: + workbox-core "^5.1.4" + +workbox-strategies@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-5.1.4.tgz#96b1418ccdfde5354612914964074d466c52d08c" + integrity sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA== + dependencies: + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + +workbox-streams@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-5.1.4.tgz#05754e5e3667bdc078df2c9315b3f41210d8cac0" + integrity sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw== + dependencies: + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + +workbox-sw@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-5.1.4.tgz#2bb34c9f7381f90d84cef644816d45150011d3db" + integrity sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA== + +workbox-webpack-plugin@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz#7bfe8c16e40fe9ed8937080ac7ae9c8bde01e79c" + integrity sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ== + dependencies: + "@babel/runtime" "^7.5.5" + fast-json-stable-stringify "^2.0.0" + source-map-url "^0.4.0" + upath "^1.1.2" + webpack-sources "^1.3.0" + workbox-build "^5.1.4" + +workbox-window@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-5.1.4.tgz#2740f7dea7f93b99326179a62f1cc0ca2c93c863" + integrity sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw== + dependencies: + workbox-core "^5.1.4" + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +ws@^7.2.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== + +xhr-request-promise@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== + dependencies: + xhr-request "^1.1.0" + +xhr-request@^1.0.1, xhr-request@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr2-cookies@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= + dependencies: + cookiejar "^2.1.1" + +xhr@^2.0.4, xhr@^2.3.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.7.2: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 5d2f6e4862f2ab17fb3be65a11b9eed06c9d278d Mon Sep 17 00:00:00 2001 From: Muhammad Owais <72313527+mohmmad-owais@users.noreply.github.com> Date: Sun, 19 Sep 2021 23:37:05 +0500 Subject: [PATCH 2/2] small function changes --- step34_projects/project-04/backend/contracts/DEX.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/step34_projects/project-04/backend/contracts/DEX.sol b/step34_projects/project-04/backend/contracts/DEX.sol index 1d479c9..f2fe945 100644 --- a/step34_projects/project-04/backend/contracts/DEX.sol +++ b/step34_projects/project-04/backend/contracts/DEX.sol @@ -137,9 +137,9 @@ contract DEX { } function buy() public payable { - uint256 amountTobuy = msg.value; + uint256 amountTobuy = 10; uint256 dexBalance = token.balanceOf(address(this)); - //require(amountTobuy > 0, "You need to send some Ether"); + require(amountTobuy > 0, "You need to send some Ether"); require(amountTobuy <= dexBalance, "Not enough tokens in the reserve"); token.transfer(msg.sender, amountTobuy); emit Bought(amountTobuy);