From 18dd1dd2c727798c9b3632d73c9b7826799c2d91 Mon Sep 17 00:00:00 2001 From: Marcelo Jorge Vieira Date: Sun, 3 May 2020 14:31:43 -0300 Subject: [PATCH] Initial version --- .gitignore | 2 + .lintstagedrc | 3 + LICENSE | 27 + Makefile | 8 + README.md | 78 +- finance-wallet-frontend.png | Bin 0 -> 252211 bytes package.json | 22 +- public/favicon.ico | Bin 3150 -> 15406 bytes public/index.html | 11 +- public/logo192.png | Bin 5347 -> 0 bytes public/logo512.png | Bin 9664 -> 0 bytes public/manifest.json | 14 +- src/App.css | 6 + src/App.js | 244 +++++- src/App.test.js | 14 +- src/IncomeTax.js | 206 +++++ src/MFinanceHttpClient.js | 70 ++ src/brokers/Brokers.js | 142 ++++ src/brokers/BrokersAdd.js | 56 ++ src/brokers/BrokersEdit.js | 77 ++ src/brokers/BrokersForm.js | 48 ++ src/chartColors.js | 23 + src/components/AddButton.js | 29 + src/components/ChartTooltip.js | 33 + src/components/ConfirmationDialog.js | 60 ++ src/components/EmptyEntity.js | 21 + src/components/Form.js | 45 ++ src/components/Loading.js | 25 + src/components/LotForm.js | 237 ++++++ src/components/LotTable.js | 112 +++ src/components/ModalStateContext.js | 11 + src/components/ModalUpdaterContext.js | 11 + src/components/NotFound.js | 21 + src/components/PieChart.js | 65 ++ src/components/TableCellWithLink.js | 28 + src/components/WithConfirmationDialog.js | 30 + src/components/useConfirmationDialogState.js | 19 + src/conf.js | 10 + src/convertToBRLFloat.js | 10 + src/convertToBRLMoney.js | 15 + src/convertTypeIdToTitle.js | 19 + src/dashboard/Allocation.js | 32 + src/dashboard/Chart.js | 72 ++ src/dashboard/CurrentEquity.js | 38 + src/dashboard/Dashboard.js | 108 +++ src/dashboard/DashboardItem.js | 62 ++ src/dashboard/PerformanceChart.js | 61 ++ src/dashboard/StocksSector.js | 41 + src/dashboard/Table.js | 262 +++++++ src/dashboard/Title.js | 23 + src/dashboard/WalletAllocation.js | 38 + src/dashboard/WalletItems.js | 24 + src/index.css | 5 + src/index.js | 18 +- src/logo.svg | 7 - src/menuItems.js | 103 +++ src/portfolios/PortfolioForm.js | 34 + src/portfolios/Portfolios.js | 144 ++++ src/portfolios/PortfoliosAdd.js | 57 ++ src/portfolios/PortfoliosEdit.js | 77 ++ src/purchases/Purchases.js | 81 ++ src/purchases/PurchasesAdd.js | 69 ++ src/purchases/PurchasesEdit.js | 78 ++ src/sales/Sales.js | 79 ++ src/sales/SalesAdd.js | 67 ++ src/sales/SalesEdit.js | 78 ++ src/serviceWorker.js | 50 +- src/setupTests.js | 8 +- yarn.lock | 765 ++++++++++++++++++- 69 files changed, 4188 insertions(+), 145 deletions(-) create mode 100644 .lintstagedrc create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 finance-wallet-frontend.png delete mode 100644 public/logo192.png delete mode 100644 public/logo512.png create mode 100644 src/IncomeTax.js create mode 100644 src/MFinanceHttpClient.js create mode 100644 src/brokers/Brokers.js create mode 100644 src/brokers/BrokersAdd.js create mode 100644 src/brokers/BrokersEdit.js create mode 100644 src/brokers/BrokersForm.js create mode 100644 src/chartColors.js create mode 100644 src/components/AddButton.js create mode 100644 src/components/ChartTooltip.js create mode 100644 src/components/ConfirmationDialog.js create mode 100644 src/components/EmptyEntity.js create mode 100644 src/components/Form.js create mode 100644 src/components/Loading.js create mode 100644 src/components/LotForm.js create mode 100644 src/components/LotTable.js create mode 100644 src/components/ModalStateContext.js create mode 100644 src/components/ModalUpdaterContext.js create mode 100644 src/components/NotFound.js create mode 100644 src/components/PieChart.js create mode 100644 src/components/TableCellWithLink.js create mode 100644 src/components/WithConfirmationDialog.js create mode 100644 src/components/useConfirmationDialogState.js create mode 100644 src/conf.js create mode 100644 src/convertToBRLFloat.js create mode 100644 src/convertToBRLMoney.js create mode 100644 src/convertTypeIdToTitle.js create mode 100644 src/dashboard/Allocation.js create mode 100644 src/dashboard/Chart.js create mode 100644 src/dashboard/CurrentEquity.js create mode 100644 src/dashboard/Dashboard.js create mode 100644 src/dashboard/DashboardItem.js create mode 100644 src/dashboard/PerformanceChart.js create mode 100644 src/dashboard/StocksSector.js create mode 100644 src/dashboard/Table.js create mode 100644 src/dashboard/Title.js create mode 100644 src/dashboard/WalletAllocation.js create mode 100644 src/dashboard/WalletItems.js delete mode 100644 src/logo.svg create mode 100644 src/menuItems.js create mode 100644 src/portfolios/PortfolioForm.js create mode 100644 src/portfolios/Portfolios.js create mode 100644 src/portfolios/PortfoliosAdd.js create mode 100644 src/portfolios/PortfoliosEdit.js create mode 100644 src/purchases/Purchases.js create mode 100644 src/purchases/PurchasesAdd.js create mode 100644 src/purchases/PurchasesEdit.js create mode 100644 src/sales/Sales.js create mode 100644 src/sales/SalesAdd.js create mode 100644 src/sales/SalesEdit.js diff --git a/.gitignore b/.gitignore index 4d29575..ca5aaa7 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +*.swp diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100644 index 0000000..478115c --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,3 @@ +{ + "*.js": ["eslint", "prettier --write"] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..728ad3a --- /dev/null +++ b/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2020, Marcelo Jorge Vieira. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f733998 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +setup: + @yarn + +run: + @PORT=8080 yarn start + +clean: + @find . -name "*.swp" -delete diff --git a/README.md b/README.md index 9c40dcd..8519235 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,30 @@ -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). +# Finance Wallet Frontend -## Available Scripts +![Finance Wallet Frontend](finance-wallet-frontend.png) -In the project directory, you can run: +## Dependencies -### `yarn start` +- nodejs +- yarn +- [Finance Wallet API][finance-api] -Runs the app in the development mode.
-Open [http://localhost:3000](http://localhost:3000) to view it in the browser. +### Installing dependencies -The page will reload if you make edits.
-You will also see any lint errors in the console. +```bash +make setup +``` -### `yarn test` +## Run it -Launches the test runner in the interactive watch mode.
-See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. +```bash +make run +``` -### `yarn build` +## Third Party -Builds the app for production to the `build` folder.
-It correctly bundles React in production mode and optimizes the build for the best performance. +Favicon uses a picture from [icon-library.com][icon-library] +licensed under [CC0 Public Domain Licence][cco]. -The build is minified and the filenames include the hashes.
-Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `yarn eject` - -**Note: this is a one-way operation. Once you `eject`, you can’t go back!** - -If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. - -You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). - -### Code Splitting - -This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting - -### Analyzing the Bundle Size - -This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size - -### Making a Progressive Web App - -This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app - -### Advanced Configuration - -This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration - -### Deployment - -This section has moved here: https://facebook.github.io/create-react-app/docs/deployment - -### `yarn build` fails to minify - -This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify +[icon-library]: http://icon-library.com/icon/icon-finance-15.html +[cco]: https://creativecommons.org/share-your-work/public-domain/cc0/ +[finance-api]: https://github.com/mfinancecombr/finance-wallet-api diff --git a/finance-wallet-frontend.png b/finance-wallet-frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..ebe801803859db35698141b0af6ff427b596a086 GIT binary patch literal 252211 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 z%0Dmu`IY~C@gIMbvgxK7pa)R2l0Xq?)*A!;2WvLFqqhXE_IGDq4n0;LaEwN>Af_1Z z=K8gN%Rz9=2w;m z2L&aJmkdCCpn!7YG8D_9A_z4pWF9wo8YpnE9VN;WIDZ%YR>9LWNoOkxFYET+f z1`AeHRSHe5$8&sSm94?h1a`0$m^e3om74=gZ@#jmqtQjYJ;MV32`NLqN1gt7wi+%J z`TF~i{I?fS^8WLKp#OaF|MI)7{)U2yacfRhd$E7NZNh^l_HHeglF_wr%D;~k9^S*z zO*4{!*>thStZ^#{-KS?}UJY9auDoOZvumhhxU0rxU?G*WZopluKkRo%nZnd9P$ks- zv)e^}XWtC)Y1Y3`Z&Z}1yf$IRX91%e$}20)HvYbsr(t$59@eZR>6d$^=eGJ5iOSzQ z^b1{_6kWEmc^AK{(t_0ApJkVuU^V~qvl4RH;kYl}{r7tOzuf&l%ln^;`OkM6SNxwV z8#$kxn}~5V-+7QeF&v0PT<9T5KVuqAJGE@V#KU%^GKW%}+c;x`PenI-NW zFR;n{PK?0+O1buIA*(U=cuw%_P>v}#6!#(h3g7fN%WvX$554xcxd_x+;RF*KPjPI0IEp7^!6PN(b+;F90*#RHeSwQ8C;XYw%)K>}37)C!_H&zc%2+Jl z{j>2TNbnuzVNyMOX)bPlhhFI^_)!kOuH1;eACS5+>_ zDO#jzw2YLOlMJxt<+lb`#b5hwYg90@s+!}Z$wHrZdu>k7XkH_ctS(Q@J2svEtdq3A z^xmuxIb)ZGx>1u=`iR|m?by4f%OZa6y~UB<(XJist3wt}np#;pEpHV_Sy`{JrnQr* zY3euWKhQfuX498G6wp2_ofl21SKvGMl>yCVvj17s1 ziEC-$T6iQWSVX-3>0_%T>>xG)B3YNO=xE0{zqjU#EiGhP(WqE|MYMe9O4k$6L0k8l z5tj-OE-FVO@~TPh<0Mrn!JKYxnI-2Y_L@xWTG_Ck-4_^E?W7xN2}G{tuPfyj5^N^_ z?3tj1uv^|-MkT|CPD+>s@`4TGF@v+K55DKYaqMip9k$q8fm659W;Bw{*D;v&^E(Y&t}$#B z*>KD5+0XF>LJuR-=`9-1jFVL#R-{@?MmKL%6_E%O<85`lIxw}rb$)Cl^ygB}wy!8e z5ZY|4h269>5b!!V#9*u0$}-TBEw=vKPIilh3At*WKfAT0);u=Gck87UxjCxWxN2xe zb-MOMTOwD&pKSZ zsHxhn08z}lkyuo-Hd=6ScD8o1q;O=ku%|wn>eds?z;MFt&DONBpZ73dW+&ha>Qp9! z83?z7joeJ*%$}F?Z|@W`5={YbSkU@n$8M zszBH1J6yIwdw>4sVtxLFf-$G(%xJGADzeqRW9c_cWme{eht~3qn)IC3yRLl9?)*M9 zZRl;;j^Jw`luJ~#d zsVAsU%9@iI56})Tr!s3qJ+{)mn>Co4WHSlp{b#!LpOt4#+N^vb%891M_Z~fAg)cgA z@D9^k@@YpM1qz=ttDl%o==JQnM_&vqC7stg8hS=&Fmll>KcH`|EfYGex6!fJhtVvF z9voM0uYOA=M}bwPP5*t#=6R3FL~=>gh0pK%bCobungiKC8t+^k)q4+%yWO@i$M@Yr zuIfGgewayTz4n~&37pSxvs|k~(!&{Y<{`jw7x!iPkyrR3CE4&hbnyoQsh*$z6+RM6yL5H4%(X}d zULfJxJC@AL(e{oVt5)!+W`VLrX6^YM&CV-EsI4bPYH?wGecS2j>sG9Of4TB#uZ)+l z-u9XEaaoiuC^o}ybv9QRI#`jf)re|LzqY?U;g=OLDopsYEIp3R$l>^2HO0zb8IPOo zE}f2(H7&q9{7A8-I;+k7{X5Yu`bE+3!95$5@$SC5P-_i>?Q8947S85|-@35Bk}tQN zG#{&;uk=1=Z8|eP)sK>wrkAE4=KkYHsNwogt#*aM#%sDOk;r@FJiL_e?2RL2!QU86 zsjvtqN4}&+?Ofwl-0+>h4x-UPTX6h!NoV)a=xk8NO4A4Iz=sayKYFKslnRX&eiu2q zPPP~h_DDG^41L{V#zj3g@%gLdJSMf_xdA0o?#EIt` zWz!-8XUaRVW0h)eKATyHn(U(rY^d&RyxUi5K9e}0iE0%J?9MRB(_rgM7sIt{q*VKo zcEfHk2b*lA#-gjCpOL0e=J05JIQdDUP%^W3)izapDcM{tUwneYzl^pf*R*5X_6sRG zm*4AYe;rY-=S)4W0UUODTl;q%ds<07y0uS1e1`F!9a+rzcg zI^7mV`Wdr~2P;pU8z?4Vo$lOuAVuf9FEsu-CNM5Zi^gn+N=1=gdu#S~3QhHJbZm#S zcWENaLt)aXI_qQbIIcVOCW?lPVj+m!o_ zY~%rMCZXm9v&&WenG#fWbT9HZ9#N>2;!L0M-9l|uYw>fN-h<#oph^Tto?#atl6q;o z|G;?J+j+Y&xn{UD0(ZL2U4ticd&1TH(&_^~6fu3F?K56F0tX9X$w8bFTgUqxOT$hl z?%PC3uDir&U_M=sYKgvyxFv5rxN=mrHGfTo)3%)`?X0ZY(&FhyQiDKl!8M!tHB+OR ze#9EjS1MlbI{)WItc>UAg~tyK=yYUf?r{HCxf==P7keOhr*iYJPbUE4EJ*oUHEt z;v~IrW(Dt=;|~8zO?~j{Vt4IWXtusofKT0Ig(a!Fx)BX`UU7Sue}8n6TIjGvW+|_Y z^uMm4g3IvVIC(Rga_t|R>dHpO(}TyZ?qU~FlN*msf&#-o{vB;Jn%_vfR#6CHTWpCg zH+G8WRZN?~UV^`GWVZ67thPN$ayU6bd^X^$JXWzz@sExEZD(64tKCIxXXshY!WDAu zhy1_(f`HSM`0qFVCk^=L#Xr&if4=xX$TJdd!~iT}-M>z@cytYE98g zz!w@3d|uE6v$eN3fZ83RAp?_^zyz^lUHbSv%^TWw2pkJ=Dn*{hPEM;sK3Q2vcMotf z7eIYi45~qpl+MqK+1he|5;HYD{X*#cT^5#R=zBn^v50ZuagRZPYQ8G7Oi8zQaym?o zc3d`?o}GOHwQImmUtb@zXBCC5 zLC})oSt~#!^#E@(wB`iJ%!EBvWC9BG5ka$-BTh=@H1W%fds&gUkOOqy;hLZq#=Gl` z4>D<8M)q*kD=W`zZMPntd#T!b3Ot8iJmlcwf_yiDJ@)Nv|25Q!pmf^Op7e|l|ISRJB}x$O3e9|#z;AK+JTSQ3m9&jlmeULX_xKyLNnE-VS) z;-DM@3kwBucv4VWoP{q~SSW|XvxU+v@PGgQF%;@u+}viMx?bFJ5t;Ji=jR7dBKTh; zba?C+WMIg1!jbClxjEZ|O+9KFn#3bjsO-OukALRiP~1-uGBcwOMfCj9HK^}CTq|H; zWQ1S31kF|GrYG*H!kjaBjv(3sxY_ZHx+nk<;)9qf?12#jy$A7#BrvqvWIUOnH~Umt z`VKSmY61%rbQu9V128K0?`rIPe56o41URR?-(a0Oj1YrsMxe_;uSo!m2b2|`nws84 zdWF!mH4Bp#N&*Pf8)(J$K{wLAGz_qCeu06>1LVOW4V2y|(7wc$Ib>~X{+gW~3UDgu ze!>kxeHa+UUdrA)tXH7c`0m|1xh!Rt^oej-uTG<)*^JO4Nf{YBDk?P49ENWLatsbS zR1s{C>M9ntM;rvib%?M>5sHp?TZ1(49BnXs4Eds>JWopP_TYm5A0?>&! zyajwVl+($C8`Rdut72MPpTg(#TltP#83SUH%j8FWMuaGwDcI`pToa27p&$7+DM<#3 zr(k`F2jWVgeFE*^l>=%G+df5)CE)306)d$J%N-sZz$3JkDeE0(8@Z8i`i$`9u!Ymn z6y}`sw}exDbe>b<2+Zy?(fr0?%^+5~m`39hg~Rxj5I8!^^LyVx< ztBpT8y~_QO2}-6tOJxo0Sn0UAXdvRez*T+`8W{=u8`mIC83&3x6vC<5*{|2j=b-ZF z6-00NeTZG}boTpW^uCO({uR3yf109I2jg~6gxohMXvJN}y}jLy+|m{VKM&;6nzQva zVm7?WT`b(bZ1BdSrNI`f7Grc{r7%k~n%g?_@mubUA?vv?wuT!Pv$ReJrxxwu4F~vo z^}53WXczsiQ{A?Y^7DVxXJ+i2o0T-M*X^)BHX-y4i_bk$xzE8`C=it~B4l#^p8e6% z!j65C;DY-D=4o5%8`Xl_tuzPFc%C3^i%%Oq*f1->Ozs&hoV^EHvmd%kUODiFUA{(y zk=*!zi;MPzRWDURm@cZ}?Hzr00p3^ip^WB3ng$%#mUU_EiYE_ryEYn*=teOnP zu9rqWj&XvPan9~$s)B?ID0v=SDUGxqkcAH%?Lu8UcV#7Z2%$4O+H#|O0Zr&i!%l@(s?|O zxS;Vl(KmZ<8g--x*Bb9VUAzso^7pJQ}|@~-tpw=I=%#;J zu`gidbW9{rA>+zr9nl6H8B!;rG}E_R6`Gk1L8aY^5%<4_1eQLeDsp@CJcID{WjE@` z>k|)^7;n%<=~)v)9FQ#8h$)qhGMYDbwMsJ5o%S* z^nO|oE7ll-iSVs0TYNzkB_)#&bk*c>QUQKFAV+Vt~yZ532IJ66-b{*hJ7z;IYq?T8OD=@J;Ua$oCG6j5f* zH9j{?K3q{!@-Oq1>@sJKp}CzKB}FF@R3W!nk*aVNuFtP$?t{w0$4o{L`0y*EiSK%Q z{o*saC{5H6&UQtB-cW8;W5dcj-S5j+#U&0E92)2(&6)^TKc;v{h+3)+Ix5#X#P-}E zXB3PX2uSod{Xo0=!!a?mkuM9I&)CzXBrj7rtMpp0n~TZh_XU*N1Qjnlf0MNFU%%+8 zu~}oT6{t$N@V!u@lTXfNzNR=y?H)TtL~_ynI|k3+ENrRP3cfSEIc*c`J9yZ*vfDUYu=iHZ z#pXGt_UsnVYkxw2^rRF9+Icam>r{H^{>`qQx0?lHd74{e= zcXUSel+Zj%D)n0U6zWFV%PHOXkapEtoGuFX24GWE^V@F6rkPgs+{bEi>XnlrHTtt1 z@LrBg$X;+Wf57CM`W$WSYa5H?A&Sk1Ytx>BHb9SAlvCP%WTmLm?e1l~Sd<>X_ee-c z9;v7hPu~2qd3cyyJinqdBst7ST-$kEIW0{=YovWJUsNCC%*Rc$IV~%BFl9%P9!Ek- z>YKt~Po(m@Snr>m`F+b~llL{uc5oFi<4vTy{pQi9vtWg;tnu9|${$T{DJtEVz+t?f zSD_j1S1!XDM|*qzal^uU$vepX3dTI{V!ENI)coz6-{0ruv2NRox8~ZD!pIpIbyVSj zTgF%HmCEk+7#vhZ%9G{=1$ol6SFrJt$SZTBMiL|JreH77cHPG(QbR z-*%G6?O5GT+p{l##>=;U9NnewSD^b8+Y2J{LkoF%pDkkO=Q*G#M*hp6cHsc zevQ8I3Y(Ij;!2r2XenHRQ{Kdq`aF8+N3KY;Kse8Xp4Y9xBsVnl=`lOWi{uW$m^k`m zbMcq_mZ#lMjvv5u&22?=#=92&kA+=G8B(#IKh7aF^dM*K47QRxLq|pl4n6<&L z$P*r{GE4Q-&e~Tf`r=t8@===0;b^D-^+Flfjxn0L;E^mXej^{f;tma;G}G1v zRO6_yXg=_Z-wusQq$<$9vcY^M4NhXo0oKK^fetzOT+(2ar0AYBE`*1M=Icg1VVCZ= zOExD7SWEdtR?Yd3jR_Al*QUqA37p|D0HWf6{PQIrwAZ}P z73uBimy~KyNY4|Zq+|0^#3;Ykt#_ESNrZGy>R=@d za(F%Z$sIw9_G=h#(sL$VO(xS6GE|e6AKmfKkz>HHzLZ+5hk4fmZd3&K1*2(GfZiJk zz0V4n!VN0&`M&*s?Dz{0))+JPlpOm71MGHi053b2g=Jv>5G}qIdF-+vB9Y&=uJ6k9 zgA4o6L)(S#E5-xE|MGY;!uc7RtTc%-QJWRaL%-n>_@|jRjz+eH{6NQeD&$m?Jjn~e@{{pX;O17$fB2qEE5QSUb8>6;)OYsxXVc=X8htLIqfJ#u^!$f?b$nmQ zJUU^}!Km}-Q#dmTmbx~dH9CZPB5WP1%vazXVBTCuEi)%SOQom3{P@%L*MigF%td+-|Mr+v&C}Z^F5_L-kwb4WOOr@?~$#@ipcC_T>#Kgo+7yie25*K~Y zX0~`>Aixjvw~*!>cnJQsd#K^vGZahw(w-ZwaF{uOzcR<5cX;?}6Fa-0pw*Idvp$E$ zWGyeX%i7{%y|K`-T4-3iBgq)nbF&vbZ!6XIf!FTI#Hqga%_(Ni%*OFo-&Om4; z=|f~&OB^Cv3;?Lr>jV2lAa(~g3e9AZRh!~C8aT!*|5cp4LAr508hUv-OtX!;p5|T!D6%&p2HM? z;~wQGH^F8ufMTPj)3D)!rw1KUbcEmG3`_Zw<$QXw_KD)7OJAH2>yK+o0o<-{VqK@> zdoJostc^|W{$~i9us>DO{p}lUn0hXMPOZV|Etj;bcW;D zo9#B6?G0HdUzHZxAavh`o0p!6${Q)7A!%WfcWn#(a|S}@4W)OGHSN%l-nxZ95g?iR z>ILWBY6vH}uSUEMPBWELQgY$jKJ<8gEB-4S2K*Y)s5aWywN->3RvC(qA@G{Ex33_} z;~{^QnOU07qAvU({!XtDPn^`-MU`h4_&nBM=+Rf%Z2fqEeotApT)!a5tc3BTB;|)+ zrE=E&0hZU20?!{iw9j$A4og(XfK;*1G0`ut&r!=oM`{00h^x$a17G;c4T$`CCXXzoBJa@`zP(T9ph0Vd>e}}rIH7)ONFa$qN(XrHO zQ+J?_#CWa!9wL=*E;h+3#)q1W0uS$A$Mk=iot4td@Y-0HpF+qujRsOG<0rVvYVR$T zZp}|QVru6(eS3X zak=<>-tX7zJdg7@kMlhKi9@>hTFKY02GtQ;=a!L?5s(s@mKNa745UvNHaO*QPI!%5 z(T*pA=gEl?DR*WK4Gn&^nmhF-;V`V+^23lw>N<8t@{2I0!o2hqPX|kr+A`Z zgclZY7HY~3H}?dbOR{$+omDS6WYVb7*tL@`clZZ0#+3(sjsf9#-hnFbXNu zd0J~2^qjvvyTT7$GHtr_IQm@Im*<0m+dXUnd@JXwjkFXKl}za)dV(9z;Tu%U>zC;s zrupMG$L;jj?2>0EE?gPt8l6vz>F&6C@FGNcr&Ut_A%aa`$+%E+cg*Po2}e#*(r(GMUi+2RN_82kkbO-9G4LG zapv9~@z-+QK5osQSe^qfQg8}rMDE4Dpuz~(UJqZ%f6MdiCry@LeI%Y#0Ov;~d>;*2 z=hH2FiuUIC^dugy<@q*Y-#Hxqe^|3Wwh#YV;d*@7w^#MYCGs0lB&u0jgLAjfkX-7# zsr!rHVOoQOfC6)De({kDsmJ*bGuc#Jn_~C zrkD<^JU|!&?L*txn3?D+RJ z{Ad5W;)`^F!OHCanK+WP6UzKvf9YkMx0e@L=kU8LX>9I=D8L$X^WB_?8#R~&ZeY*j zREJ_&xqMoU6ff`QLv$-qj+x!4Bs(eXM^uSZQs2e#EFe*$s$Gd~zo?@%LJx1m*T)Tu zzgC|RBnzuDurK(i!g)I432&fivcdr8fpD-zMD0$^9W*n4>o>MMtt*^a6>oJ<|B2N9 zud=F$Ca@zg#88OCE((i!!43tM3Ir0zEbYH}%!s<2_-ZWgz$H?Z>1wd2ljy-*W`(sOfLUIjp5kWj+7Pp& zNr5})J`xmX<)xJO0w9&8Yr)h7yuUY=wR`t&6j;-#UH6}rD&J({8Pcc zk({b|m3FB&U03@8%O+x2fiM4L_+JXCKmnPe|I4L1DsayK9K81AG7~@aZ_D({N4BdC zcfIaBP;|F`i{FDE`f&Wq4x$Ia=yNSg*ql*ldC(w7_2(rI@l_Al(i7HpYWV2RqzyKH zs#x7RaD+T(C_LQhoX+l>-c|bPItBn~UilGViq4)%PTurnwtVBB4kXeXYA)Qlv00}_ ze0Tgxb=iUq<@+Zjqd-=8M|@Os`?^;~JLB-h;DdtBdAMxUtP6aJg^d(6srmx>@gLWeaX zvKgmh|903Sl3EW@(&T%85DZ#vlVCM`R{DF#6w|6F^=_e(QD-@;w|KdaReB*OqAmwV zmy?ohyT?i8hw@35H zEcZTLF-`ZW^<05*JEe#33*GoO$TiEU6?N;)wROj|2IX!?RV_1aq5&QwP3}Fz&-6xJ zBS75EhA?*VnBglZck8JLn(!T^RuLZTsxGr0nj5a*TB_@8n9V;gm||3t)!R~ibBo;j^-5qSQAD!@9bRNxH`XI0_`4`)j zHtyH-9WCE&EDn7;p_A`TC>`?b5?&?O%>SC>%qv5qWeps<3ADL^64 zlb7nMB1dx1;cx?%y81!sm!_jV){}!TpDvs`FZyAf_Td}Noehh^hTY~j#^{C)AG~ob zOG;Powoby2tcViw(Ytg=qKxmKEd9lTH>=#DNT7^lgKiDScn=iQDd&K#j@f$Ox zM@AqCwb!Y$O`HA83Et4gWLxv*9T!$OZVu>o$u$~Hmk%phU@$@#^Emiwq$CR^Vhd~X zf2JoF^-gqp?R$20Kzg#6;viAh7ip)Y`dGZG@r&8&#Popegk{#nr22~v@n#Ln4KiA( zs_WV$pNljK*bRn$kZ_S%46S$#_ut6_Bv%*UB6{aq7G+o!X>y|v3I^GSmV#Yp_EYm) z`RRnq#TIf@jD0x59!TzO9<}vj4^vnp#h31^zN*-;$jd)0j7y{2)%Vjzf0@ef*=K2e zVJjLT>8e!qM#G6@0}g|2iFtvQcdedvUpse?tv^D{;D^BSlsfB??xi$8iRTv!!^*Fz zZ00=nT}@=&{P1WTFH@CzWo*5XZ-LKj=$t^iH22MxUa>(Hpu2AzEN9I&u?I@-KDKA9 z;W2}`Zw_b0y>^D_w5Q!RIkK?|46!Bja{^OVANH(a_8tt?TSaoFT#$q${T#$qSvSr# zmQOWI3G@ocmv!9|>rJ#;VA&GH%~L6`Rr3OMeX6ZSU8b6YpDojKo5fJQ)TS1{Qaw`x z(HK>?Z^4rSff@M~NBeUstz~)=+pSW=CK?2?s<*v9JD#A2!at>O_;!1tM3v8+Kz7o} z2QPe<@X@clrD)X<8B}pE(aCMu-+d%<^5^4hjhBl1eCO*1O(q03xzm0#s!#LtXdEo1 z%3s^I$FMSl-u$Um`Kfk+^3^1wwe#&8?0L>U*u))lOEvMXk#$#Ml~?|h27^)h2Z5?s zr3#CzT#KyL;9jPzUQ05L2)-H))w4{>vdZtRGdczq7NkN&f$7CCS+_^^vMADymxlKE~l*h#B*!v1x7x<*~ElxXjS)k5e6=Rp=q zUq5N&#=jYqoCr0719R2L{;yW?|fC) zWp>>^F3fVfaWH*qdPbA!=49WCTXR``@0;vorYN*CNzb*q+ZJ_%j@%F4>EOWy~-PYSei>>KBl5wgj1$#EiklaZP zPlaEYe3%RVud-66#rXZT{>8IhDSF8jpusm^sx=t24UYB#m)<%5^n#Ssj<6~{%vg%I zJda~X?rv^r@puFNy`*>Ii{^#a=)E`iT!)(mYe2w#VjOl|&mv?)2?k3%sI%VaST0s6 z`@T9UWZyAmaO19(TjLbistS6e1>01Wx3JnIO-{UwanHL1_tt-{t>>ZJ^n&DS_+e-F&snB?B z)v`GUgi}J`Lv71t4UMoiboarPU>uDS@2t+#GX*HaU7;x17^Bb@^IqY z(x5zn#{}cyawb*9WIyGRiP6yO8uV>`*@BsU4=Z{+Yf}0sCa-025=2wLm|}KPq*DA% zov@Y<>BW~*&-~1q@cGqEZ~bxXB{PBzjcA4n=d0Rh-3)aD^se%qiG3@jc>A4SrT77Y z0&cflUpaX&y1GFU74vp7qPKZ%l<1~6CGEHxSQT}M1#q-CTm!w=3o=OKYq$Tk!`XR$ z5{AH7@zrEl^_jK#sbLwKZ#efovHG+uUmv3Pbc=54nHlX?Ioj}D&m?p#HMPzjX3Blz zka%22@66Ws# zeYHPOvbga*vK1j}q4$6)0W7$dp5eCj#62+Qfy%{6l(oRw`cCo@%9AtUv2wBCQqfsT zSCyXmbfK1~^IF!~8TCt#Jf;;D8nQgZbu@V+leL;WY-d%|cFM=rhbyyhcw=F9N~FzR z%kA2jV9)9FY!)y?pU#IVU-`c7?2#w5`GKBEgA)zC>47MEYk5q$<}z+MiC&1PGA5|J z-eZB1&%yAxDc@duzW=)Fj17`jK;ML*sHjXtReW6BL``pcJ>W5-CRteC(IZF1BdP{r zp_}`<;!AcoqZ=_$4th<*(X}x2->Y=8P#_Mpul$Z}|pgx82N2<13}7Uuq(~ zJNGP^wpCr$Fj@2Ed3jqA;z4NKJbLUA?F#4Qv$QpGW8l_R1mT3Y^XGrImwSbBiZHlP z-#fcflv|)=|prP_xsbk~fAjK26 z6C#S)rK0zje{(&N;<6Q#Yu(dUYB+dVeTy-e6NXme48RdqO?5HlTIiY_)R zS*hvHmzA&3RR<;uuKkuM{gV_0XY$;H5vX$V6_#Hm@C;GEoU{+re{$+yUy+t?XCJr| z3No>+f5Nzg;zX5uSX$ztr{tLAi4^e_di3-BaKrOII<)vFZpsFUgxKUxn|a2@b>o~r zvvMox>U#+Yt5z`4J!uMkS5MA81-T|PyvKMiN-{=2D86Dl;6-=ww-Uf((tsQng(lYS z&su=StbcZD8SDQ|r`FfqZo}UQQnVllVqr!d9oda>apJg4!>Cc%oJQWg+dx(n-Px(r zSzi3_IMVk#pA3_$1_q*NPia@)W)`y1*4Dlu6?v7AEV;ZJ{_6it!(ZU%^wh$l^c|DF z?iG6Ldmwafpy>@PC0zcbU*c!ksJU_glg~&)D7BWx)6>&E)(@~G{=&E zpR^L2Rysl_0s5Vv{X-CK@I`q!#%OI)x}NiYP*HnIL~S3XuLh|=TFY~;=@<7&E*ez) zJ&{?m@RyWi=~!LTi$(-?c7zyU-8zRmEvE~p!fH4m)=5_fzs{=s5i9>9dXuFwd6lEm20nWCP8RXM2}=;e|1H@rE}mj& zXQwig`tP(QXa1v3>EpV9mMqryIV@H~ql2^aA=F>0%hzCoQpraSB;1R%`juVY3*Q6( zkOOY>v=siEAdZrXiVVVsVC9@asswPkFXPxjv>9olaYJVL^zxB&;vYT!5yt+dB96^S zbBov7`L6=n5XNM4;P;aekqd&P13b^8U+_v5ZN%C7&8B-gk8m2V1AD#^O2U+19d}wM zZjVoD|DZO%_WoDd$RyK41Rm#X2-W85*Si%7G@9~1`IBgbHoT@+5ursyfKFoP=D+DC zcbzqL@6jYiF)i1Y6T(+tgf$6i%G?Oh7Ck5<&3nbA@@xL7W{dJ>(^^_d>u0y>gza*nKl9IUdk0R|orr4Wd zCHBBp}F!^-SP+i(a2d%cJk!O;+EsF-|I&l z))11JxHxii(!k(GK^}lf0Nv26A5fY*@nVX_>&L5*tStq&8u;6PipE(od7BlFOpDa z?qn;8sVtkd?kQT!u})!JbE(p{mC=MK`2XC+uG= zZ!B1{R$vc|*0_G|0YiU&uhrM?@eYEbilY;DS>Q+CaXkrDX{SSS3Ch5;Y&8#CoOkx3 zR07T{;`!t=7dk5%lbA?#^Z4SrH2Coha3c{Umr8Bz90A zM-@`1?Zv+p-AF+0ZOqINnb6p9q8(gTUQP%Rz<%hIuja3{N`ZWi#lL0F@l;V|DsCVI zONB%=^pxIHX9rNMYNGD!kDlU6AIRFppWlG~VMTEQ0Ia}HciqOOxO;p<-d?h`tM8O| z<4-|Uf_fCB&%KHs2q{n~X11C=FONt|+k%B0PEKEIM!idQ-{d=|i`Y%s31j8l$=W0! zWKz-jFIBoGCY0Fw!U2k89cn`?h+!b9uB~R)M_JVg`&_e$_cPn!droEdzWPM9O=v?L-9_ z6LY37wc45)L_{CzIvdW*mpr2l4^f`%OC_n?z?-GcO~8Aht=2-~&o9=tY~S4Ln5uHh z(b2JFV~&eI+2Ir`PGn#n=`?3fRcDzMDan>80sbr&nQzD5L!tvctZwRKsA^1jDGJ&* zNyxgpY=qu2JSRu3FBRIGZA?sWA?w;Tsq#453quOnZLT)3X<}A*xTC)3+H>@o$J@o` zKKrL&X$@w&*7sb?y6-*F<#VtLyG3R`8i=|S znpl@LH$M+Tl3;FuLJ7H&wl)d2*WfY}!~-U$EaoN+u~eBkNWDsG6R+Oo&nQyovUR%jK2Gelb?zp448CjFXKphBz$y`B#8Pj4_wg+rm5Z zq37&m79{m-b0c!$zm=(3>N0jhxOj}K?RQ1S#SI(!D4~~fZgP{%-hkri_{4gnvurd& zR=tIUcBJFGt^BR+@%z+q;L=s;mQ-c0ifhEz2M;_t74_`EPQew)s!XiHuFahN|CslP zSWOqE7OQ|7U%@Hq7nPtf6Yl?EF2#)0;}7BA%CHB^A*z3)9N8LotlZ?kDo0E-%XVk# z9uO2AfA)y`h3c0e`AbFxn_~V0GO2pf-*^45NY^C3=1@m?u=2jbV}JBqkY|7HF!>a} z1;aCsM#bg+sS`m#G$bREy81t9RmTLC{~@}+7ODE*7v0~_{ZFF%vm1D+Hf^F1!$8Qt z*Q;j!6M2@g{ONyq?j-$-q+>N1?LhMW`rKv>b8SojtQ6GYaudN7J!kI>62m0A+<(#( z{WpLBIrIv|!C>0cbN=(Xko~b#@+ofKKlc1<_3|Gubja$@;$;!0SNXn#LjJ_{6@`3G zVxqJiBW^o_)tJq@-_;FOvs=;c>gHzSAYGdu`tiEL`)AZMTBOT*Pw(1H2>S1B{)>(X z0uS+)9p`AU`fJC63IcycfJ1`hT9Z_@9^ltEBy(m;QHU`kyZM|J?LHDF*)^z3Jt-86Uo2WZ-o~ zpKZZ>D>PgD&#7h$Rs^0Nztg(i?^YGp z3YIU$I%bdQtl(%JLgl?e!AeH$a+==-&UVUSGv#`;gH{?Bg}oDGqgFzKg6?Ko3d#1v zLqnIt95-TKAI(Q}4o%XG+uC!nAyN-p6$!UV{H0XmM(%g7?iLlDzzS56%x@3QAL8M0 zCngU_RBcvf4|Z8eeh7-7;FbLwtM)g6m(J~^!OOI5UwQ@qG#XgxIOYJS8A4c3*d+`b zUfBLy3jp#LYdA6XY4Inif;3;NJC;k59IxlAXWD^UI*H9L zy-XxtzeEGS$4@_H`FT1grK1KpBFabOl~QHB;rYc4-Vqzj&+stNiE?Zr^zUrvXqrKt zr)U?g1_9drYqs#qPpPA4L_V`()1yXq!2hh6$(I-LRgkUME|*|9}r18r{@9Nu^I<8 z%imSwfHcpMBezIdop4SH#h08)oM`Bv-s?{E zdZ{Pd$R11T65%J2rG7eH75e+tB+nb!(3qy)P7|_7pSW@q7w~E)?XpW>eU!DN za$3#az52RRMHAld1QEbSll8Ld$*7gfRJ>LvED6j_sPBx0#5{`}6oe^-$6!*9OkXOR z9(EXF7+;z$&}vGBik`UTKW2rMk~O)8RQ7w{qSv%rWol|lRFp*BSf=MM;+dZ>%6aM4 zsistt8?g3ag&l}E=T`h<@M9zS^JY$cCs}D6I8o=0W4WddVuiSWDP%#Ku8Y=`l$0BU zwxX$m^#W*25q>@?#CQRGq}N@)ew`5Utvu$R()NJl1rRrUo}XhVMfBs5Wklkc-vEvTR>Hw1oMw z_O&5N!{_pmFK0(h>Mcp$u@mpc~+l zOiU})eh<9Ujrp~?xjFYY-M)Nn$JuB$xA}n}0Pn`Bm9KskwKFxOhultH5L!|%JtJT5 zh9Q>X`M9|di_i687gh!?+%xnr0#8BDP21*2ujRDahyLK!Ha|4@@z%+os%ph5gzxtr z8!Q3+pnYh6Zq?K24(q+d>VI|D#VP4>EQfU$8p&LPb=E?#3-iU;PR1nvKRRugC$t}r zI_PZJeE84JW}deTWN@#*n^^X>z$+btMC9pD8Qb9|tpqCziFzVFiw z$bL|!+vW{wi2HkhbHXm)lftJIc%)B)SP{)T8dk;U#pET)8-jC9lRtdn$dk7Oi!z;s zF&2#5h__(J04NdS!9E|xG!r3C4^yMp-=eWfRZ$TKm0F1A3y}4FPi~)=ckkZSM&DeV zV`HPyF*XR3R9VC~xYK~(P()d+Uu*Un4;AKt-S7)E%;Ex_S%e{; z;O0bO>^cEC0;Lk(%UdkW#a@IE6XEN9)Fi~&!F2FRD3WVS7Vz6Ptanq%cM`y&T6gFq zU@@`=hu*P+pdzU8~mVCYCCfjl(Qz}CFI1u5pYS-i}NrE zAPf!3v5sG(cD2R>HmqX5-jH=Ah?#JD%g)J(sh1tb7$YWeGlyPPkc7s@e$6mvm8vCP z-sfKonlM&n5NqOtM?$bPNDto_f)>!7eIp}pJ}TEQ4rA9%$ZEb?9s&X+Xce&FmmO^z z1ocXsF1@3()0;MK*JFn&-B*Sd-v-n8S8Gl^F)?4XHT&`^>b<#i{!bQvQnZPQuL>DW@SJU> z&4T!s4D)t-t(N!QJhc zXtPTJtDBn}p|ONM0_$VI#Y(kiWVMb6%zDj*#&7X2Pc^KKe)MG=PIqC}rh+XDGqEwx zit)t_G-9NmUEoko!fY5}Zi6R>>ycCzO{(kX=&qU(Sc)))CWOYu2ps9W+P3Aq%7& zVSuR{-$s0 zquGPpL_*`rAO_(IW=ao^eLPyl!@RsW>gtcUslw@rUF)5<#TGhw7zbT%9w&iL2FK)b zt-(SUeZdXR3gQd0I8VyLK!*nUrK?S*<#u0f+nuEwO%aNTuRua_uwda@_rl`*boV~7 z*>mz7;kW`}i$exfsuL`{fLqbCTf6XCJKHNN>3giVXfY=xFCv}w2qnXq8HFB!$q zeH1b;2uuE$E;N-R7efwm!Ds7&aS&Gvr9g|5NRS9(ADkzAU2_m;2;eyR^Cx5ot20_{ z7%|n@W3^z??)bdX@drOEu6Fxur7gI{U|uI&gQRH3*NSz$3BY8S%%qhl!XR$*n8Yj2 z?&r5zis5?VgPabEVgX;tIG}4mD!({x{wgnv>w+ad(@x+jknwSGT{!PlLP+y26Cv$V z6P8oPf-UN46@Kl@OVgRyjvvEi<2qLx)&&o%btE9Mo#tEGJvl3`nwyssAt86B%LfpH z036uR)ET|wJN~*j_~aiIO0(?JwRlFGR+gjKcz}(#Tv*O>Osii#Nv0Sh3$_tToTzG8xHwY~7?9SN zSp}eip^>HG_N7m$hqo2j=N*5Bz4lH+daNbzrgJ;bo%O;}UH0K=j&Q)0eb4MxBd{`K z)LH;Dx1Ci>LscXsV4k-x&4w*+XPs{RVgy+*^@m(MBG5YIwUA)_@0?zl@Lc+CzI5d@;~@GtPQ60yMJQ<2VupEP#uAfN=$`Bf zc;E3o#GGh=AR$C^y-r~Ax8T1^Od`WDsrM_H+N;ZCgi}me%PSb3CC1*&iP-<((48+wv8ztv!JXWE# zL<8Rh)3wF)6v`{;xrTA>(N|0(48(cj6enc!avRih&d3DJFCihBUVFXA~8dhapZ~A?j9Rn zEuB*5>)f!vA?uKe_0!o#CA8PvBy^OxWZ-hK?5wP13J!n_z_Y%t%dMj>x5Z`y#EKl- zCRj*_)h8}vZmimnZxa4P*x2R|2cu)R{HPdtr5qhiqLNkdfQkRx9|zud^r=ya$@E;7 z3(l3^ZLR=UgGK3&z})V5T)Jhw)=y)nHJ-jNa7EySr;o{9J&w^t3;wS&&xj`oZ#pxh ztZ~#8L`$asIzx=iQzM6?f?wLcxXgdc(9@dzpgb0~JR4>uXjU33+LEr3sw+{;Z;HgF zwK$;6SoGe6jmB$lm?=Ge_gnM>8O-%XSS|z{9rH$qOX-U#m>FY%s z1x>GAbZoV5Jofz^#lhSgK<00FmZ*Y0E$Otbhc z>ll6?QK+~sHo7`D7+l6cZ;aSte_8f-P#esYB^H+%gm7($32>xc*kuU<8@=eKx(DbB z7^vyczlSgm_I>RJra;}HKgxFkx=*vbsfMx=8AV0n&tk!wFjnK$oGlly9-#d>((2>y z^ldj+29%FFFg(iq9&Aj^hyyh8F3!URfw2GUYI7VdbwsX<&X7Cf$7HyGVLtFAk%@_k zsq<+t4>}z;oNYZw?R(m?>n+&=N;Gq(3_W2)?|q`ba(aUNV~X*n>bsrr?@e+>gGD zJb|g5ww+yODpqJ&RRK>>`5s2A-*^6HWtlHyNRs8Q`$UyaxJQYT>!yVynX| zf-9|CePT-er_>c>LL6%817)sDy{>H=)Du@Aqfb^_0P$eRJ;ZmX_n|p_Omyt#rjN#X zqxjX9K(`%HL7L(a5M!+TbD4OLNq({S{5#1jA;vaeQn8NZG`R*|8s2*K>z6{fvAdl! zS#o{hprgX6iz~JQ8_eHM54Z3|ilx^m+vjOcPE8$ayV20j^l9q`sr<&Osri8Sm%C>l z%fxVH=tsA!w%a}Jw|CBGq@CLFc|_m`Km~EsP>*iG%WIi5$2KA3CLU2ymj>g4%kLi; zMo}3EnUTsT57(s^zJ2@lQZ1(V*j<(;!m7@b`lcH<>NX~65IY>e3=nNh0JQO23#Wi_ z5Xi^slU?WtOoP~|m$#xvk9)3U5NQAl=WV zv=ZXq%y*mU%>=p51~n1?4s5VP1+B^9Dq}wM@~N;r4ZJ39=xpPn;z99)Yx>6I%Pmwm zT_vnbhltv%V8*AQu=au&Rfm+bp|cCEPidLjFe2G%nDnf(h>lix@Zz+j6gV85G9r&x zaAkB5pyWLLR)dh_-d6@kN_A7mFA?5GE`Tk(Ths82J@g4sm18&FMUmY$r4SE*mvfJe z3=TPEy`s~E${N1vOsJqS;1pv4qQHKl3RDEfu{IH(DGa7DsL6~=qQ5vvq^i9BCi?2Z zlkdS#ZHO*+`&>hY1*il9RDoUzQBo7O?u^_|E>(MqhoKa{*nTJ>*Fn>O3|HG`*O2-_ zIZ$$sy49y+c74xpr{-PhP`6I4TBH>D?(v-=>@liLcg?5D*d^ zpEjfh$QUYENQvZY;H(+uOTrre(@g~A*HRCB^xvfS zXEhY2+)d>?#>H8m`2O-VW<$m?Ezh zfwAA)?(s6UU_sbqm7pSGhRS}Xn|1jP@nS&QEl-Fo6Lz=hoPCUt zIKW1k*sy?e?F0~PwjtXI$=GCwoB;e~D44OtM6ei`h-Y|$*qqV6^fN;RHb*d`Z&p}n zLw2Zg`I+WBm*tQhSl=z%3#3$5uuxIJlXvc^;l2rk3D##WbA}ka-#}b#@*Rn<2?D`n zx|}|L%;Qpd3JbMaTkdwuT9mr#*McLS`%Yn60&2Z2VFKF%%9Pf*C23xYg6jt z`wK2BydcQ_i?r)tjVg}ikHEuNo5L_MATH2I6f5##@y|BqV(+KZxR2J`WS1!p44E%< zZgNdA@e3PvoS&QH?sI6YjWEmV*@^)rr(t6);}<_#ou^y-`umH_T_zZbs|BGofYTdZ z`{bqNp;lW3TIF`qv4eTG)N~Z=yzVMRW}Mq7yf2m&Y=hf75#5J(ZM6%XMaoE_PGBh^r zI&?MR;6*ZRhJz0+Djlv^L&C|)dGF~{uE{kZY9u5iia)u+>D?>MplTNvS7Oa2&h&bv z_m__l&gbyr#yZ(j@D$kD>%+)rw%=JsQ6t%C9{g6)wKy}=sC6W8sakvV=uwbS9IdJH z8m=1K;X9R?m8FBUBbmlNaE&#~VTv6_aO1GiTWu#gzkl!E(~lnw_V>sBNQlbLO+Kj5 zlc?+Zm6z^GIku7g;3d-E(?@spzl9sT{6^la6Y8rK^d8}G)WXlQ8I z#%IO^V@G1Wu6m}$i37)LUO!ENzUd0d6pX1)oH%jpS?@quw4(1##aI(pIPp=hr($p? z1cdNa7I(cQKWqvkYj?M;-fkNZHkE?+C~3mM2}_()(Sh)tJ6k#wN490}aqb{JkZl&W zw#h-ZioLHpgJ4c4LU`v*^j4K)OqC!5Q88b>d|6?}U-BmzHX;Ks7V_gyJydy zPB2UCqe>z7@2|q52p;n`rqSGqjiI5T)vxr=_YDk?+n#Y$#A~?Y<5NOZGLAn@K0Xzq z$97n}GF6W%G%#Sgp{@2Yd(e)42{FpuFay!S}00vE}!#@bpOHfBN%bk)$XsIE?7Snn~dZ*pwx z0f*@kDwqiJ3kW<1FgwJ@mwbQsXT{-U#i$tJef##|sqEn9-U#~o(6M74sN*+E)-{M~ zei>EbE6^H}!k%1r#!J4eVl4Puw*vyUaB^|!n44?$`l|(0^q@E8dq|@iOJ{&x_H%M3 zyiR!Y6)*!i)+_zK@rKs%xrvJs^+EaZv6cX&f3`bjaevsTg$PI6YAO5&o%Lx zn3!Bt!K!DQE*Ox~jd;&PNT_PB@GLI1zvAxA_#cz~@?aw+ugV)4I}xcnRLE8))8u1m zsl@OXU5s^vxy+Hl_DojLP3sctEV3vCUlTUyN~R?aFg~+SJna^jsgW)YTSs^8eVAs% z5<$CXS=rf-c?=&MI_nJRlWJ7Yjt>A6d1{OS(l=Nx&RMguvEc%geE2{vA1!qg`@av- zg@=a|9SB7k!|FP0Osj_FYn10J z$>f{wIGt4EyC1%A-o&Q`Wpq+T#?RtP3ipRd;nKSMaellYQFn83QC+!mMbh?e{HNiy$Bq@e5|OyKd%?gs?8!9?@~Ay*U?oq_eNj;SeJ6<6mjFU=o&v|iCVIu|9@ z7O}<2fDcC-5KRcDcyQv+laq;^=ri;46r&u`YS_*A+Pq!U&O~B%%@J(vj=x`?rjTA> z^nm60{rdXS+pI2kKsOg*ECcsg(*NAcMCaUB?TKbC1uwBLj2~6QNLya~c zv|d^`i>?qX>emn|I@}JZAz>H41{VP;It^2`!w!>us!-}ttfxGVW0Jq{<2*oE$;XeB*h`l*mjCF{)@++$Z>(rf zClxSCOO)$t%M$|OuHL_DzoK>Ct6}9KA#%7a#|FGss87yq(o!yMZe~C{;kW<6hJZPk zU=|e}9r60LLVtEql12_8WfV_|dAaO89D2<7QFCsxf7Ms+u#BGMOUe@CnMXa~2zWrl zHUZ`AzI`zaRFCln4x;Q@$#zzwXh#Kd+BIt3*WtaSr&F+QLveD_wGmrkw~SWx4MU4 z$Qh=GotV8aaCG_8qS&JIpoxyo^AAt7vCqD`p&{vh$Q;ZUaCrL6MMM=on#Cvc3Dmsy z=j7%FgP{4e?IY*GgM><%VcLpP^Os%M%gQ{Hu@A<-|5uydnB>ah?^C~j;Lf&OniXe+ z&2GxS>`iv9PyY2I|NNOEj$c3WkDt-~{cGNK1pe|y=&SE*n5GJKkV_gjSmSA|sInEd zuVTv!TTb3SZQV8STMMv}?h!0CcJT6UCDArErr5M;lZvV;`DlBlhKfL3(L>tfvJQ6z&gai#OrFk<(k#}8pbV?Nht}i#UU^s z-m<&?CRWi?3JSC&g*f6!&!^Cq<#=&P=iR-XnJ$ZhII$l303w9{K=g$$ztB)7g4V!O z-X`kAubN?|F;&(UmV7B9v@uTIY2>Q_LRbeX1?opcCkB`3hMU_O5;R43vazj&pEHR0 zGTgUA@UkY%0TKPje*Qd-pye?d^zdN^=)*F!EUIC6DG{V8;cD_S(#6 zbaZq&Fi@3j7js<_uBol{$W~HNa0f2ixo6KhG)v3zH^F3cJ={rxI}na+O8|}(k>C*n zEi?WIONJoVfyhbM6DL*?{WHLo2>iR-VBmgl31-oqt+wqRj~cX0D^WjFv#|JK_1j7G z=ceR{1eobK%{??c+&MfKptV4=(b>`6 zJlx5mtW>m1-0d5&&@#Q)03{!y-qjZ|G2Ji>dRI|#5+3 zuMXkO63^)!8oG-xv!81jJ-W|uMV}n{vW4VcaIkkrhc>JmP#>)U1i;?FrYx&{upy6A z@JE}T6leNvX=%~duT0$B+}QnJ0+aFk4QhfaZ>F) zvB6QvjyJ|^XKj?x=z#LZ4KC;4xdUrn9J=0j@oT;_BTNeD8ie%9D2Lh$3d)+@%`1l* zGNo0%jr)z+T3Dns57(l{BjCv%wyCEA_TCbv+gBZTa1cZi@_`@20q4`L*R0=!EnkYP z%4;<6KHV?u_%lJy@eurFRn*j!FSQvO8usBge`v=N#+ljPuyJHgxlyGHddvQjrubQ$Za#oH-YVj z;v3TzPhxE1#fwuaTWM%+-Mvf6&(FUD-WP3cZE(S$u?a>8j0P9vc2v}!GJn>CJd`Lg zZ)Rl);6z*g9J=JRFkVh4mRcGTlM!M4|{jW=ze@%*B~wJ&4vv=8hpJ zOw@0A6Xg_4chK0_m|)FeFG|<285ahmF_a=DNMny4J%Yh~5!`|ABTieF&rYVCJ{Z^@ zSdj|5=>)Y58N*p{!YLM=;+@N|*MRxU$qiBk^CLneg@A*^6bguggShAzCLu%}Gcz*- zF@s8vPbbsI#vcs~RMfX8Jl}~HCUPr=6pOZfy#1ntHs2`bQs-k-EtSs!!yaB{mvLF=Bn8*1mEX1_^j9r zpP+DXl{RL4Hc(MX0G{247c!96bAW{d{&?A)r`Bf1fvjgH2FOdw)V<| z-kF)P)46fTu!fBoUHS55I{;=OZc{v`l?1bSQ_4`c;N#S6&J5YtGx)Mv&C3P(MssJ zAoGpcSCekN@TygCxN%3#!oZukjw9#I^hgiQ#d`I~(w3xODL{{+~N{@48Fv zE#Yh5Px?v7cI1?UL$+KBX4~-`gc5yp85Zv#0d(*Vl*3`s(=G{5jsqd@Rqxi;opzPwn2l3V) zumF+@;iUrXeGBqGfp%@Ys%D^-CBC^~aOIET6DV?Xb93Q3q@-_u+ruNawM;sMR|l;b z1n2l8B8^*?t7jB7^-V*w4_`DfNsx0@RAf!$e~gU=+E=cuN39P^p-x5WN7t$nr0e}q zKbdTYdWwD6QCwWyVtL6qy<1Y^65rM8@Mb+VR35jvy8AdJIm0L>uoLWqrxLohPf)jg@trQ7g}k zx-Q3G_srm3w|>2DTdqBNA@^!*P+O~?RYrzDB3P@e+(>Syv<+21EZaMJd-tt%!23lJ z`4;c>u-RAs=g$jlN1s`2&E`e@%s6v{o<8-}a$QtxVzCCo@P$DR z;=vhy4i{8wJ2z>b$*!w^^5KJ|h9+#hbs@5_u(p;!GeuTK<<8r;ryd6f6T?~-*RP)n z*elJ>q!McwXzGa01`O2MDBo0uiEW~wpoogRhvg@aj~Z+w2{&)gpMkHD`$jD0Kc$j^ z8$~n+Av$U3cd_~QZZp4-klx7GERq|~L>#*kGuny`!kpKW;IEc0EzW<=FxS%IEyPZ* zz=4EAkEEpD;=cj|66!c2p#m!1@%O)-mUfgx8{Sl?NQ=>-GCHQg$ZJvvC{&$r=_tt! zwAoQGd*Ege2G);{8E-ASyL}A_@g=mi!>i4dl)iflj`Z}bL(0UU+%`WyKav|n2mn@5 zByTVd&}BTRo_PcCgnT(nz-m1rLm8+KkIA*`)*03<)hW*Ie{I^b6;QAg)nzLFlYH1l zUt!AB`&wMZbr@>xBzPfaOQ;86IJIHa9E>5W^W^>NtwQ+nnBd!XeM_?)CB=wuOZ=Xqwij5;K;9F#N_^uQD@--`~`;Q-QICJI< z2A}|%wU-uVvDZq{RC9LKJj65AF&9{M3RO`6Y}pc^dQNTDbnM5EV&F3OHEKPzFTx+U zVw;4lf`UTlVq@#x{gvKvEuz+X`xW)^TVGzYmzCX2lxp9;ebWXD;YyWYZLP@d%G}S{ z&O%TQAc|0@IY#v)Rss}zEOlAS@~wBczt{OXYP_vnsxMx(C!GU&D|08?GFD2jb^QE! ziVU;XTTr_+1rP7?&l#$uZ^>cOHQb{o4a;ok$3dK6j#0sF>$=GvM1=Y^FURAKg(CbzbsJ zLzt+uH&R&_;992Lctp*^P#Ay_mn4W=12=p%Nnv?8DXf^pdvJqT0LMr`$H2&JCt@i2 zz-MJ-P9ty`AJYJ3bPH>rPx~@>0NX`PLxkvuX0(z$+k4d1BO@a-pak91&S5{q`AmKv*xxCN!CS4kZ#*hC$V{QeqJ@Si-2+b@eVb(<2&Dt9*&!)PgqzS@}%4@7jGCBXX^MFsOdB8&4}_G z%ph(7$uq64&$06Ro-=bCIIwx{J4lQZ06q2fbk1{=MS$eg)YLZs-s)95<^bh(!5oe} z=mn5FMT-rhSCFc*v&j~A#*?w^6xJ2KzP=tea)qrcwD#d0K{yrx4667jgIz9`R?B5} zPyXBhM^tR4wRG#YK8fJT&;9-VkHuU?g+)X>zBr{n$Ad(QF9eV6@iSqe$05+yxjxHf zG5aEYT3VV`Mbo1qV=mdyV-_|xgj3yvfB=ta+D2Ltrx|MOq6biSgAV5Yec7nNT!1A| zJAp}uGx4O5N&?ySG}hXKp@K`?jhea;_|mE8*ieBmy$Na)6l5FNYZjnWYFLlq)sq}Y z#c?k*^e%o7UR}DFg_S&$0kYK+ffvBJq`Eq#p$3uwfJt9b=efd)3JUaK-PD&F)7JrP z*+F*$O=OK^qr9rBHxSN-Mk@e#R-`irQ8p?dM+j&HLF{Y23!_2kGpc&iof=!E7j z)3SR#u%o+mV~>lHqS{3zCC|fpWgAFKF%Gc-XfM!!hTwLsaebuEChJPp!X3{GL$1o1 zdlRAqt8DL|Wiu%U5L3|+3gWzU3o$?&>69Tb3#h}Big7(`+6Z+TFfk$}(Sk;#QaCub z1{Z!UDQO9qSyrd9RRk`dBtw(VT2b_vgkt+o!J5N%W7>$Z;V)jSMH}K~PEL-Tni>!& zN}{My+9{e)|b7sz1{#~8V{7a*|wv8h|d(H%p4r%iiD~g z3}RYwp1^>rzFv6Ha3npa$_)fBqMJ^rd6U$$yiK(=4251 zT*eItJT^Gj)zx)TL4i&E)Z)_oC`HV`{L~;R{O*Vj8;}aIkdDaJaMeRfReBt!7ywBd zZ1A-8^*w-9Q1?+zkG9kME#;#iEv_p=^hF<3`th41Ms+XAFnw807Bd$ESxJI zbHsW;LF%a>9X{a+JmtVzn|KbeB^Xo3A%0VxqM2(a`&yzU6bYG$X&D zpl;8HKxC;xG_Q{3pF3r(pi~8o^66rC*KYT= zMk{$OydG``1t~urF@S;yAk4Go6$*VysEPQ=MS$+^qNRWY0}Q$fL`K}h${&MrFQ$nG zGU}pnbbEJzWX352r$E>l-fVZ7r^468_R)*M!?N<=;>U)*90gDyupILFhE4eMvvMXe zAd|jVh55r-GAiVWg3|Ybg&!0N2?>V?Li9r|>Jy>@!FB6I+BhXHe#_#<>|HmZ4y%AF+b7q_vVLgKcwmw&WD-84qa0N5z>RMIUA2I?-+fZ&B{g zdIoTZI5W_0G^Y31*x10Z^Cr|d7KQu4A}T2}4vzbmRdJNt4v`T2G5$3u z^A+N2dE$*)NVE~!W}u5A0vp~H1>Y5`>(|{;ODAa+`1SQ&U4X*|UA~^FX(CU>^IU*P za7f)io4103f@-9-j06vX`rD0R2zDtCpwYDEVfmQ+H)M*w&lLhC@FAk~6~aD+iLs(z z@)rBd9-7T4Ub2rDOi8t$xB|{yue;3mU1jBIaPbhquQN6t6g2LBAs5?xxY~!OKeD1R z2TKPiaM2a*-QEQsa+=-KZfuT z*h>L&!A6k5y#nn>GJ5AVg-~IG+)>b3{PN`s*o9lD8PVe= z$IZJw*g*C3=g+I3BRoDxDsCaL0a^nrh|NUnfZ*JQhD-vjmI59;aKCw6pXfUpRIvc; zZMb<{U7ZP>pU3XwQBhIp4z#_5t<88jtH%#j2+KTT+f-FmRq`CHqxcwQO_IaHSVb4c zPC}%--_%wk=Dfz!*o1_-9uIZya+Evn2ig&9QNAD7)MO!Ec&Mne>bA8FJ)1M=2cIB) zfiogr77(8fm!-l4r~d~E{)fz;cPl)GmR00lb)1CP;|NXUqXnU*VNofPfxFzOok^bxJYIqCue2Zdkj*<8>xZU8t;z@Bjbzj$Sy7lD6fw&S?0RsiD#Z4@m@ZZJ1 z9wW+*&5v=Am%Fdq;N{c;7C{2N0h*jLtp^MQ0Zi~YSvdvCIjItOznEAwlU_MHI}>#Z zLs5F=(OyDJ0U*!2G#@mL)#L>pPiad_0x4tsTyTx{LQlI_D5LDkV}j^IT|nf9)9^20 zfZl+A>ToX+@e|?RUZe?&BtJ{iY_z;|*_cgj$^5bl1f{}0GnyR;Ce&vb} zm=+`O$O>frf{aV%-);t2>VJ{$bTf*BL&C$;lNb#z?E`S=fx6IN<~Ff(BX~=uZz_dP|G9ryzg2?EU+`@86$K zzYGbd{v{X4ntEgG3+k*bc8j1zGZiEzMCX79%Oqs(m2I)+w7(kNMDY4z)R6a}hIzH$ zxO;nhKg4B2-@g-Jr~@K5;8w)q%)WI)5ReC^aD_lMbf^T(=H;Uvi}?F6vFk4yZptV7 zF$q!N_MUA4R|*4esHvNhULH!R{6!r3pn0|j+(IK84qmA>l)F4Fn#IzM31?9qmnmQMh53C2I{ z>C@Qsbd}+ZO-kW{>n4|#L(ys4T)&=@ZKsoAv0mNRZjY_qB$`fFMah~P;`SS{a+MjD{<wL?PuF+?rc&(_pQB|vB z)`(Bkx?6%UwLsRnZT&22yhf`%9Y$bJQ%vQbfO7By!NWzxM0v?>?!MaI&4c=yRw>{4 zwM95Klm9EGLbVWYoCuXaqMd(L^jx`w-p1GudlER%dGjNxTWDxB@*>tyGoQRZk6I&# zj>&@8L9L~Hcw{7*Wy3-0Zi{yLj@DM9kp>vV2md6FvW8u6h0)uwadRuYO?t**+;elZ zc}q(_ZCFAxY%(fAK5x!P@&8M8S$03@BUh}=v=6D>7@memhM6D%7axgm&SQA)Y z{o%H|8dJ%&j;TB-$^cozd$_*sjQ*{y->B9#SkN4Tv9J`#x6BF_AYP}poQUen@#}gP zxL6dFv~sZNg5Jjzi9t2nY4!cv)tvVEh5`zu+_1q@V|-fwhgjN!Sta(Mm)H7n4bw^X z^WI0ZZpP--I=ZyE6z44Ejz|v9Twda0VTsf}o~MVuugDK9CLj*Ag{se$?b~oOm93-t zoLE{KRO3(w+$nG2))*8^o6))%{d>_~H4@*@w8^C=g@eH0>b`)}M0IU+IHXDZ&M5!w z<3XXJWY9PzFzc+Q{znBa4m!5=szqqY{X+=Ou>AKM|I7dVr4b9Q@~YOevoCU{jK^2t z%4vc*fs|t%2^FaxHLkU-Z5@edhC#X#wfO6vy^;Kv>L%F?*0A93JONq* zC%+dcFcKRF$7Xa_e8R%zSTBZGuU5$HV`sl`#}wS=&>mg_qt|c*Z$fxFiD}mWQYy4q zWF)9Mi2KtC;1%btz|o_I5D}A+k@f9lX7&XWMJgefE4NkWHx@0_fH^(_&D*wPhbO@2 zs&FAnP&~K_sq}lrV=ZF*FrTaf85%@^PLS|9li0+?nFw6!ANK3yrD9hWVDJjjxfvOy zf6zz>9Eb~{0KRP{0b}(@OFM#rdOfMGrA7YiSt{)}W_NIG#iCS^+<|*SDlut2_s|g| z%pV>$?F@z&S_TF(gdhSzF~a55^BB+Bf==5&OYt^8KV@YccEl+(_3@~eB=^0tJ_hKd zi06c1fFCVSLTyjJJqHWWd=Kq4;|0@Cb zOYi@A0fY$P{EUYNFE1~gBLe_Ch+j=ykOV{K7fz{n-Oes71wSx;sm9yc+3ATpG^sJX z9T^$|S&oyCcJ}2)^%wtX0cK|rKwv_>|aU5|2~hukM-}P|NCeDmc+k*=6@gk-#_!;8;)yHoVzS}DD=xy<9{CH zbOTOn^CJ$yUw)MN{`bNQ%_oz=UKW_|C;mMocZ59Z_3LpS`HFx4UlX`AZ*S0PBIhkN zb>)KXi(8lP@DNBYzs=;*$n&)&sZQNeMlhm7z4Sw`FV9a6;x4<{NAw~x;Eo6BVv?Qvk= z=D94x@6zqKynWZ*itDbQs`J~jGgIxvCQHktCV#l4Wy$@sl$&Jpva`P(zuRvkb(p5s zPO<(=YN?{zTJH5E&G|lN>_i!}4?C##v~C=a95d&2;C=jAg=1l~YMdsY_1kjOjaO@d z$9|6aX4(z{xqAlK#Ik9Xm?K^;U$ebWC+8!+Gh{72kAW2P zT$LiQ$UindK4Et5f#P#M!MZyk4+2kLwmY3*H#C|gRq-ly>+-zio`lO5Y<>2&=t<-?nr| zd{rMl+IRk7YmUff# z>rhBZVLb1Z#oYI~IupIFmstI%Ztyw2+QG5-X1mAeSn-Em&3R)wdPM`{%kK8hk-bL? z#4I@fyzTn6lqn0n1Oc(K+81$Z*N;*SPq@GEKTAtLvoX_dPCM^68ySyqmxuQ|Ny&)% zb%l9CC9B3;=6~4iCiUu_Jxu>9Z}XX_R9T6~-d|VQ@k}!MK`^s5#i%HKh?oDdiFjQe zO6S!g%J5@hy~Q2l-|&AR8H^1ao8KqCjr+O~QT19F8xHUKsy02gkDm5vrw~L}MPq=PKw)`x)oDVP+BLsbrXH#ab6aPrt<~F~ zG-h}u`EKfMqe;;OT9OUd{%uPE$IHkAUuYJl^Mnftm-_6P==(Kuwpsa~0=1^mZ>o1h zzxL!UtAphMHXBI})0Tej`fDGub)J?9r7U@Ti%r<{O7H8|t=G2lo10yiP(E0at)mqt z@LFhg(?{9EWa_*>AB0p_lSrpNZueS?dhpiE`Hh|6r}6hw=@|kgmEO9si7EcB$C-@2 ze?2Pd#Jz>3U7KBaFO53=;x6HsEz>i&e#!FQZMOk#-InAUofQ_Fg)1E6X*&7Ru8^t%dMLe2$@EGUvwEB(!;(`-&6UIV5SC)i;0seE3enJIRn&_vt0!eDLN> zs;xC!q_Y2zbDV!Na*DZAye(Fq;n+O2{j2HrmdfwngVh%zNKj23IO`(J?;2GotiHKy zsobYFbSH!2I?_IgaP|=+rtX#H^&o^|bU1aWMte4f&@aA<{HN?@Zz~wMUun~)Elx66 zCJR!SSaB6&iSrN$dpaUbE%v6V$8C#vo_1Z68jFd-et{>!$E9wYo5gH67EwIDQNl>& zVyl)E%{|VAH!_^27SAL@AEbz6*(_e-p51)BthuRBwVN%OJAC=d%^SBeN~4slznPc_ zyzZ(hvtLIu`MXqVs;lLAePz9$(33v}=;aH~md4^lw8H(>tXt~~?kA-$pT8hkqhEdE z!-A?GQ~T~}=7?{e&29r&2(4pg#R5?_D^JwJ7P~=Jo+sEQ9$DGM>CT(36+AS zwU*! zU60&{I<$uRt@JNz(`97uuALCR)MTyRvKk*~U>4&!>}tu^mA3Wpr8A$(n(9RvgZu&$ z#jI7G<2;IHs*tk`O8MCi@Qm zK5YYggWdG6^Bx3wM(jPFvhgWdLYQ2|YrS-1Jc=2sNNEB6b$eUmLS9eIs(BCDL^zx5!* zQc!+ipuhHm^Ns7-=P53&Bi5|Am`?w|is@;GOYS&GCa1p6&M)*vYc7s$#cna2cjuV5 zvAa!jx46x7DE!BRJ+AjlGq=`G@O5VSvd~vKZD?PUif{g-Bf4XPqND{HHQSR zUb$HvJ+s-pqqSgkor%B+{d3I5$65G)@k(;v{j-QpODi6t|Du11>v4q&xE4xEU+tAC zi`>k~VGRvFOJ|F-EIoN;OBbH*ZmU%=G>@Y+-q&P{z*hNN%3G?cr`7bngmZFxsd|on%-_ZnwFP#-MISfOm9QYgM@$Q+u(*P^#3-s z|I>H;?dtw^!v8;F*wr65EbQQgxLkGqpPKEqmrwxfO4a@=wmo0?=|AD@-wv>lI}*CJ z!?$f?0m`0azY`nVrD9E zW#kF{qBd{}h6N&Zc+Z|_H|HNt%k%t%4;uM9Wp#D5U^iaX&+LKU2zb)HfB-r0@1O?_ zjEsIYjJ9Q4FaSLS2395E=H1hkVN8a=6E)7Blv)6QK@T6g<8zzMSOP)S;=)MK6ss8v z^Yc^2M8FE6EkYJH1S+dSOIEtsn?Usl!x~hF?3tEKUBIXB0pUCh3%iF*85Hi(grYTA z5QtmKG5JDnrIl(q2rw=PQW-$Y&GUJLZUDB+eHgMutU6DqtJ8;zSW{bCj=7nzzyO|d zOfMyAcD$##C?qr_#0N9pUi?Wo(odf~>jiNNB-QXK6LM3)>LnEw!wIwJGc>6nH^Jci zzNRL?@%fdtxnI9L5)%^}!qm8fjo|M$Yk3{np7FEifDf8#$D~?(vW$j?M!)l``lD$O zaDH-I{k;d*fA<5v+a+X9Cmb{b52Q3o4u-fguunuNbOiZk}A3S0%A%5v{DG7l*a*u+}Mt~hQXr`$fEi0@%;z}jN95O$sO0W_7fUD*ge5!V>i+=F+KS9%?O;j5eP}MrsSRY z>Fz=S0P=nl7!Hykcko~-kfJ{PD9{NkgRuim3<i$mZ+ORQHw!GwShIvDnY2e$xf^9~F=m$0yif=T$9Ay+VKe#M9q$!Au_ zMgaJ5OdN$2h=A>4x2i!)dyR#pLE9KriAqe9}N)kb~`4M&3?BI0!nf2uV3 zc`vFm?5s?z215*j`r@&igFV)&%~Bgtn80WdKQX}+o|9Uk1COy*IXiO-We;S9r^?|6 zMaMvxq^PILpl+OpXaq|M`7@FwC=-N&mw5d>E^{n+{$vPSzt;X{3%8Wu6e}V_11l#Tm5v1Bi;Nat6?nZi zZrs?5?N2cLgsu#ZaaxFR08M^Cgc9c~5pHe@NE8XFjruFibtFx2F938FeDO$(yVI>wQjI$ z(UAU-=)f#*jC|dKwOdYXKkU-`J2=a_yIDaBLVNPfLTbqwVzbzbWbOp(FDm-BA#(|v zA?VSg^*ExOVfudSypWlmB?2NyCUJvAbj=QWdLMw=(l{;QweW=Z6_1rf0x?aTLO8o@ zR+k+K1rbq9pcx{}q9lUkx9TY(lycbrY%s^-=O(1H5V1A6reTtGZj+G0OUtqD3BViO z$Hhes{@5GwfH?2?!3V`szt$^c!ulrK7Mx7Bqs_eVlN!V40%i3FyeF?L6JkB!;rXB< z5vCdVx>DLvF$w|s8vqlAP^+ByMo=iB#=x6Mt?x3k6B{`Q9t@bYNA~?Y+fu8L?o!kc$vJC81`6WFn`(6!1Szz^sV(2x~#T zsEyk56zmBZl1_xF!I#@li$3D81GNh3BFV1O+SOGO)r?S7PcNv=oD19|$YI(eMHTCN>&=W;Z3)NCag-HC2wnGKoJ0 zAd-;3z=nL!-~S^#MMRxL*oz^SJIV>2iZsHIS>`c;m3NM3E$=u zI2wY|1wFABG+}Gox?Tib$)bhD(M|!|`PnE5#&_@D!8VpR`4sBuvX&MGJao+>XECC? z+#?l$4~>Pw#0-7}Nb@hIZO$I~wVp(noxuskgQ121y#x!sEOJ)vlEspYM7wGFMuF`TCJ?Mb|N87EBHhpEA2o(a71t7~s@i>{L zSBU-Uj{cP$6`80zAog(-dkdW3IFan->Jh_LkJ6=KVjIz z;$NH{^TkAzYl{%Mj_W~0?#AVsN3T?!K$|lK$pCB;T-8Pg zt+Y7c{IA?hv6?ItvL2 zokEXCIAgH#2?-y`2Bi@Vv421RzXZQvb2qN(s!vpar+|=1eK{c80hw9Q+G9fjI0f zCVxxS85(eW4(OTq;nzj;D?3*D%1v=8d1Rw61Z|yNUEafEKaL!2PdD5EnLH$I!Cb0bp@r>7F@*gx-DG&D2Sux_Z@WC4>pm*t8uMdC2UK^fTY$^Cd!H~;pX+5}$u1t^x3$(|6E9!B z&Zdzvu#D0pF@7D9y^iL0XLw4=Rzn>ItCOF5zUp@Ujd^O>v#*UAz+w+amq(ADN zIDc}Rw93O8cfKmVqk~JvCf~?C4W=pVqOvs)%|4ss8_fNZ-{W$t4W>g6HdGM>c$x?* z8ifHHF_=bjzBl$#PQbA;D5k=WW*_r>6c_*t)H!J`7FTF+By(V z)zQ&$=g3)0-L-6-%cO3XIbA4T{PogIQC#48eJ{=gPg{@5b$HuBLNmb>rWJ5GU1BKL;8zXo_2l)B7xg#GA;#F(H z9uIv+hNa+WtGTV1W0dhdPd#PIdYZRVV6)rj`g~FWmV60^$$4-pK z7}gMXiV__S&q@ICT=3bKA=BS~-~c}yBU!aap?jyeGdi~JC)VN`XI^)THUFpliJ~t^ zKrY3Ew17@Ll9z@M&rM>!5dGgUVx7ZNZ;tXZ)9# z3c8C*eXuE^#4N84!I#{E8l()wf;)0mYbVSb>!})vsDgmVNEST7qgF4{Z_il)qtQ!Y z`kDOZr5~zu-|%n+zR^__`-GM!6M4(6#)15%HM=>^MV$q{BYJ!G5YY&NxFyoffFpT* z{rdIp;xf2+1AHbN199pp3mDSGY3N}Cz#sNzcyzF;>=N;Nig6Fe z^xG6&%h(s;QZE-T6opu!1tlI2im`&CB2RTs#};a84xBiV%JMgE2#QC(R`%zxYE8d` znks-J5#)abdSpNAi_v&a2tBgC6p^aJg;AK0pODm)gHZ?f?ceVOrRvjH`2zA#t`TCD zI4(Ga=wF5#rUU zc8fF&7^b&WzSXe3dlB8k^JDc?s(O6AnfXs0#22J=?&jg+dkC@Mw}F9MEfYpHQmBZr z>M6t%UBGo!Xkj~Kdw$2gxSWCS`?AR#y^yk&79&7KtkRYEA|=Sp7Dm&G>&&wu!D(5V zolz!!$V;QQfhs|Vmu}B#O8K7_AU&N(q^pXSibkD}ppx+R@p%*(sf31uMf^q#iarL$ zq=rRZWlSajYOpAX--b>c13>u+Yb+dWx4RgcvLFb-*gHP_;a=XWATh{mq@l7w2Nzhi zS#$33lDOqOFp7cqG*Tw;qz>H>N8`W<2@(k_^)i|cbg^&C=lp$r@uoK7A@)BBfL-_z z6#qbmVMp0I4-u-l|4WD>uVl9tIA*nNUWMC%a1#+pIx!8A;l*g|yB+$s!f)%35=Sg< zM4NtSYkLaiTwKd2BSHp%Y0#*7ViQKfpNtXx&RGupg&*GPy~`}P$VCUEcpyeUBZ%)| zB*54!e>k)esVGEp{Oa=WbEr7Rzud4FYY3@}jZF+JzUXM%MMv85?X3w*n~e>|HeV#> zJwsKW+oC#0`%RuNiI z3=jY#t(>nH9;zK<1pM>*a|F z?L6Jpt~?=}SMR&KiyDfQ7O4F5H?bZmm|RbUFtoI^Xx5BcEIDz)^-hn^O~gWj;dcrs z(FPx-lqU)aXY^Mvg`j5D!AJ#(DFPCS_m54ly5Qr87=+!D&S6kvu|HtPv9}+!&)u-O z6a6gUO&7vYh|wU*qag2fkQm~qK48lN6%DoBkh7S#&M-kzF~0s@u)i=)<#1g$qkvyQ zgqs(*;8}5F%*0n9C_5=H&zxBJ)eDNk?{<#fS)MTX*xb1BD*LJSQ+hT3U)_=i61a(f z2fEm{Q%}bIRzbaKL8k4Z2l=_#m*?axkqJ(-JOJKutT* zvEuvS0oFqj-%M&|PP}kzy%`ktW$0>5$Q=FUJe3n~8(6ooo=P^SdAfs$eLC+(pn!&eBWRRb!skQK^x#F0 zcl16HTT_+1IU^nAvJ~?rPC1eI;GJ&@LyL&47Yvzj91|h#Mf2Y%F#?>Q=x7<4A71j; zPL)e+Y--awx<={GO<=@u4tKuYV80-D{^p(V*`6l~2PnMb+7rtq9`?>Cug>?=pwE5J zY+Z1E_&n`){F?CxgiQ#7aoU<^hocqwnmp{feY+Yz?jsG-oD+S)$=kw2?Nff;9w$NNVCs@b<6#B1)zU`Uwd? zj{rr>#Pa3GXVDc%mh`H@y!rRnxB3BTvNVA+M(8j8{<_~DKv$pu2hiVNU!BHB&x`#q zEj;u0U*R9V9>K(X!QP{VY~}I+L`41lHNx5O#_;dQ5&v+|A^0KRC)CpY+xAx;6;wN(?iLnREmKp#;hYrn7gGalUx(>%<> zvN%gqwX=z28g!}>Hw^EBKY zaa`N!=uV=jn7fqXj@Veh1b=E@DgIhhQ&Z9#ZC)I67z=Ui??C&mUMk7Y9|SvLe-ChV z0*?+>IECX6Zwg?%vDUjC=jqOzJ-h$-@kl%vWKSav9ciXz-}5jqVr3^M*ed-_eSKBW zwHol%Re;Vo2zI{aPrP{Z+Mb)MNvl5yLnCgD1bc!8>Jrx1_v=8;5M7s|reBrNBFCQpv_9e5R>t1!pW#rW0v^rj`2(41|dj?MG-_e{A~ z_AnbPA4?JS?KyYkwSh?L7b?0C3iVGbXD(gYeLQ^H;6#>mdF{DNQZ)gJ9k#jlgKc$C z1MS>7p26>WJVV52%PjdoMf16)&$DjcZ|y~lzUrB^lDB;r>{V|Qd^cdU{@X~f!PWbd zU(LJ*cvn|d;-x#^vBYZZv9WQO=DE>e9aFPen#98}IYc>|I}-4k?)6DFy#>b7R89vP zez)jn@djh$TeZ8)&3xIeZZoqhu|Fi5!*3nIvbBw@FC)odY~y8xx7!Wp_52rQ;w7{7 z%Jmtf)v3wdQz)lLH~dgixq9%B-uj-yo}cpH?@;^f@SRIkTxL{9fPQDGweQ|z4CVel zB?=~j_DWWVPcBoxTd2!rm>$(x6JJ~Vs()3G38*_b4KPCw;fV|%qtq{QX2gqpm72OP zxhpVblN}X36)`%cHjhgi^CSH@kY{w>B3qm8LAY4E8}6Sa0s|~8 zFth8DT5&TifX4y&g+PZ9B?Wi(mEetw;U-;5`a>i(F0Ol_dQMwF2*I96U4jOo3L_wq zJBoO5dkB=-j~odEoAl_>qoJ0xJw)_BLVP|nG(5tz050P+knTNs>444#QBeT(0AiH^ zGZc7yb{E2CFx0a>u0S>b=Ya#>fB>_GQOtmYT~tva*jrcxVu8=o@SaFMjHm!2H4jNT zj~_lHj^D|tsZuma=q4e*mPPm52IDdS`0~;KI|#-rFz*r148~-9d$>#pLm1qCC*tc7 zNa~a$m9=+v}^Nwqw zq8%b}ks7ymEaloS`;IXP2kAa~|D*Hdvun?WzjZXtJ6@UEI>55>^vSZxg}Uo9~N!?y2-}! zz4q= z46n~y`)y2t>%DJ(JQ8#8L}v$egFV~E0&+Ws4_%RL#w=`}*Z1rb-Rx(x$de_4$sOIXQx>az5{I2l{HFAB|t*JUEBAQRHCWo&o(49hl`dJ9g znf!ggQxf=FWMt$SH$!0jm^$v`5D>rh^B#l^@%5@Hdo)^v1m>QB53zSyO+o9=T7gtcgZ0BzgZ-a++>a!%Kym1c)3fo@HJCYc@vZ8Qxg~^kujw7`aBmMu39ESYhu1oCv~*!xs95=-){d6&3Je9|au;p*&Al0uGUf@WMv9tvV9_0li!amp!%( zvZz8Zr?7{9;qg;m2g{W^nhQOb88x6jCKA(cA^CR4ohLO8`pnD`=2tH@I;U8KGtkii ziu?fL?J0msj3?jGFLAVlH71GY%y_$97=VnNdt(A|w&L_V8!mVsj>EVn^I<%V>=8w^ z;q2gBlDe&H4cls}&VG;^FL`iOah+(??vEEsceL@jQf^o;Z_B-6vZ-Ub%)*Z%s-&BN zI&;q3v!H%V>2d9bXAzlWZC&Mi$h`OMljSh5G_2mk>GtDYO{3PaTl>y!^uN4XA5FR^ znoWMB;`1MR88T!WQHT6ty!Do zsPD$_Oc7!@T&A-_sWD);x9_0A(t6PxnnSvV;~pcr*L&H_DtkX~7JW;Zem8RF#=v0V zB0(e}jIR`;6vy#*gHY8Ef)U^8vCUsjHbwn~Cr{JZr>2|!RmV+lM)f@F(MVE7BrC$n zh@27g!do^k__bC}8iM`Ld7i}mGxTtQgDAqnaQvx@~@ zkJ*@nQEJLxbzuVIKX)VVp+kQAw1HdE(b0WPlDYMJK=Rh6t`ffVUgtu|-^ka_(F$MGjagY(-4}ceox9(=q58g41UsCs;-7 zKb*Tr6;28%7pfK+RCw{d=}L95LPEt+^yKQv(wD{6KIIhI9=Ys_tUi2~Fc$Y?$TtJ# zjx^*zjEv>7Q5$pJ^@!)PZ({HyP9j*Pn)ab_cfL*+>Su~*~{|?Quevw_`S1VNub~7`J z^D7sTp3^<=o!D(aZbVzbb2c#}zRxlzFrLQId)REIJ->bRoJ&K&R5TWKfOsiHDcsdB6iQToBz31zWeQSAHMD+ zZQNaQtrY)$s40@j19~fW8pqJMcmPRvO|ChLeD`&ivZLj(rf?3EWp6!aTb2UA{T<81XkNmXXFmQH0baez}5codq|j5pftFH zHcC4?is$Ij$45)AZVQcxcmKM>%!;r###sw#p0FdsX@jmV}P3i@_^a7M3 zOo^VzJn=@VGer(S-9&6kn2b?4i3>L@F1TVDA`REtJKODtbjYQ{rdVEJnjYfIPdgn4 zQ-(6@slGcSeh zxNJG2qPfVIiU;QNj+eiR@`=0@B9--Eo8_m;ses&}$?MG9?GCG^M>enUzPP!%JsPjx{HvorIxKVefUA@wjgGhBiR`n9(j|QU zNz1wF8ngD1b)$8@;+34@jIX!V-_Of$mpnb~nHN9NM(^Ta+BoefwNEbX)a(p5UzUiM z!!p-5ku-KcH|E&OJR?Gk$7nUS+|yYfBdue$a%Znpewys$?VVH8Joj{#V$nIKUk~q$4q2#ExiL7BawpyZHak7)uh$RTltTP5w~kbB-}2$7Ndzo3%VUzlfuFk zS-11QK5t9|0{|gbI>MrHMe65!+xB5@<7ffv8*)fX1_C}{LEzlh_l}P%L(>Tu_Xj%i zKO-kr?iga6YBAnw6*>tKOl4ZjMbuD~ZM^aCAZrMjiNjFbgE(A7v6pE4^u=Qg@lymjb$JE&CqCO=X1(Z>OPzvz@TUV`PQJxum;03eX5tRKpP3VF{m1 zYhg}&(8D?p?vvo2AWZe~yZ7lKgcm;Qj(O|+@LC=z`QTJOvb^Y>Bw@o8jug++5 zcqz-^65vL+~WBEPWPMaIQR!`pQ zs3>R5&iPt5JM^{ujoqQkA)iyn4mKrQ>&BP1SJJ=pUVfcJ^Mt?ly_bgJPhYpt$H8A{ ziyc||x*W+pxqBGpB^d6yUSRODiVx~qO-?EL*1*~~rOTEpn?AFN`5afZ$FwEwJb&5b zwYrqPpSPRxqrG`$){c@F?I_9S(bRG8XYu7tJ9H;*{|6q*ZM9W`-@laZRk5MxccqpI zy-6>W%byKD=2Clw!~$T0DW120}yZF$d_@KBm9`K2x+3f+

B(B61uT(r1W%zKEC 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
Nm(<=O72U%7u^^G+V<0*c=<)sP8y7*o?VgLm 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%0D;Go?*%+jJXfg_(DY5(DBC`YUBpUB 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 literal 3150 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 MDeX2GIKR{Qf5okjU;qFB diff --git a/public/index.html b/public/index.html index aa069f2..41b5547 100644 --- a/public/index.html +++ b/public/index.html @@ -3,12 +3,19 @@ - + + - React App + M Finance Wallet diff --git a/public/logo192.png b/public/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5347 zcmZWtbyO6NvR-oO24RV%BvuJ&=?+<7=`LvyB&A_#M7mSDYw1v6DJkiYl9XjT!%$dLEBTQ8R9|wd3008in6lFF3GV-6mLi?MoP_y~}QUnaDCHI#t z7w^m$@6DI)|C8_jrT?q=f8D?0AM?L)Z}xAo^e^W>t$*Y0KlT5=@bBjT9kxb%-KNdk zeOS1tKO#ChhG7%{ApNBzE2ZVNcxbrin#E1TiAw#BlUhXllzhN$qWez5l;h+t^q#Eav8PhR2|T}y5kkflaK`ba-eoE+Z2q@o6P$)=&` z+(8}+-McnNO>e#$Rr{32ngsZIAX>GH??tqgwUuUz6kjns|LjsB37zUEWd|(&O!)DY zQLrq%Y>)Y8G`yYbYCx&aVHi@-vZ3|ebG!f$sTQqMgi0hWRJ^Wc+Ibv!udh_r%2|U) zPi|E^PK?UE!>_4`f`1k4hqqj_$+d!EB_#IYt;f9)fBOumGNyglU(ofY`yHq4Y?B%- zp&G!MRY<~ajTgIHErMe(Z8JG*;D-PJhd@RX@QatggM7+G(Lz8eZ;73)72Hfx5KDOE zkT(m}i2;@X2AT5fW?qVp?@WgN$aT+f_6eo?IsLh;jscNRp|8H}Z9p_UBO^SJXpZew zEK8fz|0Th%(Wr|KZBGTM4yxkA5CFdAj8=QSrT$fKW#tweUFqr0TZ9D~a5lF{)%-tTGMK^2tz(y2v$i%V8XAxIywrZCp=)83p(zIk6@S5AWl|Oa2hF`~~^W zI;KeOSkw1O#TiQ8;U7OPXjZM|KrnN}9arP)m0v$c|L)lF`j_rpG(zW1Qjv$=^|p*f z>)Na{D&>n`jOWMwB^TM}slgTEcjxTlUby89j1)|6ydRfWERn3|7Zd2&e7?!K&5G$x z`5U3uFtn4~SZq|LjFVrz$3iln-+ucY4q$BC{CSm7Xe5c1J<=%Oagztj{ifpaZk_bQ z9Sb-LaQMKp-qJA*bP6DzgE3`}*i1o3GKmo2pn@dj0;He}F=BgINo};6gQF8!n0ULZ zL>kC0nPSFzlcB7p41doao2F7%6IUTi_+!L`MM4o*#Y#0v~WiO8uSeAUNp=vA2KaR&=jNR2iVwG>7t%sG2x_~yXzY)7K& zk3p+O0AFZ1eu^T3s};B%6TpJ6h-Y%B^*zT&SN7C=N;g|#dGIVMSOru3iv^SvO>h4M=t-N1GSLLDqVTcgurco6)3&XpU!FP6Hlrmj}f$ zp95;b)>M~`kxuZF3r~a!rMf4|&1=uMG$;h^g=Kl;H&Np-(pFT9FF@++MMEx3RBsK?AU0fPk-#mdR)Wdkj)`>ZMl#^<80kM87VvsI3r_c@_vX=fdQ`_9-d(xiI z4K;1y1TiPj_RPh*SpDI7U~^QQ?%0&!$Sh#?x_@;ag)P}ZkAik{_WPB4rHyW#%>|Gs zdbhyt=qQPA7`?h2_8T;-E6HI#im9K>au*(j4;kzwMSLgo6u*}-K`$_Gzgu&XE)udQ zmQ72^eZd|vzI)~!20JV-v-T|<4@7ruqrj|o4=JJPlybwMg;M$Ud7>h6g()CT@wXm` zbq=A(t;RJ^{Xxi*Ff~!|3!-l_PS{AyNAU~t{h;(N(PXMEf^R(B+ZVX3 z8y0;0A8hJYp@g+c*`>eTA|3Tgv9U8#BDTO9@a@gVMDxr(fVaEqL1tl?md{v^j8aUv zm&%PX4^|rX|?E4^CkplWWNv*OKM>DxPa z!RJ)U^0-WJMi)Ksc!^ixOtw^egoAZZ2Cg;X7(5xZG7yL_;UJ#yp*ZD-;I^Z9qkP`} zwCTs0*%rIVF1sgLervtnUo&brwz?6?PXRuOCS*JI-WL6GKy7-~yi0giTEMmDs_-UX zo=+nFrW_EfTg>oY72_4Z0*uG>MnXP=c0VpT&*|rvv1iStW;*^={rP1y?Hv+6R6bxFMkxpWkJ>m7Ba{>zc_q zEefC3jsXdyS5??Mz7IET$Kft|EMNJIv7Ny8ZOcKnzf`K5Cd)&`-fTY#W&jnV0l2vt z?Gqhic}l}mCv1yUEy$%DP}4AN;36$=7aNI^*AzV(eYGeJ(Px-j<^gSDp5dBAv2#?; zcMXv#aj>%;MiG^q^$0MSg-(uTl!xm49dH!{X0){Ew7ThWV~Gtj7h%ZD zVN-R-^7Cf0VH!8O)uUHPL2mO2tmE*cecwQv_5CzWeh)ykX8r5Hi`ehYo)d{Jnh&3p z9ndXT$OW51#H5cFKa76c<%nNkP~FU93b5h-|Cb}ScHs@4Q#|}byWg;KDMJ#|l zE=MKD*F@HDBcX@~QJH%56eh~jfPO-uKm}~t7VkHxHT;)4sd+?Wc4* z>CyR*{w@4(gnYRdFq=^(#-ytb^5ESD?x<0Skhb%Pt?npNW1m+Nv`tr9+qN<3H1f<% zZvNEqyK5FgPsQ`QIu9P0x_}wJR~^CotL|n zk?dn;tLRw9jJTur4uWoX6iMm914f0AJfB@C74a;_qRrAP4E7l890P&{v<}>_&GLrW z)klculcg`?zJO~4;BBAa=POU%aN|pmZJn2{hA!d!*lwO%YSIzv8bTJ}=nhC^n}g(ld^rn#kq9Z3)z`k9lvV>y#!F4e{5c$tnr9M{V)0m(Z< z#88vX6-AW7T2UUwW`g<;8I$Jb!R%z@rCcGT)-2k7&x9kZZT66}Ztid~6t0jKb&9mm zpa}LCb`bz`{MzpZR#E*QuBiZXI#<`5qxx=&LMr-UUf~@dRk}YI2hbMsAMWOmDzYtm zjof16D=mc`^B$+_bCG$$@R0t;e?~UkF?7<(vkb70*EQB1rfUWXh$j)R2)+dNAH5%R zEBs^?N;UMdy}V};59Gu#0$q53$}|+q7CIGg_w_WlvE}AdqoS<7DY1LWS9?TrfmcvT zaypmplwn=P4;a8-%l^e?f`OpGb}%(_mFsL&GywhyN(-VROj`4~V~9bGv%UhcA|YW% zs{;nh@aDX11y^HOFXB$a7#Sr3cEtNd4eLm@Y#fc&j)TGvbbMwze zXtekX_wJqxe4NhuW$r}cNy|L{V=t#$%SuWEW)YZTH|!iT79k#?632OFse{+BT_gau zJwQcbH{b}dzKO?^dV&3nTILYlGw{27UJ72ZN){BILd_HV_s$WfI2DC<9LIHFmtyw? zQ;?MuK7g%Ym+4e^W#5}WDLpko%jPOC=aN)3!=8)s#Rnercak&b3ESRX3z{xfKBF8L z5%CGkFmGO@x?_mPGlpEej!3!AMddChabyf~nJNZxx!D&{@xEb!TDyvqSj%Y5@A{}9 zRzoBn0?x}=krh{ok3Nn%e)#~uh;6jpezhA)ySb^b#E>73e*frBFu6IZ^D7Ii&rsiU z%jzygxT-n*joJpY4o&8UXr2s%j^Q{?e-voloX`4DQyEK+DmrZh8A$)iWL#NO9+Y@!sO2f@rI!@jN@>HOA< z?q2l{^%mY*PNx2FoX+A7X3N}(RV$B`g&N=e0uvAvEN1W^{*W?zT1i#fxuw10%~))J zjx#gxoVlXREWZf4hRkgdHx5V_S*;p-y%JtGgQ4}lnA~MBz-AFdxUxU1RIT$`sal|X zPB6sEVRjGbXIP0U+?rT|y5+ev&OMX*5C$n2SBPZr`jqzrmpVrNciR0e*Wm?fK6DY& zl(XQZ60yWXV-|Ps!A{EF;=_z(YAF=T(-MkJXUoX zI{UMQDAV2}Ya?EisdEW;@pE6dt;j0fg5oT2dxCi{wqWJ<)|SR6fxX~5CzblPGr8cb zUBVJ2CQd~3L?7yfTpLNbt)He1D>*KXI^GK%<`bq^cUq$Q@uJifG>p3LU(!H=C)aEL zenk7pVg}0{dKU}&l)Y2Y2eFMdS(JS0}oZUuVaf2+K*YFNGHB`^YGcIpnBlMhO7d4@vV zv(@N}(k#REdul8~fP+^F@ky*wt@~&|(&&meNO>rKDEnB{ykAZ}k>e@lad7to>Ao$B zz<1(L=#J*u4_LB=8w+*{KFK^u00NAmeNN7pr+Pf+N*Zl^dO{LM-hMHyP6N!~`24jd zXYP|Ze;dRXKdF2iJG$U{k=S86l@pytLx}$JFFs8e)*Vi?aVBtGJ3JZUj!~c{(rw5>vuRF$`^p!P8w1B=O!skwkO5yd4_XuG^QVF z`-r5K7(IPSiKQ2|U9+`@Js!g6sfJwAHVd|s?|mnC*q zp|B|z)(8+mxXyxQ{8Pg3F4|tdpgZZSoU4P&9I8)nHo1@)9_9u&NcT^FI)6|hsAZFk zZ+arl&@*>RXBf-OZxhZerOr&dN5LW9@gV=oGFbK*J+m#R-|e6(Loz(;g@T^*oO)0R zN`N=X46b{7yk5FZGr#5&n1!-@j@g02g|X>MOpF3#IjZ_4wg{dX+G9eqS+Es9@6nC7 zD9$NuVJI}6ZlwtUm5cCAiYv0(Yi{%eH+}t)!E^>^KxB5^L~a`4%1~5q6h>d;paC9c zTj0wTCKrhWf+F#5>EgX`sl%POl?oyCq0(w0xoL?L%)|Q7d|Hl92rUYAU#lc**I&^6p=4lNQPa0 znQ|A~i0ip@`B=FW-Q;zh?-wF;Wl5!+q3GXDu-x&}$gUO)NoO7^$BeEIrd~1Dh{Tr` z8s<(Bn@gZ(mkIGnmYh_ehXnq78QL$pNDi)|QcT*|GtS%nz1uKE+E{7jdEBp%h0}%r zD2|KmYGiPa4;md-t_m5YDz#c*oV_FqXd85d@eub?9N61QuYcb3CnVWpM(D-^|CmkL z(F}L&N7qhL2PCq)fRh}XO@U`Yn<?TNGR4L(mF7#4u29{i~@k;pLsgl({YW5`Mo+p=zZn3L*4{JU;++dG9 X@eDJUQo;Ye2mwlRs?y0|+_a0zY+Zo%Dkae}+MySoIppb75o?vUW_?)>@g{U2`ERQIXV zeY$JrWnMZ$QC<=ii4X|@0H8`si75jB(ElJb00HAB%>SlLR{!zO|C9P3zxw_U8?1d8uRZ=({Ga4shyN}3 zAK}WA(ds|``G4jA)9}Bt2Hy0+f3rV1E6b|@?hpGA=PI&r8)ah|)I2s(P5Ic*Ndhn^ z*T&j@gbCTv7+8rpYbR^Ty}1AY)YH;p!m948r#%7x^Z@_-w{pDl|1S4`EM3n_PaXvK z1JF)E3qy$qTj5Xs{jU9k=y%SQ0>8E$;x?p9ayU0bZZeo{5Z@&FKX>}s!0+^>C^D#z z>xsCPvxD3Z=dP}TTOSJhNTPyVt14VCQ9MQFN`rn!c&_p?&4<5_PGm4a;WS&1(!qKE z_H$;dDdiPQ!F_gsN`2>`X}$I=B;={R8%L~`>RyKcS$72ai$!2>d(YkciA^J0@X%G4 z4cu!%Ps~2JuJ8ex`&;Fa0NQOq_nDZ&X;^A=oc1&f#3P1(!5il>6?uK4QpEG8z0Rhu zvBJ+A9RV?z%v?!$=(vcH?*;vRs*+PPbOQ3cdPr5=tOcLqmfx@#hOqX0iN)wTTO21jH<>jpmwRIAGw7`a|sl?9y9zRBh>(_%| zF?h|P7}~RKj?HR+q|4U`CjRmV-$mLW>MScKnNXiv{vD3&2@*u)-6P@h0A`eeZ7}71 zK(w%@R<4lLt`O7fs1E)$5iGb~fPfJ?WxhY7c3Q>T-w#wT&zW522pH-B%r5v#5y^CF zcC30Se|`D2mY$hAlIULL%-PNXgbbpRHgn<&X3N9W!@BUk@9g*P5mz-YnZBb*-$zMM z7Qq}ic0mR8n{^L|=+diODdV}Q!gwr?y+2m=3HWwMq4z)DqYVg0J~^}-%7rMR@S1;9 z7GFj6K}i32X;3*$SmzB&HW{PJ55kT+EI#SsZf}bD7nW^Haf}_gXciYKX{QBxIPSx2Ma? zHQqgzZq!_{&zg{yxqv3xq8YV+`S}F6A>Gtl39_m;K4dA{pP$BW0oIXJ>jEQ!2V3A2 zdpoTxG&V=(?^q?ZTj2ZUpDUdMb)T?E$}CI>r@}PFPWD9@*%V6;4Ag>D#h>!s)=$0R zRXvdkZ%|c}ubej`jl?cS$onl9Tw52rBKT)kgyw~Xy%z62Lr%V6Y=f?2)J|bZJ5(Wx zmji`O;_B+*X@qe-#~`HFP<{8$w@z4@&`q^Q-Zk8JG3>WalhnW1cvnoVw>*R@c&|o8 zZ%w!{Z+MHeZ*OE4v*otkZqz11*s!#s^Gq>+o`8Z5 z^i-qzJLJh9!W-;SmFkR8HEZJWiXk$40i6)7 zZpr=k2lp}SasbM*Nbn3j$sn0;rUI;%EDbi7T1ZI4qL6PNNM2Y%6{LMIKW+FY_yF3) zSKQ2QSujzNMSL2r&bYs`|i2Dnn z=>}c0>a}>|uT!IiMOA~pVT~R@bGlm}Edf}Kq0?*Af6#mW9f9!}RjW7om0c9Qlp;yK z)=XQs(|6GCadQbWIhYF=rf{Y)sj%^Id-ARO0=O^Ad;Ph+ z0?$eE1xhH?{T$QI>0JP75`r)U_$#%K1^BQ8z#uciKf(C701&RyLQWBUp*Q7eyn76} z6JHpC9}R$J#(R0cDCkXoFSp;j6{x{b&0yE@P7{;pCEpKjS(+1RQy38`=&Yxo%F=3y zCPeefABp34U-s?WmU#JJw23dcC{sPPFc2#J$ZgEN%zod}J~8dLm*fx9f6SpO zn^Ww3bt9-r0XaT2a@Wpw;C23XM}7_14#%QpubrIw5aZtP+CqIFmsG4`Cm6rfxl9n5 z7=r2C-+lM2AB9X0T_`?EW&Byv&K?HS4QLoylJ|OAF z`8atBNTzJ&AQ!>sOo$?^0xj~D(;kS$`9zbEGd>f6r`NC3X`tX)sWgWUUOQ7w=$TO&*j;=u%25ay-%>3@81tGe^_z*C7pb9y*Ed^H3t$BIKH2o+olp#$q;)_ zfpjCb_^VFg5fU~K)nf*d*r@BCC>UZ!0&b?AGk_jTPXaSnCuW110wjHPPe^9R^;jo3 zwvzTl)C`Zl5}O2}3lec=hZ*$JnkW#7enKKc)(pM${_$9Hc=Sr_A9Biwe*Y=T?~1CK z6eZ9uPICjy-sMGbZl$yQmpB&`ouS8v{58__t0$JP%i3R&%QR3ianbZqDs<2#5FdN@n5bCn^ZtH992~5k(eA|8|@G9u`wdn7bnpg|@{m z^d6Y`*$Zf2Xr&|g%sai#5}Syvv(>Jnx&EM7-|Jr7!M~zdAyjt*xl;OLhvW-a%H1m0 z*x5*nb=R5u><7lyVpNAR?q@1U59 zO+)QWwL8t zyip?u_nI+K$uh{y)~}qj?(w0&=SE^8`_WMM zTybjG=999h38Yes7}-4*LJ7H)UE8{mE(6;8voE+TYY%33A>S6`G_95^5QHNTo_;Ao ztIQIZ_}49%{8|=O;isBZ?=7kfdF8_@azfoTd+hEJKWE!)$)N%HIe2cplaK`ry#=pV z0q{9w-`i0h@!R8K3GC{ivt{70IWG`EP|(1g7i_Q<>aEAT{5(yD z=!O?kq61VegV+st@XCw475j6vS)_z@efuqQgHQR1T4;|-#OLZNQJPV4k$AX1Uk8Lm z{N*b*ia=I+MB}kWpupJ~>!C@xEN#Wa7V+7{m4j8c?)ChV=D?o~sjT?0C_AQ7B-vxqX30s0I_`2$in86#`mAsT-w?j{&AL@B3$;P z31G4(lV|b}uSDCIrjk+M1R!X7s4Aabn<)zpgT}#gE|mIvV38^ODy@<&yflpCwS#fRf9ZX3lPV_?8@C5)A;T zqmouFLFk;qIs4rA=hh=GL~sCFsXHsqO6_y~*AFt939UYVBSx1s(=Kb&5;j7cSowdE;7()CC2|-i9Zz+_BIw8#ll~-tyH?F3{%`QCsYa*b#s*9iCc`1P1oC26?`g<9))EJ3%xz+O!B3 zZ7$j~To)C@PquR>a1+Dh>-a%IvH_Y7^ys|4o?E%3`I&ADXfC8++hAdZfzIT#%C+Jz z1lU~K_vAm0m8Qk}K$F>|>RPK%<1SI0(G+8q~H zAsjezyP+u!Se4q3GW)`h`NPSRlMoBjCzNPesWJwVTY!o@G8=(6I%4XHGaSiS3MEBK zhgGFv6Jc>L$4jVE!I?TQuwvz_%CyO!bLh94nqK11C2W$*aa2ueGopG8DnBICVUORP zgytv#)49fVXDaR$SukloYC3u7#5H)}1K21=?DKj^U)8G;MS)&Op)g^zR2($<>C*zW z;X7`hLxiIO#J`ANdyAOJle4V%ppa*(+0i3w;8i*BA_;u8gOO6)MY`ueq7stBMJTB; z-a0R>hT*}>z|Gg}@^zDL1MrH+2hsR8 zHc}*9IvuQC^Ju)^#Y{fOr(96rQNPNhxc;mH@W*m206>Lo<*SaaH?~8zg&f&%YiOEG zGiz?*CP>Bci}!WiS=zj#K5I}>DtpregpP_tfZtPa(N<%vo^#WCQ5BTv0vr%Z{)0q+ z)RbfHktUm|lg&U3YM%lMUM(fu}i#kjX9h>GYctkx9Mt_8{@s%!K_EI zScgwy6%_fR?CGJQtmgNAj^h9B#zmaMDWgH55pGuY1Gv7D z;8Psm(vEPiwn#MgJYu4Ty9D|h!?Rj0ddE|&L3S{IP%H4^N!m`60ZwZw^;eg4sk6K{ ziA^`Sbl_4~f&Oo%n;8Ye(tiAdlZKI!Z=|j$5hS|D$bDJ}p{gh$KN&JZYLUjv4h{NY zBJ>X9z!xfDGY z+oh_Z&_e#Q(-}>ssZfm=j$D&4W4FNy&-kAO1~#3Im;F)Nwe{(*75(p=P^VI?X0GFakfh+X-px4a%Uw@fSbmp9hM1_~R>?Z8+ ziy|e9>8V*`OP}4x5JjdWp}7eX;lVxp5qS}0YZek;SNmm7tEeSF*-dI)6U-A%m6YvCgM(}_=k#a6o^%-K4{`B1+}O4x zztDT%hVb;v#?j`lTvlFQ3aV#zkX=7;YFLS$uIzb0E3lozs5`Xy zi~vF+%{z9uLjKvKPhP%x5f~7-Gj+%5N`%^=yk*Qn{`> z;xj&ROY6g`iy2a@{O)V(jk&8#hHACVDXey5a+KDod_Z&}kHM}xt7}Md@pil{2x7E~ zL$k^d2@Ec2XskjrN+IILw;#7((abu;OJii&v3?60x>d_Ma(onIPtcVnX@ELF0aL?T zSmWiL3(dOFkt!x=1O!_0n(cAzZW+3nHJ{2S>tgSK?~cFha^y(l@-Mr2W$%MN{#af8J;V*>hdq!gx=d0h$T7l}>91Wh07)9CTX zh2_ZdQCyFOQ)l(}gft0UZG`Sh2`x-w`5vC2UD}lZs*5 zG76$akzn}Xi))L3oGJ75#pcN=cX3!=57$Ha=hQ2^lwdyU#a}4JJOz6ddR%zae%#4& za)bFj)z=YQela(F#Y|Q#dp}PJghITwXouVaMq$BM?K%cXn9^Y@g43$=O)F&ZlOUom zJiad#dea;-eywBA@e&D6Pdso1?2^(pXiN91?jvcaUyYoKUmvl5G9e$W!okWe*@a<^ z8cQQ6cNSf+UPDx%?_G4aIiybZHHagF{;IcD(dPO!#=u zWfqLcPc^+7Uu#l(Bpxft{*4lv#*u7X9AOzDO z1D9?^jIo}?%iz(_dwLa{ex#T}76ZfN_Z-hwpus9y+4xaUu9cX}&P{XrZVWE{1^0yw zO;YhLEW!pJcbCt3L8~a7>jsaN{V3>tz6_7`&pi%GxZ=V3?3K^U+*ryLSb)8^IblJ0 zSRLNDvIxt)S}g30?s_3NX>F?NKIGrG_zB9@Z>uSW3k2es_H2kU;Rnn%j5qP)!XHKE zPB2mHP~tLCg4K_vH$xv`HbRsJwbZMUV(t=ez;Ec(vyHH)FbfLg`c61I$W_uBB>i^r z&{_P;369-&>23R%qNIULe=1~T$(DA`ev*EWZ6j(B$(te}x1WvmIll21zvygkS%vwG zzkR6Z#RKA2!z!C%M!O>!=Gr0(J0FP=-MN=5t-Ir)of50y10W}j`GtRCsXBakrKtG& zazmITDJMA0C51&BnLY)SY9r)NVTMs);1<=oosS9g31l{4ztjD3#+2H7u_|66b|_*O z;Qk6nalpqdHOjx|K&vUS_6ITgGll;TdaN*ta=M_YtyC)I9Tmr~VaPrH2qb6sd~=AcIxV+%z{E&0@y=DPArw zdV7z(G1hBx7hd{>(cr43^WF%4Y@PXZ?wPpj{OQ#tvc$pABJbvPGvdR`cAtHn)cSEV zrpu}1tJwQ3y!mSmH*uz*x0o|CS<^w%&KJzsj~DU0cLQUxk5B!hWE>aBkjJle8z~;s z-!A=($+}Jq_BTK5^B!`R>!MulZN)F=iXXeUd0w5lUsE5VP*H*oCy(;?S$p*TVvTxwAeWFB$jHyb0593)$zqalVlDX=GcCN1gU0 zlgU)I$LcXZ8Oyc2TZYTPu@-;7<4YYB-``Qa;IDcvydIA$%kHhJKV^m*-zxcvU4viy&Kr5GVM{IT>WRywKQ9;>SEiQD*NqplK-KK4YR`p0@JW)n_{TU3bt0 zim%;(m1=#v2}zTps=?fU5w^(*y)xT%1vtQH&}50ZF!9YxW=&7*W($2kgKyz1mUgfs zfV<*XVVIFnohW=|j+@Kfo!#liQR^x>2yQdrG;2o8WZR+XzU_nG=Ed2rK?ntA;K5B{ z>M8+*A4!Jm^Bg}aW?R?6;@QG@uQ8&oJ{hFixcfEnJ4QH?A4>P=q29oDGW;L;= z9-a0;g%c`C+Ai!UmK$NC*4#;Jp<1=TioL=t^YM)<<%u#hnnfSS`nq63QKGO1L8RzX z@MFDqs1z ztYmxDl@LU)5acvHk)~Z`RW7=aJ_nGD!mOSYD>5Odjn@TK#LY{jf?+piB5AM-CAoT_ z?S-*q7}wyLJzK>N%eMPuFgN)Q_otKP;aqy=D5f!7<=n(lNkYRXVpkB{TAYLYg{|(jtRqYmg$xH zjmq?B(RE4 zQx^~Pt}gxC2~l=K$$-sYy_r$CO(d=+b3H1MB*y_5g6WLaWTXn+TKQ|hNY^>Mp6k*$ zwkovomhu776vQATqT4blf~g;TY(MWCrf^^yfWJvSAB$p5l;jm@o#=!lqw+Lqfq>X= z$6~kxfm7`3q4zUEB;u4qa#BdJxO!;xGm)wwuisj{0y2x{R(IGMrsIzDY9LW>m!Y`= z04sx3IjnYvL<4JqxQ8f7qYd0s2Ig%`ytYPEMKI)s(LD}D@EY>x`VFtqvnADNBdeao zC96X+MxnwKmjpg{U&gP3HE}1=s!lv&D{6(g_lzyF3A`7Jn*&d_kL<;dAFx!UZ>hB8 z5A*%LsAn;VLp>3${0>M?PSQ)9s3}|h2e?TG4_F{}{Cs>#3Q*t$(CUc}M)I}8cPF6% z=+h(Kh^8)}gj(0}#e7O^FQ6`~fd1#8#!}LMuo3A0bN`o}PYsm!Y}sdOz$+Tegc=qT z8x`PH$7lvnhJp{kHWb22l;@7B7|4yL4UOOVM0MP_>P%S1Lnid)+k9{+3D+JFa#Pyf zhVc#&df87APl4W9X)F3pGS>@etfl=_E5tBcVoOfrD4hmVeTY-cj((pkn%n@EgN{0f zwb_^Rk0I#iZuHK!l*lN`ceJn(sI{$Fq6nN& zE<-=0_2WN}m+*ivmIOxB@#~Q-cZ>l136w{#TIJe478`KE7@=a{>SzPHsKLzYAyBQO zAtuuF$-JSDy_S@6GW0MOE~R)b;+0f%_NMrW(+V#c_d&U8Z9+ec4=HmOHw?gdjF(Lu zzra83M_BoO-1b3;9`%&DHfuUY)6YDV21P$C!Rc?mv&{lx#f8oc6?0?x zK08{WP65?#>(vPfA-c=MCY|%*1_<3D4NX zeVTi-JGl2uP_2@0F{G({pxQOXt_d{g_CV6b?jNpfUG9;8yle-^4KHRvZs-_2siata zt+d_T@U$&t*xaD22(fH(W1r$Mo?3dc%Tncm=C6{V9y{v&VT#^1L04vDrLM9qBoZ4@ z6DBN#m57hX7$C(=#$Y5$bJmwA$T8jKD8+6A!-IJwA{WOfs%s}yxUw^?MRZjF$n_KN z6`_bGXcmE#5e4Ym)aQJ)xg3Pg0@k`iGuHe?f(5LtuzSq=nS^5z>vqU0EuZ&75V%Z{ zYyhRLN^)$c6Ds{f7*FBpE;n5iglx5PkHfWrj3`x^j^t z7ntuV`g!9Xg#^3!x)l*}IW=(Tz3>Y5l4uGaB&lz{GDjm2D5S$CExLT`I1#n^lBH7Y zDgpMag@`iETKAI=p<5E#LTkwzVR@=yY|uBVI1HG|8h+d;G-qfuj}-ZR6fN>EfCCW z9~wRQoAPEa#aO?3h?x{YvV*d+NtPkf&4V0k4|L=uj!U{L+oLa(z#&iuhJr3-PjO3R z5s?=nn_5^*^Rawr>>Nr@K(jwkB#JK-=+HqwfdO<+P5byeim)wvqGlP-P|~Nse8=XF zz`?RYB|D6SwS}C+YQv+;}k6$-%D(@+t14BL@vM z2q%q?f6D-A5s$_WY3{^G0F131bbh|g!}#BKw=HQ7mx;Dzg4Z*bTLQSfo{ed{4}NZW zfrRm^Ca$rlE{Ue~uYv>R9{3smwATcdM_6+yWIO z*ZRH~uXE@#p$XTbCt5j7j2=86e{9>HIB6xDzV+vAo&B?KUiMP|ttOElepnl%|DPqL b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/public/manifest.json b/public/manifest.json index 080d6c7..5d001ae 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,21 +1,11 @@ { - "short_name": "React App", - "name": "Create React App Sample", + "short_name": "mfinance", + "name": "M Finance Wallet", "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": ".", diff --git a/src/App.css b/src/App.css index 74b5e05..dffb4c1 100644 --- a/src/App.css +++ b/src/App.css @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + .App { text-align: center; } diff --git a/src/App.js b/src/App.js index ce9cbd2..aca1d7a 100644 --- a/src/App.js +++ b/src/App.js @@ -1,26 +1,230 @@ -import React from 'react'; -import logo from './logo.svg'; -import './App.css'; +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { BrowserRouter as Router, Switch, Route } from "react-router-dom"; +import clsx from "clsx"; +import { makeStyles } from "@material-ui/core/styles"; +import { + AppBar, + Container, + CssBaseline, + Divider, + Drawer, + IconButton, + List, + Toolbar, + Typography, +} from "@material-ui/core"; +import { + ChevronLeft as ChevronLeftIcon, + Menu as MenuIcon, +} from "@material-ui/icons"; + +import Brokers from "./brokers/Brokers"; +import BrokersAdd from "./brokers/BrokersAdd"; +import BrokersEdit from "./brokers/BrokersEdit"; +import Dashboard from "./dashboard/Dashboard"; +import IncomeTax from "./IncomeTax"; +import NotFound from "./components/NotFound"; +import Portfolios from "./portfolios/Portfolios"; +import PortfoliosAdd from "./portfolios/PortfoliosAdd"; +import PortfoliosEdit from "./portfolios/PortfoliosEdit"; +import Purchases from "./purchases/Purchases"; +import PurchasesAdd from "./purchases/PurchasesAdd"; +import PurchasesEdit from "./purchases/PurchasesEdit"; +import Sales from "./sales/Sales"; +import SalesAdd from "./sales/SalesAdd"; +import SalesEdit from "./sales/SalesEdit"; +import { mainListItems, secondaryListItems } from "./menuItems"; + +const drawerWidth = 240; + +const useStyles = makeStyles((theme) => ({ + appBarSpacer: theme.mixins.toolbar, + content: { + flexGrow: 1, + height: "100vh", + overflow: "auto", + }, + container: { + paddingTop: theme.spacing(4), + paddingBottom: theme.spacing(4), + }, + root: { + display: "flex", + }, + toolbar: { + paddingRight: 24, // keep right padding when drawer closed + }, + toolbarIcon: { + display: "flex", + alignItems: "center", + justifyContent: "flex-end", + padding: "0 8px", + ...theme.mixins.toolbar, + }, + appBar: { + zIndex: theme.zIndex.drawer + 1, + transition: theme.transitions.create(["width", "margin"], { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.leavingScreen, + }), + }, + appBarShift: { + marginLeft: drawerWidth, + width: `calc(100% - ${drawerWidth}px)`, + transition: theme.transitions.create(["width", "margin"], { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.enteringScreen, + }), + }, + menuButton: { + marginRight: 36, + }, + menuButtonHidden: { + display: "none", + }, + title: { + flexGrow: 1, + }, + drawerPaper: { + position: "relative", + whiteSpace: "nowrap", + width: drawerWidth, + transition: theme.transitions.create("width", { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.enteringScreen, + }), + }, + drawerPaperClose: { + overflowX: "hidden", + transition: theme.transitions.create("width", { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.leavingScreen, + }), + width: theme.spacing(7), + [theme.breakpoints.up("sm")]: { + width: theme.spacing(9), + }, + }, +})); + +const App = () => { + const classes = useStyles(); + const [open, setOpen] = React.useState(true); + const handleDrawerOpen = () => { + setOpen(true); + }; + const handleDrawerClose = () => { + setOpen(false); + }; -function App() { return ( -

+
+ + + +
+ + {mainListItems} + + {secondaryListItems} + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + ); -} +}; export default App; diff --git a/src/App.test.js b/src/App.test.js index 4db7ebc..4d9a4f1 100644 --- a/src/App.test.js +++ b/src/App.test.js @@ -1,8 +1,14 @@ -import React from 'react'; -import { render } from '@testing-library/react'; -import App from './App'; +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ -test('renders learn react link', () => { +import React from "react"; +import { render } from "@testing-library/react"; +import App from "./App"; + +test("renders learn react link", () => { const { getByText } = render(); const linkElement = getByText(/learn react/i); expect(linkElement).toBeInTheDocument(); diff --git a/src/IncomeTax.js b/src/IncomeTax.js new file mode 100644 index 0000000..28cad9a --- /dev/null +++ b/src/IncomeTax.js @@ -0,0 +1,206 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useEffect, useState } from "react"; +import { + FormControl, + InputLabel, + MenuItem, + Paper, + Select, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Typography, +} from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; +import Loading from "./components/Loading"; +import MFinanceHttpClient from "./MFinanceHttpClient"; +import { convertToBRLMoney } from "./convertToBRLMoney"; +import { convertIdToTitle } from "./convertTypeIdToTitle"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + marginLeft: "auto", + marginRight: "auto", + marginBottom: theme.spacing(3), + }, + yearSelect: { + marginTop: theme.spacing(3), + marginBottom: theme.spacing(3), + minWidth: 120, + }, +})); + +const DataTable = ({ items, itemType }) => { + const classes = useStyles(); + return ( + + + {convertIdToTitle(itemType)} + + + + + + Symbol + Broker + Shares + Average Price + Total + + + + {items.map((item, index) => ( + + {item.symbol} + {item.brokerId} + {item.shares} + + {convertToBRLMoney(item.averagePrice)} + + + {convertToBRLMoney(item.costBasics)} + + + ))} + + + + + + Total + + + + {convertToBRLMoney( + items + .map((item) => item.costBasics) + .reduce((prev, next) => prev + next) + )} + + + + +
+
+
+ ); +}; + +const Data = ({ rows }) => { + const byType = {}; + Object.entries(rows.items).forEach(([key, value]) => { + if (value.shares < 1) { + return; + } + value.symbol = key; + if (value.itemType in byType) { + byType[value.itemType].push(value); + } else { + byType[value.itemType] = [value]; + } + }); + + return ( +
+ {Object.entries(byType).map(([key, value]) => { + return ; + })} +
+ ); +}; + +const IncomeTax = () => { + const currentDate = new Date(); + const currentYear = currentDate.getFullYear(); + const [year, setYear] = React.useState(currentYear - 1); + + const handleChange = (event) => { + const year = event.target.value; + setYear(year); + fetchPortfolio(year); + }; + + const classes = useStyles(); + + const [portfolio, setPortfolio] = useState({}); + + // FIXME called twice on init + const fetchPortfolio = (year) => { + // FIXME + const payload = { + entity: "portfolios", + id: "default", + query: { year: year }, + }; + MFinanceHttpClient("GET_ONE", payload).then((data) => { + setPortfolio(data); + }); + }; + + useEffect(() => { + fetchPortfolio(year); + }, [year]); + + // FIXME + if (portfolio.constructor === Object && Object.keys(portfolio).length === 0) { + return ; + } + + // FIXME + let total = 0; + Object.entries(portfolio.items).forEach(([key, value]) => { + if (value.shares < 1) { + return; + } + total += value.costBasics; + }); + + return ( + + + Income Tax + + + Year + + + + Total: {convertToBRLMoney(total)} + + + + ); +}; + +export default IncomeTax; diff --git a/src/MFinanceHttpClient.js b/src/MFinanceHttpClient.js new file mode 100644 index 0000000..b7be06b --- /dev/null +++ b/src/MFinanceHttpClient.js @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import axios from "axios"; +import qs from "qs"; + +import conf from "./conf"; + +const convertFormData = (formData) => { + if (formData.date) { + const dt = new Date(formData.date); + formData.date = dt.toISOString(); + } + if (formData.shares) { + formData.shares = parseInt(formData.shares); + } + if (formData.price) { + formData.price = parseFloat(formData.price); + } + if (formData.commission) { + formData.commission = parseFloat(formData.commission) || 0; + } + return formData; +}; + +const MFinanceHttpClient = (type, payload) => { + switch (type) { + case "GET_ALL": { + const query = payload.query ? `?${qs.stringify(payload.query)}` : ""; + const url = `${conf.mfinanceUrl}/${payload.entity}${query}`; + return axios.get(url).then((x) => { + return x.data; + }); + } + case "GET_ONE": { + const query = payload.query ? `?${qs.stringify(payload.query)}` : ""; + const url = `${conf.mfinanceUrl}/${payload.entity}/${payload.id}${query}`; + return axios.get(url).then((x) => { + return x.data; + }); + } + case "CREATE": { + const url = `${conf.mfinanceUrl}/${payload.entity}`; + const formData = convertFormData(payload.formData); + return axios.post(url, formData).then((data) => { + return data.data; + }); + } + case "DELETE": { + const url = `${conf.mfinanceUrl}/${payload.entity}/${payload.id}`; + return axios.delete(url).then((data) => { + return data.data; + }); + } + case "UPDATE": { + const url = `${conf.mfinanceUrl}/${payload.entity}/${payload.formData.id}`; + const formData = convertFormData(payload.formData); + return axios.put(url, formData).then((data) => { + return data.data; + }); + } + default: + return Promise.reject(`Unsupported action type "${type}"`); + } +}; + +export default MFinanceHttpClient; diff --git a/src/brokers/Brokers.js b/src/brokers/Brokers.js new file mode 100644 index 0000000..c4e3bd9 --- /dev/null +++ b/src/brokers/Brokers.js @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect, useContext } from "react"; +import { + IconButton, + Paper, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Typography, +} from "@material-ui/core"; +import DeleteIcon from "@material-ui/icons/Delete"; +import { makeStyles } from "@material-ui/core/styles"; + +import AddButton from "../components/AddButton"; +import EmptyEntity from "../components/EmptyEntity"; +import Loading from "../components/Loading"; +import MFinanceHttpClient from "../MFinanceHttpClient"; +import ModalUpdaterContext from "../components/ModalUpdaterContext"; +import TableCellWithLink from "../components/TableCellWithLink"; +import WithConfirmationDialog from "../components/WithConfirmationDialog"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const BrokersAddButton = () => ; + +const BrokersTable = ({ rows, handleDeleteItem }) => { + const setModalOptions = useContext(ModalUpdaterContext); + + return ( + + + + + ID + Name + Actions + + + + {rows.map((row) => { + // FIXME + const modalProps = { + context: row.id, + message: `Are you sure you want to delete "${row.name}"?`, + title: "Delete broker", + onConfirm: (_, context) => { + handleDeleteItem(context); + setModalOptions({ isOpen: false }); + }, + onBackdropClick: () => setModalOptions({ isOpen: false }), + onCancel: () => setModalOptions({ isOpen: false }), + }; + + const editLink = `/brokers/${row.id}/edit`; + + return ( + + {row.id} + + {row.name} + + + + setModalOptions({ isOpen: true, modalProps }) + } + > + + + + + ); + })} + +
+
+ ); +}; + +const Data = ({ rows, handleDeleteItem }) => { + if (rows.length === 0) { + return ; + } + return ( + + + + ); +}; + +const Brokers = () => { + const classes = useStyles(); + const [rows, setData] = useState({}); + const fetchData = () => { + MFinanceHttpClient("GET_ALL", { entity: "brokers" }).then((data) => { + setData(data.brokers); + }); + }; + const handleDeleteItem = (id) => { + MFinanceHttpClient("DELETE", { entity: "brokers", id: id }).then((data) => { + fetchData(); + }); + }; + + useEffect(() => { + fetchData(); + }, []); + + // FIXME + if (Object.keys(rows).length === 0 && rows.constructor === Object) { + return ; + } + + return ( + + + + Brokers + + + + + + ); +}; + +export default Brokers; diff --git a/src/brokers/BrokersAdd.js b/src/brokers/BrokersAdd.js new file mode 100644 index 0000000..706785e --- /dev/null +++ b/src/brokers/BrokersAdd.js @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState } from "react"; +import { Paper, Typography } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; + +import MFinanceHttpClient from "../MFinanceHttpClient"; +import BrokersForm from "./BrokersForm"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + width: 600, + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const BrokersAdd = () => { + const classes = useStyles(); + const [values, setValues] = useState({ + name: "", + }); + + const handleChange = (prop) => (event) => { + setValues({ ...values, [prop]: event.target.value }); + }; + + const handleSubmit = (event) => { + event.preventDefault(); + MFinanceHttpClient("CREATE", { entity: "brokers", formData: values }).then( + () => { + window.location.href = "/brokers"; + } + ); + }; + + return ( + + + Add brokers + + + + ); +}; + +export default BrokersAdd; diff --git a/src/brokers/BrokersEdit.js b/src/brokers/BrokersEdit.js new file mode 100644 index 0000000..634ceea --- /dev/null +++ b/src/brokers/BrokersEdit.js @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect } from "react"; +import { makeStyles } from "@material-ui/core/styles"; +import { Paper, Typography } from "@material-ui/core"; +import { useParams } from "react-router-dom"; + +import BrokersForm from "./BrokersForm"; +import Loading from "../components/Loading"; +import MFinanceHttpClient from "../MFinanceHttpClient"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + width: 600, + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const BrokersEdit = () => { + const classes = useStyles(); + const [values, setValues] = useState({}); + const { id } = useParams(); + + const fetchData = () => { + MFinanceHttpClient("GET_ONE", { entity: "brokers", id: id }) + .then((data) => { + setValues(data); + }) + .catch((err) => console.error(err)); + }; + + const handleUpdateItem = (event) => { + event.preventDefault(); + MFinanceHttpClient("UPDATE", { entity: "brokers", formData: values }) + .then((data) => { + window.location.href = "/brokers"; + }) + .catch((err) => console.error(err)); + }; + + const handleChange = (prop) => (event) => { + setValues({ ...values, [prop]: event.target.value }); + }; + + useEffect(() => { + if (Object.keys(values).length === 0 && values.constructor === Object) { + fetchData(); + } + }); + + // FIXME + if (Object.keys(values).length === 0 && values.constructor === Object) { + return ; + } + + return ( + + + Edit broker + + + + ); +}; + +export default BrokersEdit; diff --git a/src/brokers/BrokersForm.js b/src/brokers/BrokersForm.js new file mode 100644 index 0000000..8b6f526 --- /dev/null +++ b/src/brokers/BrokersForm.js @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { Grid, TextField } from "@material-ui/core"; + +import Form from "../components/Form"; + +const BrokersForm = ({ handleSubmit, handleChange, values }) => { + return ( +
+ + + + + + +
+ ); +}; + +export default BrokersForm; diff --git a/src/chartColors.js b/src/chartColors.js new file mode 100644 index 0000000..f4be570 --- /dev/null +++ b/src/chartColors.js @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +export const chartColors = [ + "#0088FE", + "#00C49F", + "#FFBB28", + "#FF8042", + "#003f5c", + "#2f4b7c", + "#665191", + "#a05195", + "#d45087", + "#f95d6a", + "#ff7c43", + "#ffa600", + "#379469", + "#58a066", + "#78ab63", +]; diff --git a/src/components/AddButton.js b/src/components/AddButton.js new file mode 100644 index 0000000..89363a5 --- /dev/null +++ b/src/components/AddButton.js @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { Fab } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; +import { Add as AddIcon } from "@material-ui/icons"; + +const useStyles = makeStyles((theme) => ({ + fab: { + position: "absolute", + bottom: theme.spacing(4), + right: theme.spacing(4), + }, +})); + +const AddButton = ({ href }) => { + const classes = useStyles(); + return ( + + + + ); +}; + +export default AddButton; diff --git a/src/components/ChartTooltip.js b/src/components/ChartTooltip.js new file mode 100644 index 0000000..dfa77fb --- /dev/null +++ b/src/components/ChartTooltip.js @@ -0,0 +1,33 @@ +import React from "react"; +import { makeStyles } from "@material-ui/core/styles"; + +import { convertToBRLMoney } from "../convertToBRLMoney"; + +const useStyles = makeStyles((theme) => ({ + tooltip: { + margin: 0, + padding: 10, + backgroundColor: "#fff", + border: "1px solid #ccc", + whiteSpace: "nowrap", + }, +})); + +const ChartTooltip = ({ active, payload, label, isMoney }) => { + const classes = useStyles(); + if (active) { + const value = isMoney + ? convertToBRLMoney(payload[0].value) + : payload[0].value; + + return ( +
+

{`${payload[0].name}: ${value}`}

+
+ ); + } + + return null; +}; + +export default ChartTooltip; diff --git a/src/components/ConfirmationDialog.js b/src/components/ConfirmationDialog.js new file mode 100644 index 0000000..789609c --- /dev/null +++ b/src/components/ConfirmationDialog.js @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useContext } from "react"; + +import { + Button, + Dialog, + DialogContent, + DialogTitle, + DialogContentText, + DialogActions, +} from "@material-ui/core"; + +import ModalStateContext from "./ModalStateContext"; + +const ConfirmationDialog = () => { + const { + isOpen, + modalProps: { + context, + title, + message, + onConfirm, + onCancel, + onBackdropClick, + }, + } = useContext(ModalStateContext); + + return ( + onBackdropClick(e, context)} + > + {title} + + + {message} + + + + + + + + ); +}; + +export default ConfirmationDialog; diff --git a/src/components/EmptyEntity.js b/src/components/EmptyEntity.js new file mode 100644 index 0000000..a3094c4 --- /dev/null +++ b/src/components/EmptyEntity.js @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import { Alert, AlertTitle } from "@material-ui/lab"; + +const EmptyEntity = ({ name, button }) => ( + + + Warning + There are no {name}! Please, add one... + + {button} + +); + +export default EmptyEntity; diff --git a/src/components/Form.js b/src/components/Form.js new file mode 100644 index 0000000..b896fa0 --- /dev/null +++ b/src/components/Form.js @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { Button, Grid } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; + +const useStyles = makeStyles((theme) => ({ + button: { + marginTop: theme.spacing(3), + marginLeft: theme.spacing(1), + }, + buttons: { + display: "flex", + justifyContent: "flex-end", + }, +})); + +const Form = ({ id, handleSubmit, children }) => { + const classes = useStyles(); + return ( +
+ + {children} + +
+ +
+
+
+
+ ); +}; + +export default Form; diff --git a/src/components/Loading.js b/src/components/Loading.js new file mode 100644 index 0000000..b85a1bc --- /dev/null +++ b/src/components/Loading.js @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import { + CircularProgress, + List, + ListItem, + ListItemText, +} from "@material-ui/core"; + +const Loading = () => ( + + + + + + +); + +export default Loading; diff --git a/src/components/LotForm.js b/src/components/LotForm.js new file mode 100644 index 0000000..ac56dc6 --- /dev/null +++ b/src/components/LotForm.js @@ -0,0 +1,237 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useEffect, useState } from "react"; +import { Grid, MenuItem, TextField } from "@material-ui/core"; +import { + MuiPickersUtilsProvider, + KeyboardDatePicker, +} from "@material-ui/pickers"; +import "moment/locale/pt-br"; +import moment from "moment"; +import MomentUtils from "@date-io/moment"; + +import Form from "./Form"; +import MFinanceHttpClient from "../MFinanceHttpClient"; + +const LotForm = ({ id, handleChange, handleSubmit, values }) => { + const today = + values && values.date ? values.date : moment().utc().format("YYYY-MM-DD"); + const [selectedDate, setSelectedDate] = React.useState( + moment(today).utc().format("YYYY-MM-DD") + ); + const handleDateChange = (date) => { + if (!date) { + return ""; + } + const value = date.utc().format("YYYY-MM-DD"); + handleChange("date")({ target: { value: value } }); + setSelectedDate(value); + }; + const [portfolios, setPortfolios] = useState([]); + const [brokers, setBrokers] = useState([]); + const fetchPortfolios = () => { + MFinanceHttpClient("GET_ALL", { entity: "portfolios" }) + .then((data) => { + setPortfolios(data); + }) + .catch((err) => console.error(err)); + }; + const fetchBrokers = () => { + MFinanceHttpClient("GET_ALL", { entity: "brokers" }) + .then((data) => { + setBrokers(data.brokers); + }) + .catch((err) => console.error(err)); + }; + + useEffect(() => { + // FIXME + handleChange("date")({ target: { value: today } }); + fetchPortfolios(); + fetchBrokers(); + }, []); + + //FIXME: duplicated + const itemTypeList = [ + { + value: "stocks", + label: "Ações", + }, + { + value: "fiis", + label: "Fundo Imobiliário", + }, + { + value: "certificates-of-deposit", + label: "CDB", + }, + { + value: "treasuries-direct", + label: "Tesouro Direto", + }, + { + value: "stocks-funds", + label: "Fundos de ações", + }, + { + value: "ficfi", + label: "FICFI", + }, + ]; + + return ( + +
+ + + {portfolios && + portfolios.map((option) => ( + + {option.name} + + ))} + + + + + {itemTypeList.map((option) => ( + + {option.label} + + ))} + + + + + {brokers && + brokers.map((option) => ( + + {option.name} + + ))} + + + + + + + + + + + + + + + + + +
+
+ ); +}; + +export default LotForm; diff --git a/src/components/LotTable.js b/src/components/LotTable.js new file mode 100644 index 0000000..40b007e --- /dev/null +++ b/src/components/LotTable.js @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useContext } from "react"; +import { + IconButton, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, +} from "@material-ui/core"; +import DeleteIcon from "@material-ui/icons/Delete"; +import moment from "moment"; + +import { convertToBRLMoney } from "../convertToBRLMoney"; +import ModalUpdaterContext from "../components//ModalUpdaterContext"; +import TableCellWithLink from "../components/TableCellWithLink"; + +const convertStringToDate = (date) => { + return moment(date).utc().format("DD/MM/YYYY"); +}; + +const LotTable = ({ rows, type, handleDeleteItem }) => { + const setModalOptions = useContext(ModalUpdaterContext); + return ( + + + + + Symbol + Shares + Price + Commission + Date + Type + Portfolio ID + Broker ID + Total + Actions + + + + {rows.map((row) => { + // FIXME + const modalProps = { + context: row._id, + message: `Are you sure you want to delete "${row.symbol}"?`, + title: `Delete ${row.itemType}`, + onConfirm: (_, context) => { + handleDeleteItem(context); + setModalOptions({ isOpen: false }); + }, + onBackdropClick: () => setModalOptions({ isOpen: false }), + onCancel: () => setModalOptions({ isOpen: false }), + }; + + const editLink = `/${row.itemType}/${type}/${row._id}/edit`; + + return ( + + + {row.symbol} + + + {row.shares} + + + {convertToBRLMoney(row.price)} + + + {convertToBRLMoney(row.commission)} + + + {convertStringToDate(row.date)} + + + {row.itemType} + + + {row.portfolioId} + + + {row.brokerId} + + + {convertToBRLMoney(row.shares * row.price + row.commission)} + + + + setModalOptions({ isOpen: true, modalProps }) + } + > + + + + + ); + })} + +
+
+ ); +}; + +export default LotTable; diff --git a/src/components/ModalStateContext.js b/src/components/ModalStateContext.js new file mode 100644 index 0000000..96417de --- /dev/null +++ b/src/components/ModalStateContext.js @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +const ModalStateContext = React.createContext(); + +export default ModalStateContext; diff --git a/src/components/ModalUpdaterContext.js b/src/components/ModalUpdaterContext.js new file mode 100644 index 0000000..bd4afe0 --- /dev/null +++ b/src/components/ModalUpdaterContext.js @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +const ModalUpdaterContext = React.createContext(); + +export default ModalUpdaterContext; diff --git a/src/components/NotFound.js b/src/components/NotFound.js new file mode 100644 index 0000000..3cfd45f --- /dev/null +++ b/src/components/NotFound.js @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { Link } from "react-router-dom"; + +const NotFound = () => ( + +

Oops! That page can’t be found.

+

+ It looks like nothing was found at this location. Maybe try one of the + links in the menu or press back to go to the previous page. +

+ Go to Home +
+); + +export default NotFound; diff --git a/src/components/PieChart.js b/src/components/PieChart.js new file mode 100644 index 0000000..07c55c2 --- /dev/null +++ b/src/components/PieChart.js @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import { Tooltip, PieChart, Pie, ResponsiveContainer, Cell } from "recharts"; + +import { chartColors } from "../chartColors"; +import ChartTooltip from "./ChartTooltip"; + +const WalletPieChart = ({ data, outerRadius, isMoney }) => { + const RADIAN = Math.PI / 180; + const renderCustomizedLabel = ({ + cx, + cy, + midAngle, + innerRadius, + outerRadius, + index, + name, + }) => { + const radius = 25 + innerRadius + (outerRadius - innerRadius); + const x = cx + radius * Math.cos(-midAngle * RADIAN); + const y = cy + radius * Math.sin(-midAngle * RADIAN); + + return ( + cx ? "start" : "end"} + dominantBaseline="central" + > + {name} + + ); + }; + + return ( + + + + {data.map((entry, index) => ( + + ))} + + } isMoney={isMoney} /> + + + ); +}; + +export default WalletPieChart; diff --git a/src/components/TableCellWithLink.js b/src/components/TableCellWithLink.js new file mode 100644 index 0000000..d678dfd --- /dev/null +++ b/src/components/TableCellWithLink.js @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { useHistory } from "react-router-dom"; +import { makeStyles } from "@material-ui/core/styles"; +import { TableCell } from "@material-ui/core"; + +const useStyles = makeStyles((theme) => ({ + rowLink: { + cursor: "pointer", + }, +})); + +const TableCellWithLink = ({ children, link }) => { + const classes = useStyles(); + let history = useHistory(); + return ( + history.push(link)}> + {children} + + ); +}; + +export default TableCellWithLink; diff --git a/src/components/WithConfirmationDialog.js b/src/components/WithConfirmationDialog.js new file mode 100644 index 0000000..8df326f --- /dev/null +++ b/src/components/WithConfirmationDialog.js @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import ConfirmationDialog from "./ConfirmationDialog"; +import ModalStateContext from "./ModalStateContext"; +import ModalUpdaterContext from "./ModalUpdaterContext"; +import useConfirmationDialogState from "./useConfirmationDialogState"; + +const WithConfirmationDialog = ({ children }) => { + const [modalOptions, setModalOptions] = useConfirmationDialogState({ + isOpen: false, + modalProps: {}, + }); + + return ( + + + + {children} + + + ); +}; + +export default WithConfirmationDialog; diff --git a/src/components/useConfirmationDialogState.js b/src/components/useConfirmationDialogState.js new file mode 100644 index 0000000..9032603 --- /dev/null +++ b/src/components/useConfirmationDialogState.js @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import { useState } from "react"; + +const useConfirmationDialogState = (initialState) => { + const [isOpen, setIsOpen] = useState(initialState.isOpen); + const [modalProps, setModalProps] = useState(initialState.modalProps); + const setModalState = ({ isOpen, modalProps = {} }) => { + setIsOpen(isOpen); + setModalProps(modalProps); + }; + return [{ isOpen, modalProps }, setModalState]; +}; + +export default useConfirmationDialogState; diff --git a/src/conf.js b/src/conf.js new file mode 100644 index 0000000..e2c878e --- /dev/null +++ b/src/conf.js @@ -0,0 +1,10 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +export default { + mfinanceUrl: "http://localhost:8889/api/v1", + walletRefreshInterval: 1000 * 60 * 3, // 3 minutes +}; diff --git a/src/convertToBRLFloat.js b/src/convertToBRLFloat.js new file mode 100644 index 0000000..c56d29e --- /dev/null +++ b/src/convertToBRLFloat.js @@ -0,0 +1,10 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +export const convertToBRLFloat = (num) => { + num = parseFloat(num.toFixed(2)); + return num.toLocaleString("pt-br", { minimumFractionDigits: 2 }); +}; diff --git a/src/convertToBRLMoney.js b/src/convertToBRLMoney.js new file mode 100644 index 0000000..b995aec --- /dev/null +++ b/src/convertToBRLMoney.js @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +export const convertToBRLMoney = (num) => { + num = parseFloat(num.toFixed(2)); + return num.toLocaleString("pt-br", { + style: "currency", + currency: "BRL", + }); +}; + +export default convertToBRLMoney; diff --git a/src/convertTypeIdToTitle.js b/src/convertTypeIdToTitle.js new file mode 100644 index 0000000..25233f4 --- /dev/null +++ b/src/convertTypeIdToTitle.js @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +//FIXME: duplicated +const data = { + "certificates-of-deposit": "CDB", + ficfi: "FICFI", + fiis: "FIIs", + stocks: "Ações", + "stocks-funds": "Fundos de ações", + "treasuries-direct": "Tesouro Direto", +}; + +export const convertIdToTitle = (id) => { + return id in data ? data[id] : id; +}; diff --git a/src/dashboard/Allocation.js b/src/dashboard/Allocation.js new file mode 100644 index 0000000..5336424 --- /dev/null +++ b/src/dashboard/Allocation.js @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import PieChart from "../components/PieChart"; +import Title from "./Title"; +import { convertIdToTitle } from "../convertTypeIdToTitle"; + +const Allocation = ({ data, itemType, height, isMoney }) => { + const items = []; + Object.entries(data.items).forEach(([key, value]) => { + if (itemType === value.itemType) { + const total = value.costBasics + value.gain; + items.push({ name: key, value: total }); + } + }); + + return ( + + {convertIdToTitle(itemType)} Allocation +
+ +
+
+ ); +}; + +export default Allocation; diff --git a/src/dashboard/Chart.js b/src/dashboard/Chart.js new file mode 100644 index 0000000..915e743 --- /dev/null +++ b/src/dashboard/Chart.js @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { useTheme } from "@material-ui/core/styles"; +import { + Label, + Line, + LineChart, + ResponsiveContainer, + XAxis, + YAxis, +} from "recharts"; +import Title from "./Title"; + +// Generate Sales Data +function createData(time, amount) { + return { time, amount }; +} + +const data = [ + createData("00:00", 0), + createData("03:00", 300), + createData("06:00", 600), + createData("09:00", 800), + createData("12:00", 1500), + createData("15:00", 2000), + createData("18:00", 2400), + createData("21:00", 2400), + createData("24:00", undefined), +]; + +export default function Chart() { + const theme = useTheme(); + + return ( + + Month + + + + + + + + + + + ); +} diff --git a/src/dashboard/CurrentEquity.js b/src/dashboard/CurrentEquity.js new file mode 100644 index 0000000..59284dc --- /dev/null +++ b/src/dashboard/CurrentEquity.js @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { makeStyles } from "@material-ui/core/styles"; +import { Typography } from "@material-ui/core"; + +import Title from "./Title"; +import { convertToBRLMoney } from "../convertToBRLMoney"; +import { convertToBRLFloat } from "../convertToBRLFloat"; + +const useStyles = makeStyles({ + overallReturn: ({ overallReturn }) => ({ + color: parseFloat(overallReturn, 10) > 0 ? "green" : "red", + flex: 1, + }), +}); + +const CurrentEquity = ({ gain, overallReturn, costBasics }) => { + const currentEquity = convertToBRLMoney(costBasics + gain); + const classes = useStyles({ overallReturn }); + return ( + + Current equity + + {currentEquity} + + + {convertToBRLFloat(overallReturn)}% + + + ); +}; + +export default CurrentEquity; diff --git a/src/dashboard/Dashboard.js b/src/dashboard/Dashboard.js new file mode 100644 index 0000000..27a21b7 --- /dev/null +++ b/src/dashboard/Dashboard.js @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect } from "react"; +import clsx from "clsx"; +import { makeStyles } from "@material-ui/core/styles"; +import { Grid, Paper } from "@material-ui/core"; + +import Chart from "./Chart"; +import conf from "../conf"; +import CurrentEquity from "./CurrentEquity"; +import DashboardItem from "./DashboardItem"; +import Loading from "../components/Loading"; +import MFinanceHttpClient from "../MFinanceHttpClient"; +import StocksSector from "./StocksSector"; +import WalletAllocation from "./WalletAllocation"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(2), + display: "flex", + overflow: "auto", + flexDirection: "column", + }, + fixedHeight: { + height: 240, + }, +})); + +const Dashboard = () => { + const classes = useStyles(); + const fixedHeightPaper = clsx(classes.paper, classes.fixedHeight); + const [rows, setData] = useState({}); + const fetchData = () => { + // FIXME + const payload = { entity: "portfolios", id: "default" }; + MFinanceHttpClient("GET_ONE", payload).then((data) => { + setData(data); + }); + }; + + useEffect(() => { + fetchData(); + const intervalId = setInterval(() => { + console.debug("Updating..."); + fetchData(); + }, conf.walletRefreshInterval); + return () => clearInterval(intervalId); + }, []); + + // FIXME + if (Object.keys(rows).length === 0) { + return ; + } + + return ( + + {/* Chart */} + + + + + + + {/* CurrentEquity */} + + + + + + + {/* Wallet Allocation */} + + + + + + + {/* Stocks Sector */} + + + + + + + + + + + + + + ); +}; + +export default Dashboard; diff --git a/src/dashboard/DashboardItem.js b/src/dashboard/DashboardItem.js new file mode 100644 index 0000000..1a1b2ed --- /dev/null +++ b/src/dashboard/DashboardItem.js @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { Grid, Paper } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; + +import Allocation from "./Allocation"; +import PerformanceChart from "./PerformanceChart"; +import WalletItems from "./WalletItems"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(2), + display: "flex", + overflow: "auto", + flexDirection: "column", + }, + fixedHeight: { + height: 240, + }, +})); + +const DashboardItem = ({ + itemType, + rows, + allocationHeight, + performanceHeight, +}) => { + const classes = useStyles(); + // FIXME + const aHeight = allocationHeight ? allocationHeight : 240; + const pHeight = performanceHeight ? performanceHeight : 240; + const aLg = performanceHeight ? 6 : 4; + const pLg = performanceHeight ? 12 : 8; + + return ( + + + + + + + + + + + + + + + + + + + + ); +}; +export default DashboardItem; diff --git a/src/dashboard/PerformanceChart.js b/src/dashboard/PerformanceChart.js new file mode 100644 index 0000000..c76451b --- /dev/null +++ b/src/dashboard/PerformanceChart.js @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import { + Bar, + BarChart, + CartesianGrid, + Legend, + ReferenceLine, + ResponsiveContainer, + Tooltip, + XAxis, + YAxis, +} from "recharts"; + +import ChartTooltip from "../components/ChartTooltip"; +import Title from "./Title"; +import { chartColors } from "../chartColors"; +import { convertIdToTitle } from "../convertTypeIdToTitle"; + +const Performance = ({ data, itemType, height }) => { + const items = []; + Object.entries(data.items).forEach(([key, value]) => { + if (itemType === value.itemType) { + items.push({ name: key, [key]: value.gain }); + } + }); + + return ( + + {convertIdToTitle(itemType)} Performance +
+ + + + + + } isMoney /> + + + {items.map((entry, index) => ( + + ))} + + +
+
+ ); +}; + +export default Performance; diff --git a/src/dashboard/StocksSector.js b/src/dashboard/StocksSector.js new file mode 100644 index 0000000..5511400 --- /dev/null +++ b/src/dashboard/StocksSector.js @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import PieChart from "../components/PieChart"; +import Title from "./Title"; +import { convertIdToTitle } from "../convertTypeIdToTitle"; + +const StocksSector = ({ data, itemType }) => { + const sector = {}; + Object.entries(data.items).forEach(([key, value]) => { + if (value.itemType !== itemType) { + return; + } + if (value.sector in sector) { + sector[value.sector] += 1; + } else { + sector[value.sector] = 1; + } + }); + + const items = []; + Object.entries(sector).forEach(([key, value]) => { + items.push({ name: key, value: value }); + }); + + return ( + + {convertIdToTitle(itemType)} Sector +
+ +
+
+ ); +}; + +export default StocksSector; diff --git a/src/dashboard/Table.js b/src/dashboard/Table.js new file mode 100644 index 0000000..e352813 --- /dev/null +++ b/src/dashboard/Table.js @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState } from "react"; +import PropTypes from "prop-types"; +import { makeStyles } from "@material-ui/core/styles"; +import { + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TablePagination, + TableRow, + TableSortLabel, + Tooltip, +} from "@material-ui/core"; + +import { convertToBRLFloat } from "../convertToBRLFloat"; +import { convertToBRLMoney } from "../convertToBRLMoney"; + +const descendingComparator = (a, b, orderBy) => { + if (b[orderBy] < a[orderBy]) { + return -1; + } + if (b[orderBy] > a[orderBy]) { + return 1; + } + return 0; +}; + +const getComparator = (order, orderBy) => { + return order === "desc" + ? (a, b) => descendingComparator(a, b, orderBy) + : (a, b) => -descendingComparator(a, b, orderBy); +}; + +const stableSort = (array, comparator) => { + const stabilizedThis = array.map((el, index) => [el, index]); + stabilizedThis.sort((a, b) => { + const order = comparator(a[0], b[0]); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +}; + +// FIXME +const headCells = [ + { id: "symbol", numeric: false, label: "Symbol" }, + { id: "shares", numeric: true, label: "Shares" }, + { id: "costBasics", numeric: true, label: "Cost Basics" }, + { id: "commission", numeric: true, label: "Commission" }, + { id: "averagePrice", numeric: true, label: "Avg Price" }, + { id: "gain", numeric: true, label: "Gain" }, + { id: "change", numeric: true, label: "Change %" }, + { id: "lastPrice", numeric: true, label: "Last Price" }, + { id: "closingPrice", numeric: true, label: "Closing Price" }, + { id: "lastYearLow", numeric: true, label: "52w low" }, + { id: "lastYearHigh", numeric: true, label: "52w high" }, +]; + +const EnhancedTableHead = (props) => { + const { classes, order, orderBy, onRequestSort } = props; + const createSortHandler = (property) => (event) => { + onRequestSort(event, property); + }; + + return ( + + + {headCells.map((headCell) => ( + + + {headCell.label} + {orderBy === headCell.id ? ( + + {order === "desc" ? "sorted descending" : "sorted ascending"} + + ) : null} + + + ))} + + + ); +}; + +EnhancedTableHead.propTypes = { + classes: PropTypes.object.isRequired, + onRequestSort: PropTypes.func.isRequired, + order: PropTypes.oneOf(["asc", "desc"]).isRequired, + orderBy: PropTypes.string.isRequired, + rowCount: PropTypes.number.isRequired, +}; + +const useStyles = makeStyles((theme) => ({ + visuallyHidden: { + border: 0, + clip: "rect(0 0 0 0)", + height: 1, + margin: -1, + overflow: "hidden", + padding: 0, + position: "absolute", + top: 20, + width: 1, + }, + container: {}, +})); + +const GenericRow = ({ children, color, type }) => { + color = color ? color : parseFloat(children, 10) > 0 ? "green" : "red"; + switch (type) { + case "money": + children = convertToBRLMoney(children); + break; + case "float": + children = convertToBRLFloat(children); + break; + default: + } + return ( + + {children} + + ); +}; + +const IntegerRow = ({ children, color }) => ( + {children} +); + +const MoneyRow = ({ children, color }) => ( + + {children} + +); + +const FloatRow = ({ children, color }) => ( + + {children} + +); + +const EnhancedTable = ({ data, itemType, perPage }) => { + const classes = useStyles(); + const [order, setOrder] = useState("asc"); + const [orderBy, setOrderBy] = useState("change"); + const [page, setPage] = useState(0); + const [rowsPerPage, setRowsPerPage] = useState(perPage); + + const handleRequestSort = (event, property) => { + const isAsc = orderBy === property && order === "asc"; + setOrder(isAsc ? "desc" : "asc"); + setOrderBy(property); + }; + + const handleChangePage = (event, newPage) => { + setPage(newPage); + }; + + const handleChangeRowsPerPage = (event) => { + setRowsPerPage(parseInt(event.target.value, 10)); + setPage(0); + }; + + var rows = []; + for (var item in data.items) { + data.items[item].symbol = item; + if (data.items[item].itemType === itemType) { + rows.push(data.items[item]); + } + } + + const emptyRows = + rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage); + + const items = stableSort(rows, getComparator(order, orderBy)) + .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) + .map((row, index) => { + return ( + + + + {row.symbol} + + + {row.shares} + {row.costBasics} + {row.commission} + {row.averagePrice} + {row.gain} + {row.change} + {row.lastPrice} + {row.closingPrice} + {row.lastYearLow} + {row.lastYearHigh} + + ); + }); + + return ( +
+ + + + + {items} + {emptyRows > 0 && ( + + + + )} + +
+
+ +
+ ); +}; + +export default EnhancedTable; diff --git a/src/dashboard/Title.js b/src/dashboard/Title.js new file mode 100644 index 0000000..52b761f --- /dev/null +++ b/src/dashboard/Title.js @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import PropTypes from "prop-types"; +import { Typography } from "@material-ui/core"; + +const Title = (props) => { + return ( + + {props.children} + + ); +}; + +Title.propTypes = { + children: PropTypes.node, +}; + +export default Title; diff --git a/src/dashboard/WalletAllocation.js b/src/dashboard/WalletAllocation.js new file mode 100644 index 0000000..1bc5f30 --- /dev/null +++ b/src/dashboard/WalletAllocation.js @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import PieChart from "../components/PieChart"; +import Title from "./Title"; +import { convertIdToTitle } from "../convertTypeIdToTitle"; + +const WalletAllocation = ({ data }) => { + const sector = {}; + Object.entries(data.items).forEach(([key, value]) => { + if (value.itemType in sector) { + sector[value.itemType] += value.costBasics; + } else { + sector[value.itemType] = value.costBasics; + } + }); + + const items = []; + Object.entries(sector).forEach(([key, value]) => { + items.push({ name: convertIdToTitle(key), value: value }); + }); + + return ( + + Wallet Allocation +
+ +
+
+ ); +}; + +export default WalletAllocation; diff --git a/src/dashboard/WalletItems.js b/src/dashboard/WalletItems.js new file mode 100644 index 0000000..2eb35ab --- /dev/null +++ b/src/dashboard/WalletItems.js @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; + +import Table from "./Table"; +import Title from "./Title"; +import { convertIdToTitle } from "../convertTypeIdToTitle"; + +const WalletItems = ({ data, itemType }) => { + // FIXME + const perPage = itemType === "stocks" ? 20 : 10; + return ( + + {convertIdToTitle(itemType)} items + + + ); +}; + +export default WalletItems; diff --git a/src/index.css b/src/index.css index ec2585e..623321b 100644 --- a/src/index.css +++ b/src/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira + * Licensed under the BSD 3-Clause License + */ + body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', diff --git a/src/index.js b/src/index.js index f5185c1..51ee6f2 100644 --- a/src/index.js +++ b/src/index.js @@ -1,14 +1,20 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; -import * as serviceWorker from './serviceWorker'; +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import ReactDOM from "react-dom"; +import "./index.css"; +import App from "./App"; +import * as serviceWorker from "./serviceWorker"; ReactDOM.render( , - document.getElementById('root') + document.getElementById("root") ); // If you want your app to work offline and load faster, you can change diff --git a/src/logo.svg b/src/logo.svg deleted file mode 100644 index 6b60c10..0000000 --- a/src/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/menuItems.js b/src/menuItems.js new file mode 100644 index 0000000..17e603d --- /dev/null +++ b/src/menuItems.js @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { + ListItem, + ListItemIcon, + ListItemText, + ListSubheader, +} from "@material-ui/core/"; +import { + Assignment as AssignmentIcon, + BarChart as BarChartIcon, + Dashboard as DashboardIcon, + Loyalty as LoyaltyIcon, + ShoppingCart as ShoppingCartIcon, + Store as StoreIcon, + FolderSpecial as FolderSpecialIcon, + AttachMoney as AttachMoneyIcon, + Search as SearchIcon, +} from "@material-ui/icons"; + +import { Link } from "react-router-dom"; + +const ListItemLink = (props) => { + const { icon, primary, to } = props; + const CustomLink = React.useMemo( + () => + React.forwardRef((linkProps, ref) => ( + + )), + [to] + ); + + return ( + + {icon} + + + ); +}; + +export const mainListItems = ( +
+ } primary="Dashboard" to="/" /> + } + primary="Purchases" + to="/purchases" + /> + } primary="Sales" to="/sales" /> + } primary="Brokers" to="/brokers" /> + } + primary="Portfolios" + to="/portfolios" + /> + + + + + + + } + primary="Income tax" + to="/income-tax" + /> + + + + + + +
+); + +export const secondaryListItems = ( +
+ Saved reports + + + + + + + + + + + + + + + + + + +
+); diff --git a/src/portfolios/PortfolioForm.js b/src/portfolios/PortfolioForm.js new file mode 100644 index 0000000..0c7d7f5 --- /dev/null +++ b/src/portfolios/PortfolioForm.js @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React from "react"; +import { Grid, TextField } from "@material-ui/core"; + +import Form from "../components/Form"; + +const PortfolioForm = ({ handleSubmit, handleChange, values }) => { + return ( + + + + + + ); +}; + +export default PortfolioForm; diff --git a/src/portfolios/Portfolios.js b/src/portfolios/Portfolios.js new file mode 100644 index 0000000..2b58ec0 --- /dev/null +++ b/src/portfolios/Portfolios.js @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect, useContext } from "react"; +import { + IconButton, + Paper, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Typography, +} from "@material-ui/core"; +import DeleteIcon from "@material-ui/icons/Delete"; + +import { makeStyles } from "@material-ui/core/styles"; + +import AddButton from "../components/AddButton"; +import EmptyEntity from "../components/EmptyEntity"; +import Loading from "../components/Loading"; +import MFinanceHttpClient from "../MFinanceHttpClient"; +import ModalUpdaterContext from "../components/ModalUpdaterContext"; +import TableCellWithLink from "../components/TableCellWithLink"; +import WithConfirmationDialog from "../components/WithConfirmationDialog"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const PortfoliosAddButton = () => ; + +const PortfoliosTable = ({ rows, handleDeleteItem }) => { + const setModalOptions = useContext(ModalUpdaterContext); + return ( + +
+ + + ID + Name + Actions + + + + {rows.map((row) => { + // FIXME + const modalProps = { + context: row.id, + message: `Are you sure you want to delete "${row.name}"?`, + title: "Delete portfolio", + onConfirm: (_, context) => { + handleDeleteItem(context); + setModalOptions({ isOpen: false }); + }, + onBackdropClick: () => setModalOptions({ isOpen: false }), + onCancel: () => setModalOptions({ isOpen: false }), + }; + + const editLink = `/portfolios/${row.id}/edit`; + + return ( + + {row.id} + + {row.name} + + + + setModalOptions({ isOpen: true, modalProps }) + } + > + + + + + ); + })} + +
+ + ); +}; + +const Data = ({ rows, handleDeleteItem }) => { + if (rows.length === 0) { + return ; + } + return ( + + + + ); +}; + +const Portfolios = () => { + const classes = useStyles(); + const [rows, setData] = useState({}); + const fetchData = () => { + MFinanceHttpClient("GET_ALL", { entity: "portfolios" }).then((data) => { + setData(data); + }); + }; + const handleDeleteItem = (id) => { + MFinanceHttpClient("DELETE", { entity: "portfolios", id: id }).then( + (data) => { + fetchData(); + } + ); + }; + + useEffect(() => { + fetchData(); + }, []); + + // FIXME + if (rows.constructor === Object && Object.keys(rows).length === 0) { + return ; + } + + return ( + + + + Portfolios + + + + + + ); +}; + +export default Portfolios; diff --git a/src/portfolios/PortfoliosAdd.js b/src/portfolios/PortfoliosAdd.js new file mode 100644 index 0000000..c079b09 --- /dev/null +++ b/src/portfolios/PortfoliosAdd.js @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState } from "react"; +import { Paper, Typography } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; + +import MFinanceHttpClient from "../MFinanceHttpClient"; +import PortfolioForm from "./PortfolioForm"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + width: 600, + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const PorfolioAdd = () => { + const classes = useStyles(); + const [values, setValues] = useState({ + name: "", + }); + + const handleChange = (prop) => (event) => { + setValues({ ...values, [prop]: event.target.value }); + }; + + const handleSubmit = (event) => { + event.preventDefault(); + MFinanceHttpClient("CREATE", { + entity: "portfolios", + formData: values, + }).then(() => { + window.location.href = "/portfolios"; + }); + }; + + return ( + + + Add portfolios + + + + ); +}; + +export default PorfolioAdd; diff --git a/src/portfolios/PortfoliosEdit.js b/src/portfolios/PortfoliosEdit.js new file mode 100644 index 0000000..203d991 --- /dev/null +++ b/src/portfolios/PortfoliosEdit.js @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect } from "react"; +import { useParams } from "react-router-dom"; +import { Paper, Typography } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; + +import MFinanceHttpClient from "../MFinanceHttpClient"; +import PortfolioForm from "./PortfolioForm"; +import Loading from "../components/Loading"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + width: 600, + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const PortfolioEdit = () => { + const classes = useStyles(); + const [values, setValues] = useState({}); + const { id } = useParams(); + + const fetchData = () => { + MFinanceHttpClient("GET_ONE", { entity: "portfolios", id: id }) + .then((data) => { + setValues(data); + }) + .catch((err) => console.error(err)); + }; + + useEffect(() => { + if (Object.keys(values).length === 0 && values.constructor === Object) { + fetchData(); + } + }); + + const handleUpdateItem = (event) => { + event.preventDefault(); + MFinanceHttpClient("UPDATE", { entity: "portfolios", formData: values }) + .then((data) => { + window.location.href = "/portfolios"; + }) + .catch((err) => console.error(err)); + }; + + const handleChange = (prop) => (event) => { + setValues({ ...values, [prop]: event.target.value }); + }; + + // FIXME + if (Object.keys(values).length === 0 && values.constructor === Object) { + return ; + } + + return ( + + + Edit portfolio + + + + ); +}; + +export default PortfolioEdit; diff --git a/src/purchases/Purchases.js b/src/purchases/Purchases.js new file mode 100644 index 0000000..933ec4a --- /dev/null +++ b/src/purchases/Purchases.js @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect } from "react"; +import { Paper, Typography } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; + +import AddButton from "../components/AddButton"; +import EmptyEntity from "../components/EmptyEntity"; +import Loading from "../components/Loading"; +import LotTable from "../components/LotTable"; +import MFinanceHttpClient from "../MFinanceHttpClient"; +import WithConfirmationDialog from "../components/WithConfirmationDialog"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const PurchasesAddButton = () => ; + +const Data = ({ rows, handleDeleteItem }) => { + if (rows.length === 0) { + return ; + } + return ( + + + + ); +}; + +const Purchases = () => { + const classes = useStyles(); + const [rows, setData] = useState({}); + const fetchData = () => { + MFinanceHttpClient("GET_ALL", { entity: "purchases" }).then((data) => { + setData(data); + }); + }; + const handleDeleteItem = (id) => { + MFinanceHttpClient("DELETE", { entity: "purchases", id: id }).then( + (data) => { + fetchData(); + } + ); + }; + + useEffect(() => { + fetchData(); + }, []); + + // FIXME + if (Object.keys(rows).length === 0 && rows.constructor === Object) { + return ; + } + + return ( + + + + Purchases + + + + + + ); +}; + +export default Purchases; diff --git a/src/purchases/PurchasesAdd.js b/src/purchases/PurchasesAdd.js new file mode 100644 index 0000000..1507941 --- /dev/null +++ b/src/purchases/PurchasesAdd.js @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState } from "react"; +import { Paper, Typography } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; + +import MFinanceHttpClient from "../MFinanceHttpClient"; +import LotForm from "../components/LotForm"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + width: 600, + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const PurchasesAdd = () => { + const classes = useStyles(); + // FIXME: duplicated + const [values, setValues] = useState({ + brokerId: "", + commission: "", + date: "", + itemType: "", + portfolioId: "", + price: "", + shares: "", + symbol: "", + }); + + const handleChange = (prop) => (event) => { + setValues({ ...values, [prop]: event.target.value }); + }; + + const handleSubmit = (event) => { + event.preventDefault(); + const itemType = values["itemType"]; + MFinanceHttpClient("CREATE", { + entity: `${itemType}/purchases`, + formData: values, + }) + .then(() => { + window.location.href = "/purchases"; + }) + .catch((err) => console.error(err)); + }; + + return ( + + + Add purchases + + + + ); +}; + +export default PurchasesAdd; diff --git a/src/purchases/PurchasesEdit.js b/src/purchases/PurchasesEdit.js new file mode 100644 index 0000000..a7683c3 --- /dev/null +++ b/src/purchases/PurchasesEdit.js @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect } from "react"; +import { Paper, Typography } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; +import { useParams } from "react-router-dom"; + +import MFinanceHttpClient from "../MFinanceHttpClient"; +import LotForm from "../components/LotForm"; +import Loading from "../components/Loading"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + width: 600, + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const PurchasesEdit = () => { + const classes = useStyles(); + const [values, setValues] = useState({}); + const { id, itemType } = useParams(); + const fetchData = () => { + MFinanceHttpClient("GET_ONE", { entity: `${itemType}/purchases`, id: id }) + .then((data) => { + setValues(data); + }) + .catch((err) => console.error(err)); + }; + const handleUpdateItem = (event) => { + event.preventDefault(); + MFinanceHttpClient("UPDATE", { + entity: `${itemType}/purchases`, + formData: values, + }) + .then((data) => { + window.location.href = "/purchases"; + }) + .catch((err) => console.error(err)); + }; + + useEffect(() => { + if (Object.keys(values).length === 0 && values.constructor === Object) { + fetchData(); + } + }); + + const handleChange = (prop) => (event) => { + setValues({ ...values, [prop]: event.target.value }); + }; + + // FIXME + if (Object.keys(values).length === 0 && values.constructor === Object) { + return ; + } + + return ( + + + Edit purchase + + + + ); +}; + +export default PurchasesEdit; diff --git a/src/sales/Sales.js b/src/sales/Sales.js new file mode 100644 index 0000000..559483d --- /dev/null +++ b/src/sales/Sales.js @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect } from "react"; +import { makeStyles } from "@material-ui/core/styles"; +import { Paper, Typography } from "@material-ui/core"; + +import AddButton from "../components/AddButton"; +import EmptyEntity from "../components/EmptyEntity"; +import Loading from "../components/Loading"; +import LotTable from "../components/LotTable"; +import MFinanceHttpClient from "../MFinanceHttpClient"; +import WithConfirmationDialog from "../components/WithConfirmationDialog"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const SalesAddButton = () => ; + +const Data = ({ rows, handleDeleteItem }) => { + if (!rows || rows.length === 0) { + return ; + } + return ( + + + + ); +}; + +const Sales = () => { + const classes = useStyles(); + const [rows, setData] = useState({}); + const fetchData = () => { + MFinanceHttpClient("GET_ALL", { entity: "sales" }) + .then((data) => { + setData(data); + }) + .catch((err) => console.error(err)); + }; + const handleDeleteItem = (id) => { + MFinanceHttpClient("DELETE", { entity: "sales", id: id }) + .then((data) => { + fetchData(); + }) + .catch((err) => console.error(err)); + }; + + useEffect(() => { + fetchData(); + }, []); + + // FIXME + if (rows && Object.keys(rows).length === 0 && rows.constructor === Object) { + return ; + } + + return ( + + + + Sales + + + + + + ); +}; + +export default Sales; diff --git a/src/sales/SalesAdd.js b/src/sales/SalesAdd.js new file mode 100644 index 0000000..164aa4e --- /dev/null +++ b/src/sales/SalesAdd.js @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState } from "react"; +import { Paper, Typography } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; + +import MFinanceHttpClient from "../MFinanceHttpClient"; +import LotForm from "../components/LotForm"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + width: 600, + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const SalesAdd = () => { + const classes = useStyles(); + // FIXME: duplicated + const [values, setValues] = useState({ + brokerId: "", + commission: "", + date: "", + itemType: "", + portfolioId: "", + price: "", + shares: "", + symbol: "", + }); + const handleChange = (prop) => (event) => { + setValues({ ...values, [prop]: event.target.value }); + }; + const handleSubmit = (event) => { + event.preventDefault(); + const itemType = values["itemType"]; + MFinanceHttpClient("CREATE", { + entity: `${itemType}/sales`, + formData: values, + }) + .then(() => { + window.location.href = "/sales"; + }) + .catch((err) => console.error(err)); + }; + + return ( + + + Add sales + + + + ); +}; + +export default SalesAdd; diff --git a/src/sales/SalesEdit.js b/src/sales/SalesEdit.js new file mode 100644 index 0000000..e6db3a9 --- /dev/null +++ b/src/sales/SalesEdit.js @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + +import React, { useState, useEffect } from "react"; +import { Paper, Typography } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; +import { useParams } from "react-router-dom"; + +import MFinanceHttpClient from "../MFinanceHttpClient"; +import LotForm from "../components/LotForm"; +import Loading from "../components/Loading"; + +const useStyles = makeStyles((theme) => ({ + paper: { + padding: theme.spacing(3), + width: 600, + marginLeft: "auto", + marginRight: "auto", + }, +})); + +const SalesEdit = () => { + const classes = useStyles(); + const [values, setValues] = useState({}); + const { id, itemType } = useParams(); + const fetchData = () => { + MFinanceHttpClient("GET_ONE", { entity: `${itemType}/sales`, id: id }) + .then((data) => { + setValues(data); + }) + .catch((err) => console.error(err)); + }; + const handleUpdateItem = (event) => { + event.preventDefault(); + MFinanceHttpClient("UPDATE", { + entity: `${itemType}/sales`, + formData: values, + }) + .then((data) => { + window.location.href = "/sales"; + }) + .catch((err) => console.error(err)); + }; + + useEffect(() => { + if (Object.keys(values).length === 0 && values.constructor === Object) { + fetchData(); + } + }); + + const handleChange = (prop) => (event) => { + setValues({ ...values, [prop]: event.target.value }); + }; + + // FIXME + if (Object.keys(values).length === 0 && values.constructor === Object) { + return ; + } + + return ( + + + Edit sale + + + + ); +}; + +export default SalesEdit; diff --git a/src/serviceWorker.js b/src/serviceWorker.js index b04b771..f906c24 100644 --- a/src/serviceWorker.js +++ b/src/serviceWorker.js @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + // This optional code is used to register a service worker. // register() is not called by default. @@ -11,9 +17,9 @@ // opt-in, read https://bit.ly/CRA-PWA const isLocalhost = Boolean( - window.location.hostname === 'localhost' || + window.location.hostname === "localhost" || // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || + window.location.hostname === "[::1]" || // 127.0.0.0/8 are considered localhost for IPv4. window.location.hostname.match( /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ @@ -21,7 +27,7 @@ const isLocalhost = Boolean( ); export function register(config) { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { + if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) { // The URL constructor is available in all browsers that support SW. const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); if (publicUrl.origin !== window.location.origin) { @@ -31,7 +37,7 @@ export function register(config) { return; } - window.addEventListener('load', () => { + window.addEventListener("load", () => { const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; if (isLocalhost) { @@ -42,8 +48,8 @@ export function register(config) { // service worker/PWA documentation. navigator.serviceWorker.ready.then(() => { console.log( - 'This web app is being served cache-first by a service ' + - 'worker. To learn more, visit https://bit.ly/CRA-PWA' + "This web app is being served cache-first by a service " + + "worker. To learn more, visit https://bit.ly/CRA-PWA" ); }); } else { @@ -57,21 +63,21 @@ export function register(config) { function registerValidSW(swUrl, config) { navigator.serviceWorker .register(swUrl) - .then(registration => { + .then((registration) => { registration.onupdatefound = () => { const installingWorker = registration.installing; if (installingWorker == null) { return; } installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { + if (installingWorker.state === "installed") { if (navigator.serviceWorker.controller) { // At this point, the updated precached content has been fetched, // but the previous service worker will still serve the older // content until all client tabs are closed. console.log( - 'New content is available and will be used when all ' + - 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' + "New content is available and will be used when all " + + "tabs for this page are closed. See https://bit.ly/CRA-PWA." ); // Execute callback @@ -82,7 +88,7 @@ function registerValidSW(swUrl, config) { // At this point, everything has been precached. // It's the perfect time to display a // "Content is cached for offline use." message. - console.log('Content is cached for offline use.'); + console.log("Content is cached for offline use."); // Execute callback if (config && config.onSuccess) { @@ -93,25 +99,25 @@ function registerValidSW(swUrl, config) { }; }; }) - .catch(error => { - console.error('Error during service worker registration:', error); + .catch((error) => { + console.error("Error during service worker registration:", error); }); } function checkValidServiceWorker(swUrl, config) { // Check if the service worker can be found. If it can't reload the page. fetch(swUrl, { - headers: { 'Service-Worker': 'script' }, + headers: { "Service-Worker": "script" }, }) - .then(response => { + .then((response) => { // Ensure service worker exists, and that we really are getting a JS file. - const contentType = response.headers.get('content-type'); + const contentType = response.headers.get("content-type"); if ( response.status === 404 || - (contentType != null && contentType.indexOf('javascript') === -1) + (contentType != null && contentType.indexOf("javascript") === -1) ) { // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { + navigator.serviceWorker.ready.then((registration) => { registration.unregister().then(() => { window.location.reload(); }); @@ -123,18 +129,18 @@ function checkValidServiceWorker(swUrl, config) { }) .catch(() => { console.log( - 'No internet connection found. App is running in offline mode.' + "No internet connection found. App is running in offline mode." ); }); } export function unregister() { - if ('serviceWorker' in navigator) { + if ("serviceWorker" in navigator) { navigator.serviceWorker.ready - .then(registration => { + .then((registration) => { registration.unregister(); }) - .catch(error => { + .catch((error) => { console.error(error.message); }); } diff --git a/src/setupTests.js b/src/setupTests.js index 74b1a27..40c2b55 100644 --- a/src/setupTests.js +++ b/src/setupTests.js @@ -1,5 +1,11 @@ +/* + * Copyright (c) 2020, Marcelo Jorge Vieira (https://github.com/mfinancecombr) + * + * License: BSD 3-Clause + */ + // 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/extend-expect'; +import "@testing-library/jest-dom/extend-expect"; diff --git a/yarn.lock b/yarn.lock index 3eb95d3..2b58f5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -956,7 +956,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.5.1", "@babel/runtime@^7.7.4": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.7.4", "@babel/runtime@^7.8.3": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== @@ -1038,6 +1038,23 @@ resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== +"@date-io/core@1.x", "@date-io/core@^1.3.13": + version "1.3.13" + resolved "https://registry.yarnpkg.com/@date-io/core/-/core-1.3.13.tgz#90c71da493f20204b7a972929cc5c482d078b3fa" + integrity sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA== + +"@date-io/moment@1.x": + version "1.3.13" + resolved "https://registry.yarnpkg.com/@date-io/moment/-/moment-1.3.13.tgz#56c2772bc4f6675fc6970257e6033e7a7c2960f0" + integrity sha512-3kJYusJtQuOIxq6byZlzAHoW/18iExJer9qfRF5DyyzdAk074seTuJfdofjz4RFfTd/Idk8WylOQpWtERqvFuQ== + dependencies: + "@date-io/core" "^1.3.13" + +"@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -1228,6 +1245,110 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" +"@material-ui/core@^4.9.12": + version "4.9.12" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.9.12.tgz#0156d87c8b5db5a8aad992d6883a081a32684e2e" + integrity sha512-JtRm1iNw3PRg+bzULS1uRKhdIJ2jhKO3/5ptO6kTADARsv5KmhzMbM+PYmVS09qm9Yu3ilwka4dYrtjqea53Lw== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/react-transition-group" "^4.3.0" + "@material-ui/styles" "^4.9.10" + "@material-ui/system" "^4.9.10" + "@material-ui/types" "^5.0.1" + "@material-ui/utils" "^4.9.12" + "@types/react-transition-group" "^4.2.0" + clsx "^1.0.4" + hoist-non-react-statics "^3.3.2" + popper.js "^1.16.1-lts" + prop-types "^15.7.2" + react-is "^16.8.0" + react-transition-group "^4.3.0" + +"@material-ui/icons@^4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.9.1.tgz#fdeadf8cb3d89208945b33dbc50c7c616d0bd665" + integrity sha512-GBitL3oBWO0hzBhvA9KxqcowRUsA0qzwKkURyC8nppnC3fw54KPKZ+d4V1Eeg/UnDRSzDaI9nGCdel/eh9AQMg== + dependencies: + "@babel/runtime" "^7.4.4" + +"@material-ui/lab@^4.0.0-alpha.52": + version "4.0.0-alpha.52" + resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.52.tgz#a868d8c772a90db091a6bfc89aed21a0e2c486bf" + integrity sha512-aDoRWA+q3/T2spvvQrxPz8qjtf9l8NhaG9ZISBy9zD3cJ05s3KfEP2nrsoBOBgonlSMFQQzUTnxAwThwsJfllw== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.9.6" + clsx "^1.0.4" + prop-types "^15.7.2" + react-is "^16.8.0" + +"@material-ui/pickers@^3.2.10": + version "3.2.10" + resolved "https://registry.yarnpkg.com/@material-ui/pickers/-/pickers-3.2.10.tgz#19df024895876eb0ec7cd239bbaea595f703f0ae" + integrity sha512-B8G6Obn5S3RCl7hwahkQj9sKUapwXWFjiaz/Bsw1fhYFdNMnDUolRiWQSoKPb1/oKe37Dtfszoywi1Ynbo3y8w== + dependencies: + "@babel/runtime" "^7.6.0" + "@date-io/core" "1.x" + "@types/styled-jsx" "^2.2.8" + clsx "^1.0.2" + react-transition-group "^4.0.0" + rifm "^0.7.0" + +"@material-ui/react-transition-group@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@material-ui/react-transition-group/-/react-transition-group-4.3.0.tgz#92529142addb5cc179dbf42d246c7e3fe4d6104b" + integrity sha512-CwQ0aXrlUynUTY6sh3UvKuvye1o92en20VGAs6TORnSxUYeRmkX8YeTUN3lAkGiBX1z222FxLFO36WWh6q73rQ== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +"@material-ui/styles@^4.9.10": + version "4.9.10" + resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.9.10.tgz#182ccdd0bc8525a459486499bbaebcd92b0db3ab" + integrity sha512-EXIXlqVyFDnjXF6tj72y6ZxiSy+mHtrsCo3Srkm3XUeu3Z01aftDBy7ZSr3TQ02gXHTvDSBvegp3Le6p/tl7eA== + dependencies: + "@babel/runtime" "^7.4.4" + "@emotion/hash" "^0.8.0" + "@material-ui/types" "^5.0.1" + "@material-ui/utils" "^4.9.6" + clsx "^1.0.2" + csstype "^2.5.2" + hoist-non-react-statics "^3.3.2" + jss "^10.0.3" + jss-plugin-camel-case "^10.0.3" + jss-plugin-default-unit "^10.0.3" + jss-plugin-global "^10.0.3" + jss-plugin-nested "^10.0.3" + jss-plugin-props-sort "^10.0.3" + jss-plugin-rule-value-function "^10.0.3" + jss-plugin-vendor-prefixer "^10.0.3" + prop-types "^15.7.2" + +"@material-ui/system@^4.9.10": + version "4.9.10" + resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.9.10.tgz#5de6ec7bea0f222b10b45e5bd5bb8b9a7b938926" + integrity sha512-E+t0baX2TBZk6ALm8twG6objpsxLdMM4MDm1++LMt2m7CetCAEc3aIAfDaprk4+tm5hFT1Cah5dRWk8EeIFQYw== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.9.6" + prop-types "^15.7.2" + +"@material-ui/types@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-5.0.1.tgz#c4954063cdc196eb327ee62c041368b1aebb6d61" + integrity sha512-wURPSY7/3+MAtng3i26g+WKwwNE3HEeqa/trDBR5+zWKmcjO+u9t7Npu/J1r+3dmIa/OeziN9D/18IrBKvKffw== + +"@material-ui/utils@^4.9.12", "@material-ui/utils@^4.9.6": + version "4.9.12" + resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.9.12.tgz#0d639f1c1ed83fffb2ae10c21d15a938795d9e65" + integrity sha512-/0rgZPEOcZq5CFA4+4n6Q6zk7fi8skHhH2Bcra8R3epoJEYy5PL55LuMazPtPH1oKeRausDV/Omz4BbgFsn1HQ== + dependencies: + "@babel/runtime" "^7.4.4" + prop-types "^15.7.2" + react-is "^16.8.0" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -1473,7 +1594,7 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== -"@types/minimatch@*": +"@types/minimatch@*", "@types/minimatch@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== @@ -1505,6 +1626,13 @@ dependencies: "@types/react" "*" +"@types/react-transition-group@^4.2.0": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.2.4.tgz#c7416225987ccdb719262766c1483da8f826838d" + integrity sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA== + dependencies: + "@types/react" "*" + "@types/react@*": version "16.9.34" resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.34.tgz#f7d5e331c468f53affed17a8a4d488cd44ea9349" @@ -1518,6 +1646,13 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/styled-jsx@^2.2.8": + version "2.2.8" + resolved "https://registry.yarnpkg.com/@types/styled-jsx/-/styled-jsx-2.2.8.tgz#b50d13d8a3c34036282d65194554cf186bab7234" + integrity sha512-Yjye9VwMdYeXfS71ihueWRSxrruuXTwKCbzue4+5b2rjnQ//AtyM7myZ1BEhNhBQ/nL/RE7bdToUoLln2miKvg== + dependencies: + "@types/react" "*" + "@types/testing-library__dom@*": version "7.0.2" resolved "https://registry.yarnpkg.com/@types/testing-library__dom/-/testing-library__dom-7.0.2.tgz#2906f8a0dce58b0746c6ab606f786bd06fe6940e" @@ -1980,6 +2115,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" @@ -2011,6 +2151,11 @@ array-union@^1.0.1: 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" @@ -2034,6 +2179,11 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= +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" @@ -2140,6 +2290,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + axobject-query@^2.0.2: version "2.1.2" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" @@ -2295,6 +2452,11 @@ babylon@^6.18.0: resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== +balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -2725,6 +2887,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -2799,6 +2969,11 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +classnames@^2.2.5: + version "2.2.6" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + clean-css@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" @@ -2861,6 +3036,11 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clsx@^1.0.2, clsx@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.0.tgz#62937c6adfea771247c34b54d320fb99624f5702" + integrity sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -2955,6 +3135,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -3091,7 +3276,7 @@ core-js-pure@^3.0.0: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== -core-js@^2.4.0: +core-js@^2.4.0, core-js@^2.6.10: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== @@ -3178,6 +3363,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -3281,6 +3475,14 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" +css-vendor@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" + integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== + dependencies: + "@babel/runtime" "^7.8.3" + is-in-browser "^1.0.2" + css-what@2.1: version "2.1.3" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" @@ -3408,7 +3610,7 @@ cssstyle@^1.0.0, cssstyle@^1.1.1: dependencies: cssom "0.3.x" -csstype@^2.2.0: +csstype@^2.2.0, csstype@^2.5.2, csstype@^2.6.5, csstype@^2.6.7: version "2.6.10" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== @@ -3418,6 +3620,69 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +d3-array@^1.2.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +d3-collection@1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" + integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== + +d3-color@1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" + integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== + +d3-format@1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.4.tgz#356925f28d0fd7c7983bfad593726fce46844030" + integrity sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw== + +d3-interpolate@1, d3-interpolate@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" + integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== + dependencies: + d3-color "1" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +d3-scale@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" + integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== + dependencies: + d3-array "^1.2.0" + d3-collection "1" + d3-format "1" + d3-interpolate "1" + d3-time "1" + d3-time-format "2" + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +d3-time-format@2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.2.3.tgz#0c9a12ee28342b2037e5ea1cf0b9eb4dd75f29cb" + integrity sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA== + dependencies: + d3-time "1" + +d3-time@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" + integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== + d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -3454,6 +3719,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -3473,6 +3745,11 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js-light@^2.4.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.0.tgz#ca7faf504c799326df94b0ab920424fdfc125348" + integrity sha512-b3VJCbd2hwUpeRGG3Toob+CRo8W22xplipNhP3tN7TSVB/cyMX71P1vM2Xjc9H74uV6dS2hDDmo/rHq8L87Upg== + 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" @@ -3662,6 +3939,21 @@ dom-converter@^0.2: dependencies: utila "~0.4" +dom-helpers@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" + integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== + dependencies: + "@babel/runtime" "^7.1.2" + +dom-helpers@^5.0.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.4.tgz#4609680ab5c79a45f2531441f1949b79d6587f4b" + integrity sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^2.6.7" + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -4184,6 +4476,21 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -4452,7 +4759,7 @@ find-cache-dir@^3.2.0: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@4.1.0, find-up@^4.0.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== @@ -4482,6 +4789,13 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-versions@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -4509,6 +4823,13 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + follow-redirects@^1.0.0: version "1.10.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.10.0.tgz#01f5263aee921c6a54fb91667f08f4155ce169eb" @@ -4685,6 +5006,13 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + 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" @@ -4791,6 +5119,11 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= +gud@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== + gzip-size@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" @@ -4908,6 +5241,18 @@ hex-color-regex@^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== +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -4917,6 +5262,13 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + 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" @@ -5076,6 +5428,27 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +husky@^4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" + integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== + dependencies: + chalk "^4.0.0" + ci-info "^2.0.0" + compare-versions "^3.6.0" + cosmiconfig "^6.0.0" + find-versions "^3.2.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^4.2.0" + please-upgrade-node "^3.2.0" + slash "^3.0.0" + which-pm-runs "^1.0.0" + +hyphenate-style-name@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48" + integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ== + iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -5117,6 +5490,11 @@ ignore@^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.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + immer@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" @@ -5472,6 +5850,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-in-browser@^1.0.2, is-in-browser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" + integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -5557,6 +5940,11 @@ is-stream@^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" @@ -5596,6 +5984,11 @@ is-wsl@^2.1.1: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + 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" @@ -6225,6 +6618,75 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +jss-plugin-camel-case@^10.0.3: + version "10.1.1" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.1.1.tgz#8e73ecc4f1d0f8dfe4dd31f6f9f2782588970e78" + integrity sha512-MDIaw8FeD5uFz1seQBKz4pnvDLnj5vIKV5hXSVdMaAVq13xR6SVTVWkIV/keyTs5txxTvzGJ9hXoxgd1WTUlBw== + dependencies: + "@babel/runtime" "^7.3.1" + hyphenate-style-name "^1.0.3" + jss "10.1.1" + +jss-plugin-default-unit@^10.0.3: + version "10.1.1" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.1.1.tgz#2df86016dfe73085eead843f5794e3890e9c5c47" + integrity sha512-UkeVCA/b3QEA4k0nIKS4uWXDCNmV73WLHdh2oDGZZc3GsQtlOCuiH3EkB/qI60v2MiCq356/SYWsDXt21yjwdg== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.1.1" + +jss-plugin-global@^10.0.3: + version "10.1.1" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.1.1.tgz#36b0d6d9facb74dfd99590643708a89260747d14" + integrity sha512-VBG3wRyi3Z8S4kMhm8rZV6caYBegsk+QnQZSVmrWw6GVOT/Z4FA7eyMu5SdkorDlG/HVpHh91oFN56O4R9m2VA== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.1.1" + +jss-plugin-nested@^10.0.3: + version "10.1.1" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.1.1.tgz#5c3de2b8bda344de1ebcef3a4fd30870a29a8a8c" + integrity sha512-ozEu7ZBSVrMYxSDplPX3H82XHNQk2DQEJ9TEyo7OVTPJ1hEieqjDFiOQOxXEj9z3PMqkylnUbvWIZRDKCFYw5Q== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.1.1" + tiny-warning "^1.0.2" + +jss-plugin-props-sort@^10.0.3: + version "10.1.1" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.1.1.tgz#34bddcbfaf9430ec8ccdf92729f03bb10caf1785" + integrity sha512-g/joK3eTDZB4pkqpZB38257yD4LXB0X15jxtZAGbUzcKAVUHPl9Jb47Y7lYmiGsShiV4YmQRqG1p2DHMYoK91g== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.1.1" + +jss-plugin-rule-value-function@^10.0.3: + version "10.1.1" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.1.1.tgz#be00dac6fc394aaddbcef5860b9eca6224d96382" + integrity sha512-ClV1lvJ3laU9la1CUzaDugEcwnpjPTuJ0yGy2YtcU+gG/w9HMInD5vEv7xKAz53Bk4WiJm5uLOElSEshHyhKNw== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.1.1" + +jss-plugin-vendor-prefixer@^10.0.3: + version "10.1.1" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.1.1.tgz#8348b20749f790beebab3b6a8f7075b07c2cfcfd" + integrity sha512-09MZpQ6onQrhaVSF6GHC4iYifQ7+4YC/tAP6D4ZWeZotvCMq1mHLqNKRIaqQ2lkgANjlEot2JnVi1ktu4+L4pw== + dependencies: + "@babel/runtime" "^7.3.1" + css-vendor "^2.0.7" + jss "10.1.1" + +jss@10.1.1, jss@^10.0.3: + version "10.1.1" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.1.1.tgz#450b27d53761af3e500b43130a54cdbe157ea332" + integrity sha512-Xz3qgRUFlxbWk1czCZibUJqhVPObrZHxY3FPsjCXhDld4NOj1BgM14Ir5hVm+Qr6OLqVljjGvoMcCdXNOAbdkQ== + dependencies: + "@babel/runtime" "^7.3.1" + csstype "^2.6.5" + is-in-browser "^1.1.3" + tiny-warning "^1.0.2" + jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" @@ -6408,6 +6870,11 @@ lodash._reinterpolate@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -6433,12 +6900,17 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + 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.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5: +"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@~4.17.4: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -6448,7 +6920,7 @@ loglevel@^1.6.6: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, 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== @@ -6515,6 +6987,11 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +math-expression-evaluator@^1.2.14: + version "1.2.22" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz#c14dcb3d8b4d150e5dcea9c68c8dad80309b0d5e" + integrity sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -6652,6 +7129,15 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= +mini-create-react-context@^0.3.0: + version "0.3.2" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz#79fc598f283dd623da8e088b05db8cddab250189" + integrity sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw== + dependencies: + "@babel/runtime" "^7.4.0" + gud "^1.0.0" + tiny-warning "^1.0.2" + mini-css-extract-plugin@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" @@ -6763,6 +7249,11 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: dependencies: minimist "^1.2.5" +moment@^2.25.3: + version "2.25.3" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.25.3.tgz#252ff41319cf41e47761a1a88cab30edfe9808c0" + integrity sha512-PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -6775,6 +7266,11 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +mri@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.5.tgz#ce21dba2c69f74a9b7cf8a1ec62307e089e223e0" + integrity sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -6803,6 +7299,17 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -6974,6 +7481,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== + dependencies: + path-key "^3.0.0" + nth-check@^1.0.2, nth-check@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -7141,6 +7655,11 @@ open@^7.0.2: is-docker "^2.0.0" is-wsl "^2.1.1" +opencollective-postinstall@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -7211,6 +7730,11 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" @@ -7421,7 +7945,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.1.0: +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== @@ -7436,6 +7960,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -7531,7 +8062,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.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== @@ -7545,6 +8076,13 @@ pkg-up@3.1.0, pkg-up@^3.1.0: dependencies: find-up "^3.0.0" +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -7557,6 +8095,11 @@ pnp-webpack-plugin@1.6.4: dependencies: ts-pnp "^1.1.6" +popper.js@^1.16.1-lts: + version "1.16.1" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== + portfinder@^1.0.25: version "1.0.25" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" @@ -8242,6 +8785,11 @@ prepend-http@^1.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= +prettier@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" + integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== + pretty-bytes@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" @@ -8275,6 +8823,18 @@ pretty-format@^25.1.0: ansi-styles "^4.0.0" react-is "^16.12.0" +pretty-quick@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.1.tgz#417ee605ade98ecc686e72f63b5d28a2c35b43e9" + integrity sha512-y7bJt77XadjUr+P1uKqZxFWLddvj3SKY6EU4BuQtMxmmEFSMpbN132pUWdSG1g1mtUfO0noBvn7wBf0BVeomHg== + dependencies: + chalk "^2.4.2" + execa "^2.1.0" + find-up "^4.1.0" + ignore "^5.1.4" + mri "^1.1.4" + multimatch "^4.0.0" + private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -8315,7 +8875,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.4" -prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.6.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== @@ -8404,6 +8964,11 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -8432,7 +8997,7 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== -raf@^3.4.1: +raf@^3.4.0, raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== @@ -8526,11 +9091,55 @@ react-error-overlay@^6.0.7: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== -react-is@^16.12.0, react-is@^16.8.1, react-is@^16.8.4: +react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4: 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-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-resize-detector@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-2.3.0.tgz#57bad1ae26a28a62a2ddb678ba6ffdf8fa2b599c" + integrity sha512-oCAddEWWeFWYH5FAcHdBYcZjAw9fMzRUK9sWSx6WvSSOPVRxcHd5zTIGy/mOus+AhN/u6T4TMiWxvq79PywnJQ== + dependencies: + lodash.debounce "^4.0.8" + lodash.throttle "^4.1.1" + prop-types "^15.6.0" + resize-observer-polyfill "^1.5.0" + +react-router-dom@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.1.2.tgz#06701b834352f44d37fbb6311f870f84c76b9c18" + integrity sha512-7BPHAaIwWpZS074UKaw1FjVdZBSVWEk8IuDXdB+OkLb8vd/WRQIpA4ag9WQk61aEfQs47wHyjWUoUGGZxpQXew== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.1.2" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.1.2.tgz#6ea51d789cb36a6be1ba5f7c0d48dd9e817d3418" + integrity sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.3.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + react-scripts@3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.1.tgz#f551298b5c71985cc491b9acf3c8e8c0ae3ada0a" @@ -8591,6 +9200,46 @@ react-scripts@3.4.1: optionalDependencies: fsevents "2.1.2" +react-smooth@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/react-smooth/-/react-smooth-1.0.5.tgz#94ae161d7951cdd893ccb7099d031d342cb762ad" + integrity sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w== + dependencies: + lodash "~4.17.4" + prop-types "^15.6.0" + raf "^3.4.0" + react-transition-group "^2.5.0" + +react-transition-group@^2.5.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" + integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== + dependencies: + dom-helpers "^3.4.0" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react-lifecycles-compat "^3.0.4" + +react-transition-group@^4.0.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" + integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react-transition-group@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.3.0.tgz#fea832e386cf8796c58b61874a3319704f5ce683" + integrity sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react@^16.13.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" @@ -8679,6 +9328,30 @@ realpath-native@^1.1.0: dependencies: util.promisify "^1.0.0" +recharts-scale@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/recharts-scale/-/recharts-scale-0.4.3.tgz#040b4f638ed687a530357292ecac880578384b59" + integrity sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA== + dependencies: + decimal.js-light "^2.4.1" + +recharts@^1.8.5: + version "1.8.5" + resolved "https://registry.yarnpkg.com/recharts/-/recharts-1.8.5.tgz#ca94a3395550946334a802e35004ceb2583fdb12" + integrity sha512-tM9mprJbXVEBxjM7zHsIy6Cc41oO/pVYqyAsOHLxlJrbNBuLs0PHB3iys2M+RqCF0//k8nJtZF6X6swSkWY3tg== + dependencies: + classnames "^2.2.5" + core-js "^2.6.10" + d3-interpolate "^1.3.0" + d3-scale "^2.1.0" + d3-shape "^1.2.0" + lodash "^4.17.5" + prop-types "^15.6.0" + react-resize-detector "^2.3.0" + react-smooth "^1.0.5" + recharts-scale "^0.4.2" + reduce-css-calc "^1.3.0" + recursive-readdir@2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" @@ -8694,6 +9367,22 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +reduce-css-calc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY= + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" + integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== + dependencies: + balanced-match "^1.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" @@ -8872,6 +9561,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +resize-observer-polyfill@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -8889,6 +9583,11 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + resolve-url-loader@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz#28931895fa1eab9be0647d3b2958c100ae3c0bf0" @@ -8970,6 +9669,13 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= +rifm@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/rifm/-/rifm-0.7.0.tgz#debe951a9c83549ca6b33e5919f716044c2230be" + integrity sha512-DSOJTWHD67860I5ojetXdEQRIBvF6YcpNe53j0vn1vp9EUb9N80EiZTxgP+FkDKorWC8PZw052kTF4C1GOivCQ== + dependencies: + "@babel/runtime" "^7.3.1" + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -9120,6 +9826,16 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + "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" @@ -9720,6 +10436,11 @@ strip-eof@^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-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -9908,6 +10629,16 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-invariant@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -10248,6 +10979,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -10480,6 +11216,11 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"