From badc343b4f94f9d1ae95fb470ec5f5d7ea7c5698 Mon Sep 17 00:00:00 2001 From: nmolivo <23561238+nmolivo@users.noreply.github.com> Date: Sun, 21 Dec 2025 17:18:08 +0100 Subject: [PATCH 1/9] pre-run --- .github/workflows/sync-resume.yml | 43 +++ .gitignore | 5 +- Readme.txt | 6 - assets/css/style.css | 293 ++++++++++++++++++- assets/img/vb_pic.jpeg | Bin 0 -> 130204 bytes assets/vendor/php-email-form/validate.js | 85 ------ assets/vendor/purecounter/purecounter.js | 8 - forms/Readme.txt | 2 - forms/contact.php | 41 --- index.html | 329 +++++++++++++++++++-- inner-page.html | 133 --------- main.py | 289 ++++++++++++++++++ portfolio-details.html | 175 ----------- pyproject.toml | 10 + uv.lock | 358 +++++++++++++++++++++++ 15 files changed, 1291 insertions(+), 486 deletions(-) create mode 100644 .github/workflows/sync-resume.yml delete mode 100644 Readme.txt create mode 100644 assets/img/vb_pic.jpeg delete mode 100644 assets/vendor/php-email-form/validate.js delete mode 100644 assets/vendor/purecounter/purecounter.js delete mode 100644 forms/Readme.txt delete mode 100644 forms/contact.php delete mode 100644 inner-page.html create mode 100644 main.py delete mode 100644 portfolio-details.html create mode 100644 pyproject.toml create mode 100644 uv.lock diff --git a/.github/workflows/sync-resume.yml b/.github/workflows/sync-resume.yml new file mode 100644 index 0000000..576c36a --- /dev/null +++ b/.github/workflows/sync-resume.yml @@ -0,0 +1,43 @@ +name: Sync Resume from Google Docs + +on: +schedule: + - cron: '0 0 * * 0' # Weekly on Sundays +workflow_dispatch: + +jobs: +sync-resume: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib python-dotenv + + - name: Run resume fetch script + env: + GOOGLE_DOC_ID: ${{ secrets.GOOGLE_DOC_ID }} + GOOGLE_CREDENTIALS: ${{ secrets.GOOGLE_CREDENTIALS }} + run: | + python scripts/fetch_resume.py + + - name: Commit and push changes + run: | + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + git add . + if ! git diff --cached --quiet; then + git commit -m "Update resume from Google Docs" + git push origin HEAD:main + else + echo "No changes to commit" + fi diff --git a/.gitignore b/.gitignore index 0630fcb..5a40568 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,8 @@ __pycache__/ *.py[cod] *$py.class -# C extensions -*.so - +.venv +.env # Distribution / packaging .Python build/ diff --git a/Readme.txt b/Readme.txt deleted file mode 100644 index 6c1d343..0000000 --- a/Readme.txt +++ /dev/null @@ -1,6 +0,0 @@ -Thanks for downloading this template! - -Template Name: iPortfolio -Template URL: https://bootstrapmade.com/iportfolio-bootstrap-portfolio-websites-template/ -Author: BootstrapMade.com -License: https://bootstrapmade.com/license/ diff --git a/assets/css/style.css b/assets/css/style.css index d9522a5..1c50fff 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -948,9 +948,6 @@ section { z-index: 9999; background: #040b14; } -#footer .copyright { - text-align: center; -} #footer .credits { padding-top: 5px; text-align: center; @@ -963,4 +960,294 @@ section { width: auto; padding-right: 20px 15px; } +} + +/*-------------------------------------------------------------- +# Resume Section - One Column Layout +--------------------------------------------------------------*/ +.resume { + padding: 60px 0; + background: #f9f9f9; +} + +.resume-content { + max-width: 900px; + margin: 0 auto; +} + +/* Contact Info Box */ +.contact-info-box { + background: white; + padding: 25px; + border-radius: 5px; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); + margin-bottom: 40px; + border-left: 4px solid #149ddd; +} + +.contact-info-box h4 { + color: #149ddd; + font-weight: 600; + margin-bottom: 15px; + font-size: 1.1rem; +} + +.contact-info-box p { + margin: 8px 0; + color: #555; + display: flex; + align-items: center; +} + +.contact-info-box i { + color: #149ddd; + margin-right: 10px; + font-size: 1.1rem; +} + +/* Resume Sections */ +.resume-section { + margin-bottom: 40px; +} + +.resume-title { + font-size: 1.4rem; + font-weight: 600; + margin-bottom: 25px; + color: #149ddd; + border-bottom: 3px solid #149ddd; + padding-bottom: 12px; + display: flex; + align-items: center; +} + +.resume-title i { + margin-right: 10px; + font-size: 1.3rem; +} + +/* Resume Items */ +.resume-item { + padding: 20px; + background: white; + border-left: 4px solid #149ddd; + margin-bottom: 20px; + border-radius: 0 5px 5px 0; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); + transition: all 0.3s ease; +} + +.resume-item:hover { + box-shadow: 0 4px 15px rgba(20, 157, 221, 0.2); + transform: translateX(5px); +} + +.resume-item h4 { + margin: 0 0 5px 0; + color: #040b14; + font-weight: 600; + font-size: 1.1rem; +} + +.resume-item h5 { + margin: 0 0 8px 0; + font-size: 0.95rem; + color: #149ddd; + font-weight: 600; +} + +.resume-item p { + margin: 0 0 10px 0; + color: #666; + font-size: 0.95rem; +} + +.resume-item p em { + color: #888; + font-style: italic; +} + +.resume-item ul { + padding-left: 20px; + margin: 10px 0; +} + +.resume-item ul li { + margin-bottom: 8px; + color: #555; + font-size: 0.95rem; + line-height: 1.5; +} + +.resume-item strong { + color: #149ddd; + font-weight: 600; +} + +/* Skills Container */ +.skills-container { + background: white; + padding: 25px; + border-radius: 5px; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); +} + +.skill-category { + margin-bottom: 25px; +} + +.skill-category:last-child { + margin-bottom: 0; +} + +.skill-category h5 { + color: #040b14; + font-weight: 600; + margin-bottom: 12px; + font-size: 1rem; + border-bottom: 1px solid #e9ecef; + padding-bottom: 8px; +} + +.skill-tags { + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.badge { + display: inline-block; + background: #f0f7ff; + color: #149ddd; + padding: 6px 12px; + border-radius: 20px; + font-size: 0.85rem; + font-weight: 500; + border: 1px solid #149ddd; + transition: all 0.3s ease; + white-space: nowrap; +} + +.badge:hover { + background: #149ddd; + color: white; + transform: translateY(-2px); + box-shadow: 0 4px 8px rgba(20, 157, 221, 0.3); +} + +/* Certification Badges */ +.cert-list p { + margin: 10px 0; +} + +.badge-cert { + display: inline-block; + background: #f0f7ff; + color: #149ddd; + padding: 8px 14px; + border-radius: 5px; + font-size: 0.95rem; + font-weight: 500; + border: 1px solid #149ddd; + transition: all 0.3s ease; +} + +.badge-cert:hover { + background: #149ddd; + color: white; +} + +/* Awards List */ +.awards-list { + list-style: none; + padding: 0; + margin: 0; +} + +.awards-list li { + padding: 12px 15px; + background: white; + margin-bottom: 10px; + border-left: 4px solid #149ddd; + border-radius: 0 3px 3px 0; + color: #555; + font-size: 0.95rem; + box-shadow: 0 2px 4px rgba(0,0,0,0.05); + transition: all 0.3s ease; +} + +.awards-list li:hover { + box-shadow: 0 4px 12px rgba(20, 157, 221, 0.15); + transform: translateX(3px); +} + +.awards-list li:before { + content: "✓ "; + color: #149ddd; + font-weight: bold; + margin-right: 8px; +} + +/* Download Button */ +.resume-download { + text-align: center; + margin-top: 50px; + padding: 30px; + background: white; + border-radius: 5px; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); +} + +.btn-primary { + display: inline-block; + background: #149ddd; + border: none; + padding: 12px 30px; + font-weight: 600; + border-radius: 5px; + transition: all 0.3s ease; + color: white; + text-decoration: none; + cursor: pointer; + font-size: 1rem; +} + +.btn-primary:hover { + background: #2eafec; + transform: translateY(-2px); + box-shadow: 0 4px 15px rgba(20, 157, 221, 0.3); + color: white; + text-decoration: none; +} + +.btn-primary i { + margin-right: 8px; +} + +/* Responsive Design */ +@media (max-width: 768px) { + .resume-title { + font-size: 1.2rem; + } + + .skill-tags { + gap: 6px; + } + + .badge { + font-size: 0.8rem; + padding: 5px 10px; + } + + .resume-item { + padding: 15px; + } + + .resume-item h4 { + font-size: 1rem; + } + + .contact-info-box { + padding: 15px; + } } \ No newline at end of file diff --git a/assets/img/vb_pic.jpeg b/assets/img/vb_pic.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5054eddb3ba68f2fb16eb8ea42dca5baf95587c9 GIT binary patch literal 130204 zcmbq)c|26#|L|B6MJW|oiiDCiGucI!Y(w@Xqa-_tvCUYLN@ZWN4KwzUJ-cB@5iw>4 zgORm}8B}5h(e_+@KHu&4e4pPx&zbW&_uO;Nec$(a@8{ezzbAgb2k{yk7#VWDd$_fGxJ^OV z{;m06)qjV%*UJ8ioA*x!f%g4t6i9my3W$eI`>(che|JTLK(U-RV}T1uq3XutX6l1w zWkqH5lkjKrEdnS09`x5`2)uXwf8qi30dx3gV&B90-!c!-^Vj`e?Y}2ZpqY(pnVhr{ zUgczrc=0AKI&%%Z5~Oj0X7OM)@>h)~^5iX@UDs1nx(J{>+LKRPe6>dm#7H zKdyh>{V(Mol>dR^$>r1+MuN0LbZ@LFMeub9e%1{a|6n}eCXOhHwL@4m!R<`HtcR1Z zK30|&0`5QmU*NL+gBD$XxWcl>qyJ_2e|BYy0@4xv_ayRKdZwh`(gVb5gifwzVv!z& z{FwU?3H?`AaA~xM^7&;`PyU}B0DpV9_jr5^tjnv&24p@KHoiZjuCeflf>;dyenP^F1L^LQnS+A9%B)F% z(N-QF8Z%8-tcG&0 zT0X7T<^l0~+GdND{5u{j1)l$Y`yX|dKk^AQ9s7^wzqCiY=K_e&5F}Os^s$4KsJUML zvPuxLDG}Z(`y^3mC_etoe1Cb7w`Z&cTOm{|RrgFRlnup);xpA|pUm{I$xWMapZC5s z@9948G(UEmSjms8i<_R=n90o#p=pETg@@LM>@s7X*L!=SP?FfEd$^)dXEIJs7OPw9 zONtexN)#Rw6};sMVpo>AfWVpc`YVpO&o|k>SaGq{>o|;RQV!E3CS+oJ1T)X{azu0f zLEyg@e^3H}05kw*Ujx*M6U0v79r`mC%zdS9kM+D@5bK{IqN0g`<4#S4Ys5!1tb6KR zr_mEE$1E}`FE+V5N}plW*@j4y-dO344nx3DC?^Xx7RCNbF=gs(xd3SKLCPJS#xYPL zxTr|X)BR)f#XhZcWen2x4*%`?HzzhO*rkn5_l!;qHe5ONOzJs{_P^uI`j?pg(ThFI z{!%6u?LFjKE~flFl~cC&IHM6B@KVq_UTKmWuA41L2F zaOHWS^)=LO$J^K5V(+I}20GznMeo?F7J|S-Jv|g&HdBd&v=naM13hf1LRacIdwLWt zZ%f?9Rdd%vlmad};4*n@;Mb!^``?wPVtXZWPYR-P=1l8vj-vLE(`8rC)!wW8Nq@=b zKN!A`s{n9oh4y`630^do-^gMtLvbn_xr*7OTlO7=a%pN;G(>;rN-(0?#G7`@Nq zR(X+^BA5pZ9=5Wy1c6L%U*fuUphWQIhXliV9h|GSB7~P4ctejuCg)$qEOzhJtS7my zy>Q4h8;6*x-_jtPcV|sfMV|kK$v^P<3&*{Z6DuZgzu;f@f7i74B;oB-AE#g?06ivI z$K*hK%=~-Yb2)EgR9bpkx^_92z^p!(x<-@b$L5`@14sYp)ITj{LxZJ}rzwc#1mI==TjCV_ zyA`pV*Cr`IZ&ckvbAufZa5!lY3zz)P3iflZLV3W77ridp_n&8< z1l=A19Wm4m?9#cyf(3!H|AHkJBOn%Y>yLW@`13Rx6ywO+zwl{6Etp`#BCZ!oz|y}Ich)aQ8TxzR2c!Vq`QFX#oyX#=YBXUM+T zZ?>BdnL6=*;I((R%+wlWNjq6G5o+<&22jvn<@mp_)pYvR-^CCZQ?7oI@uoO3Z z4vvpmD)=W=0qf40oWuNa+-p=5&fh+@bJc@-nSZPSffnQDvo_Iwb<9wiyCml6O-X=> zUA%03>_gyJ3fjOcfG}i_=BxrKlXsUiDsP1-PDvMreAZ&L2 z>Mz;2VSU)H0nhv+{ZA2Q1$2IYW)2p&{H*QG(sfpOP0rSOIhlCWS>K#tcF!2Fj;N9r~H_-H?%_j6HxspECqs|UWM4$Xu(@v z*+24e@8hu4;$m5NXW~v1YL&wC_^|=Mrk&twp5-m!XQ=%$!jHI)nFt=a!V!JzCg)z} zFxYP~C~x@i=H83A_9UF(RBSF(Np3zmClvWJZ<1^<@%eUi^dCdNHwFaa%fvafb6GpN zCmJ*qeHiGF=&RKX8m;otRiD1;FZyT5pCaxS#~FcWAXWhZ%m5-CUG1FJ%tA~K%C*^T zv5~u=&&EKlQgPTJDQ>XZ;gIjKk$PbZ?xJ)4YOH!+e{^EpE4_-o4%k^qxuX~dmzm#C zO`E8&P72C179}9+6~huOnJsxAD^|cEp(Ark@Py;HSC8d<#)LmmC`^If$FLi~6l`!ciApQ!&Cgb)((f=7$aQ^LJxSRW~#ig4z4pKFhz-Cvl zPxb^Xm(-8{1Qe}+OQ|?#bF8B1si}F+b%qDR_tS@5l&)=1-wlJ%g;h*j@XynaztoAF zj*cb(){#pl<<3dHN4(=t4@h($J(p6F+V?(aLoQ1_Zw(|0a(g=wo;qeHksoZBb|1peQ#*x>?~C)QItNUB41~+u-FSA2>`(HJH2JEjx4P%I z%|b8T$s^Fdq4BT)6oP;~&zM;~<}(BDR3&+mfRlJEHW%JV=kDyhL8YOQIhRHv{0WfFqReTCKQbe{;M;PRWorgcxh z2uGnCCt|5U^M*qy++op$9spl;Ju0OS8N9ODtyFlv8=%2ohPd?(4y{vvV*uQhwtsg1U3Z8m6kT^-9pw6XG~Lr8Gew?ys0yN#VA_A;G8CR zx2^)EXEO@vbgfkI=H@$u^F-;c^9>7TxNCV%+IWb={>u+mzD^mP~?)!EBfx_#0cFqk}Q<)T#$Kwq>+Zy>-%VZPcA&NYv53a^T zE*g+oVF{))KF5VR17UM2cWx%d@EESrCVOssd*2q!;lLVB^jz8-Y$ZC{b8$-6N)|qv zJz`AoC6ImN(W1WG%tX_gpo=5mi?{~$T&2C@Vm(#pTz{JaqeEU?jbawbz|#>_WxWow zj*Us5$Ca?7(n)v;FScC0VFQcDsq%$c^4565@Q6?H$l}L_8I858_RxKz`^Bz+Kx88= ze;>q{E&O^X62I%8DYG`!E4Y0+IU`@swI-+s#QtOLC8Pe0gIxG~k)NGHsNJgzALI*Z z=~X|?ew}X3>vrr{&I=Q6|A4M}x?(ph2o3V@58MpXqRC+RJ3b)W`<^c~rMSh-FWkA4 zC$STuhFhF-sA6^~HBCiDmab49hv)g15ymx-*nUlCzh0^kt|SNvrS@ys)fq4-2@X8alK zTi1)^2x@VFjznKgHFbMto8+;8OfjcqKoP!Hv;)M6mWEe5<{8J{Gs zh>Y^b!EBUkZXSm~gj}01e#3Ya(g>p~l5bK%{QFmlVK51R0Sl!3sPhQC;FT=CBbP8Q)d>O2xO;$^GCcB8gqe|TJ3^U zwWo_)_B(foDREK~!f@+8fQdZt8102vY2Wgo;@!;J0{bVAj_6e>t#`c4PiWhDf%+2B z(UM_J$Tz0Ctn0@1QB}v|xJ2|J{0fJ&H22 z@l(>%9ak8`9 zHbdL|J`$qJr6vfGE>?243&@5IPRhME4wJTi;Dg4!tFtPcI^>m}GgXlh<&lqRq5a-j z&YW&WIub?3>ht>MD2G27Y!8cCfHDL}bKjqbH%Y=W0&#tc()8*tb z6USn;A@)D0bss(KADMjWEgXEHc>*T99v-ks^+(V6kXKxXYi8$8;K)Ypjmo zl}WQ|^FZn%5A{<(IOIOGEcsGNey3a67@KD_zrTZWK&<`drV z11V87d6X!sh#xl!$Z8vPTR+@0ZIXhq>BF$RNG9S}*6E0Aa(K`!=+kS4T_DrFP^Sk4 z(Keg-^nw)(+;A1J-Ulw{#`!cwYA;dBW9!QKtYz9R#*riXFgqE7`l{omD>)ff3DphK z$q?jMvT0Dlb`IiOq_dF17e?eQ_~cGdpXW+Leq}Pw|1GoP?eflVP`CpdTU!t&&%$(J z{Z~AVLGj`$sgNKyWR)Vt%aTZ6{F+UIT6zQwyM!^yxs?7yviapgSl&eMo%g6BZ!bTQ zk?c+sz$!0#CXu^Py*M^L}!x-|!qXzNHkxePwJ zx=+8Tq0u%Z4t3?GBrEBMV}_i6RFYQ0su%XE^6h-h<(;4Ev>Cf(xfvmYCfc?^tfod} z-N#dp$xIqEBA2lcmEqcn1AW9C)`5JGo4rsuP+m$8*b;jjQ5EDioE;}TQsi*%1hSac z8YzF-&(IO&^J?73XoHT1>92Z!|4PKXC+7`^ePf2Ve%m$aR3R0WEaS?rqfiuw)&#Z2 zhPWnz)tx!f25K!YZae?+um|=l9p`Lko(!=$oPT}lfb%1Cna?5(w^g~Mc`EOxYwqn! zeQx+B!X@|d21&~x1T4yW_!@k*dAdbJQv+!->grH)frl0~>-Cvjz) zzT3zCj8AZ25@$4*U*t3(lNPh5Z@y_Mv6j|HuPL6s+#Yz$$lB0COz+XrV}D&9!BcU{iMi0QGtP^63qHX~><;;~us?lvkI6 z0zJ@ZJAQKM=Zs@xYzF?QaWo?2TnLPj?ws#&f9%xD)Y|m@H~2kF$?^u*)#AvTq-m1hj&eo~KcOt@ho(ivA$+u)K`Jo+zO#fj{d6G6dT8GhCy|f|s2mCq zts{Cy+SvIz%7M|P52}i_Ma%PFUI-Xz?=2M$Cb#ruJ-e#aIMn2@-z@LD;A{w9SR^le zac*kiyTj~cV2Fp6GCE-Q)V;z)0dJqnkX1xDllD1yXEt%*WMG-x$(nqTsyol&cFmC% z$dZoZ#9?au$-w)MmCYZ^AA-_gBGR8>s=?4e#J#I;v)z*2$nMjT5pBzYvZfj@ed3%V zNR)`WDIR!-n(9_>J=)buU0~J6X{Q}Qe7$<%0y=x#!mV+|Rh?E&qq7LQxbL?`60kVt zjJ54^9{9LY#IG9XUwHhlS*%cF6`yuSld50tc z`f!6h5BcGI4lay`EG&L`MV?q&TE>B*0m6c~Bg{HwK3k6~8_{+>3o#g`j zW(_?a-rg4RV2Hl3 zvN+m}7+wD^?xlg&g)-wdn7ARPD@F~mseZgqv&kH>U*cjz;D|qG;>G0?!6)GQ3+~fs zRqtTN=9`|jB+W-wtzYD>lg+|aI&NGZT_z-J{RT;D9xv*1TKb^0M5onY^0rq8RN8l_ z&M>>&#^qFsEZ94bF!v6dgs-m_?*0QMvFd>~l{>OJ>w z?vV(D0&zrxjut#}!Gtd%l-ke?N@PyQac84wRzcpL!?GGO!@+e%BH7b)?@$!=6%R|i6W>oTFGfyh*9Cu1c(qO;_k;hmvrbOH=M z8{A8*pWBC^EYj<4I18*Zzd9jjm7S5aoOiu5tC={e`Bkm0JBx3B_iyip$={wWgBQNOF=naZs(!sT5(pHJEbG!yAS$z~md*i{OrjLnDjl@Cp z;pV1@?}3^P;})eJR>R0OA=Qq>jZIvHZ*X_Ab2QGsEWI=w(jA4@meal^AbJj!uK9KL ztlOWh9boM%U}UJve%k=6Qv=V?7bK_#&HIOqp-#reX&W2g<^Qm~voqp?ZZvHe%WA1Y zI640Y4N}bnp0K!jo-@7Wakc!z_q;YlWP}JZy^q=-*yHU*-$8$)`o2c#P0mmmp3NE0jo8**YGS^2abZGf6pST*6J*&-N3 zgR13i_GLkpCfnc+Ba0O1@!;MJ<>SVs418_T&ZpI=BIb)!$pbPj91(mw;T;a4<&13X2)a#w(=U*>8 zdIW^Im+s>ZFe7Ffkj1s+-ZfOiGU=)G_b?>9W;-)ynh9ScjK4all@z)2{Y|KnGK3bo zz7@EtSke{P+(OB<2$QV2R#1n-SYM8&f+*rPv(6Y2P z?(Z7}A#KdcrV>hM!|J_1CKu$AJ(r)31lbK^a19IL8UobR8o}$qf(}${C<|=-f3E-R&0#>+`+(tG3nyK`cd!CqOc6C`C`lg1^u%) z><45l)^unPti;3JE!kgwPT~bXx1(6yn{iy{`95wV2Fjf3a95PK8m8>i;-v_iFSMKv z0t*B{>DlJi!;7<=Pfne}$6oWvAcpu55zCa?OVb^W*&LL`$B>@1HI8mxM%K$f6~V1KF!6Y?Yll| zp9z#izsy){vQlQFvC0;m^dhkeHNH`aHiRgyYu*#bdOI;wX9%N2rxQL7Hkk~kUGGIn zq%sBVK4bQ*w4=2xb7xg$omg*WO8@e_CcEXhnSG9zVqZ;KYG>YVFl{)@yWKXJ|06OA zL0isXtd6~uHw*5}@lNnC(`FSEU=;+nwkzzH7C74_AXapp9V`|N29`~L_*6lG`Lk%h z(%2z8F%g~(h+X%VaGXkeq%$m1#3K_U{GE0~nYh(?J7PIdEG4!Fmfe}ifBJgz&?0qk zaf@cZKG#Al%L=flB%5x{IYIjT)?}5ch3iv>i9LcIwhGb_H{frnTFw}s)uk;w`6@AY zjOgJQ1P^lB^2#hlSyXJHD-N1_XN`o$Vm_fkdpCIu*Rs z=3!MPQ>K*LTtR7IFpq}7-sNchU%I#Mk`^h#WV!Q5j4LS zVQ^U*w~oAUIhQS=9ov&F$tobB9W9XE^9l=mlZz1qahwV*o=?YyCOw^O4x0|w_#SyW zXL&&_j66ge`eYSvUreAr7}(a>T`Gm`Glo!j4xv>yVNR1`Z!{HW$^6L_hF^PJ9}GOe z=xBVs)OJBA>x!;DSB68=q`u7(()rHLx^z;f9fdFoqhZyZfu+t=jk?mp;&9^I3onK_ zZ5*)3@!&kcwNw0Nf*z6lm~=Y}o0`zGpUITIGQIZCWN|BgnP!?=#66#^+RK8Dq{_dAx~Jr7E|iG^!XtP*16V4u#sZs^ ztO8GNMzcIjV38;j)2oXH_O?nuELu`^3)QyaG{=Cgoem|?PmF)T;ulKa6ls%@=e;w% z)3&DC*-9hV5f((Im9^g;w{KFC7by0mD*A~auan)-F zNZVnh^a!*S?+&EqF|lNJ*25X55^&W(B;wuX#-`IaZcc0WbL>{|=h(p=j-55M>B`_2 zF9X2==LtFoZ^xjSC!C8oriK-78t^Q$*l0UHU2_Y~O zZBsC&h~Pq^VPPv@Cu))+pE}+QMW9ldIJZg#$*vSl!gT3wckEvwcLg6yxvNAvGk?-w;ZuiL@nrDV1An%!(-+oN)p4Rv{;;iP=d|e(`5@W8f zVDgSw!K>aR-MJG)KCK0dOqL(_c`*2CvG4lG1-148;srGrxaHw&XtC!h_4mP>h}mRk z`-tt~0K!KupA4_eEHw{=J@XNIEwgns+Zh_-Lql3P{dC$g$o7V-^CyZp{S^7>RhB~w z2_WcN=?Xx7p9ZxnwuLQYzF7wa_>l`8KRC_KC9nD9-$(eNLxKaDwCjz#fdG*}I&NN= zSZ!nAo9d7v8|c=N0ucMzDgjB5SgRW+i-MbQ=hdcpnUK3o_c_Ul;I2NZNMzKF(8t3R z#M;7V5&p8W)DldRy~{{r_Zw!!IpzhD<#r7(Q=TZXnV&+ok`roZnE3j$UHDqWdb7sQ zLs&+A2GlmaWY~HMH$F|()TudYi$wfHc+K^%)cNGje`3fX2AfG+^zKScFjXYU6j%Rw zVZ}bE`wLojemY)N^*nZ#nz*u1d%s2`Y$ee{F!tDYmG=6{)Th}=nUg{D5Aw%0HfA-Q z&0Z=yZ1^bGIL<0}B2#OEpI2s8V(O+|CaV)mW^N(l9}GD=D&p|Xi%Dx&AH2+Z&h3tO z6ZA0jf*foBx7S!z(@$1esM7<5XIIGc7H>b8jr!AA3y_g>X(y_7< zS{pwu`2LlVq(6j*qjWf`}1^wd9NAIlTtqoye!<<4SfIU{gm29$6;w4bBp$%I3LP)r8Ictu78$Uj!$W^xDD;@swQ4Vux}y^ z{YyXZvsPZEXxlxH8eNoZMKPJCxvGR($Bm@GA-$#G`P9 zT^&+IAJnV9WTc}ZBd!xQrRZQ!{RZ7<9#E4YzuLwNgraGoCPtQLDbA5**>KtA zzG25MV_^B3xuZ9_5{C2A#J~HT;acnOpHC$WQ}Qq6c6YaA5h*fFi>t}k8wgB|8MSF@ z!vn_8!QrZ1;%aH_60X9A%6vxA|Gt{Q}@W;k_ z_){KN6&(#)rzV54I4MfdfQe2h!h2P)fl77?==3)sEzfC9ukyI|$0hx`X_dIiTxSMs z`Vr>Hlzi{^OxN_>&Isp(@VZXqTGbjIk+eVSj#Z72>pjinVj6scqaI)==q4NRU6uny z3q;lAtt`$4TiVy$@+p?AxnjSWoi*z0-0Vk~Nmm_LOMj_srtbA&H|mDgCsUA6Nw&!=SNbFaSQF$vD4 z&5ca;FgI1de_o<$tztIt$@$An)gQn7Yv0p59hp0A>JenS{*{d%`S9MwSP63;NW)Pk(!Z&*m+kO$shxHZBq`) z(Q=8ScRpmCKgMF^A|?*XaFOlT(QDFHJ>|F`@;P-L4!H&FC8}9-)f-3#ZkmYW*E%Wq8BN6uwBrg+8N z+AnsyF3C8}s4xK}AXabi)bfP>iEMGbD<#~nrbn*bUW55Wrq@&a}gmVruo@!%GXFtUZ_&w2*~YZ=2O38DT)_iqI%DC&tHGe zs+Y*3-5>PED@I9no(Q+(X|#Ux$k58OCHF$t_74*kZ2+KGQfa32iR-sbVy&!?gD-lP zdonL_hfW#JDao`SSv2=J^`uc0SuV_(~P}1ASDVuIh`Vy|b#KpuEA;u- zJ_?2`XUi}Ixnb$oC!V}*ysS>?+8M6gn|p#O(!;gSm#gG;id81hwdwlRQwhwKxqRQ% zP(eLJRP+9HBkyaEkTtDTqX6hZ!ZISN7gsAkwuoEL_9z99GY68;3gg$w1~+%BRW;_| zy$YY_nZX#}@E?rp@uX(@()0|GFEa&khtc4eB|BrBx% zq*ZAKuj0OxyQe8hmnasB3XhyEfcy4)4?=a7^mJMC6tPFt`jv*WQ^j@l3-u*4bnmOi zU&1@JS5>v132Pfy#`i1DR&}KJa~B`I?XY z2;KdVbOMw;?uetSNfGGT(@e=WcvJrV*$p$J)f`0P(jex3E>$<*tR`VK`OvTPWdUwH zJ@$PimMi*z)3XyntGSi>Sh%qqA&kW>Sm`^5pq!DiPfbLCz*6PK$Wp|;&{&_razNZI zkc&n1MMBMluigH8N4md+&CcRp@=q{6eZa4Y00BC*sn5tcG>6~u$;=Ywm!4E z$lO%pgd`vLi&cX``QcWkoL1L@z9R83)eURgpy|5C4}^4ea+$;G#!qv(nxclvz}|=F z%lYg)YAdPsJ2op{iTV$V%^dM``c$r0O*LX$#@ybh`W8l~^6jNCiwe_>KsTWx5m8>t zl#1x`n+?rZCM2|N7R&FxO5wQ#J?rgKZaI`EZgf(@FeVLp6mzwDi7=Q0j?NfurJ6RO zUPv}EBBSo);aB4_r$?)Ff{(%Uja$RN$;>$gSNp4`r(g=+@(wOdk(3 zzT#qymh^52K~uy;-YEzs+yJc~fvF&S8Y<9f)bg8J$ewxFSQz~ z^`B9m#X7V!(U5{&S{D!wI&K;@|#-xv;p2dD%E z)*SL|i-+L9$ekJ+`4akOR;Qe0X&s5VJ;B}-V9=5okHt+l9oP31QK{P>(?aVrp{Qj= zDvrP|;z>@Ix*f)g;sZZ;VK(VsDxE%DuhO_&v@^X@tBx9B;C!LB$SdJtEtD*BMP87f zVl>y=jye9h@f#T{0c9ym4Q+wFL!$dB3EPR!g0dVMY@DH{;14Abb&zJv-_8Fs%KnF2b&z~ zOB>D%ADGmsbgEk&Tz4;1*Dei)@YmQu3Q*e}Qnj2Lkr;;v?8zzb*rn3Sc)Nb;TiF+r zG?-G;NYQ)R%B!#nM_6xsu=2qn#!r|F0qw$Nlk%W%3y)s~!Szi5?cn!Q8n^ADdj&0+ z3#w?Wx%QD(unpBBUhdio)ZpZgb?!XuIPp$-#ztAZz?L19t(`ErMR)Z0mmZE+T= z=C`~<39k~*_<9YzV)b0zQVDN*gelkZTg^lQE1w>Ud_#H_bJ`X+*jhZm{J4HFA?T)! z7rJ-KrHX3S>g$8B-Qlz~{6wVlqB!=Y4H&Wd#=Lu4A=Z4RTV*WHE4z9aeU1Az>B-v{ znHP;YdXEktbdWME8D5f0=UivdX`~TvI|~bJju*tyZ5T$6RC!epmc85Q90E46k-Pr9 zsm82E552S9aGk6_vS3)XMU3c0XOwu!j;0RJ5MP?v7QDzj5dBhlXd{b*CWL)1cOD5@ znuMi!7!#TE7mDQ%(j(44FR$`u5)2xzB!qo$4MxkI!#%!d=CW0)I zPbCC-dp!)242x_m&XuqVNi?cQ4|jpZo*V@ZdSs>{end_?jNU(QWjXVPC^D^;i6sgy zUU84&9}0szfS1b4WSx;0K7M+ms!V`-_$iM2_yvx`l*Y})%G_2l^|%U6Asb2@yTUEk z1dV(vf_04F=rY%2#%g9|J4y{c=AU$^p;}|kB<+S=QA0aLR$|CTE<)?^iF)fttFe8d z<+KndPpmI~bSPaz+kV;R1Pp2{syXY23nll*KdmbR4gJ(Q>_~IVTUD#-p>%JlxVJhg zHB%0tz$;5DS;GhBWQq%FLQ4)4nK-!znOc>_2|$=JJBwIuCup_Y^%EPq&tUo z$*2^E>bGsnN$GaWJ5il=W+t&ir|c?ewRsfMRF>>)NSiJvZBwHfKIL@Br|iz1r`0+b zh)Dx9aK!GVa#>)dO(z^K+4M-Tq&S&Ol`NWHO01iOx!MT$C1Kk>bmW3Ji9~kzCLANv zgdWfS)CO@F?jIvobz2KcYr+^)_Sua&W)%%c&#)t%0#mJ}?W8eW33EqXWiwgLiFjPj zkx#87S($?Cy_D!KW#{f=BTvp{(1JuO; z+x;=y++KSso~)$n@N`0zSdu6qBrqJDqEe8#53d_aHi$c7i6eG(!DRI5d z^UGO3E0(vMhA+5o9(WK>T4O9dYeGxrAl*tjVA3sve09@GW|1mpid8{3b@AmP@QU42 zheyJM7M1zYs}#ZrRr}nA@JyBq`V={5**_!Asqx)DX(t%Q=&0#PIozgM=&FgCPriPe z+gO%CorLVoJL4zrGkgq5V;3@+=v%70t;?20jfvuvx%A?&(X@dxJkON+7uMeQcDZ?F zR(!c+Zjx04NoH{(JxxFw49`%6d<0}?@>YvXp%#mQyTT_YK|+C_$KFuUp{p6pk4t9; zG7KC0YcTvRi$r*$hmmF7Cfpl&o#E@bP61B07!cHtmLKzC7gW-Oab43}NsuZOkbA0_ z*fa3S5q?ElJ9>C2(e|QmeSL0&__coTlj^tY9!^S>z&@1Rz3caIll)|c4z4P`F z5Gq!sWcMW=Fv;_a;nRsCX=Xv@cW0q_+w$s^s7N~;lo&ROChM?wJ~po25Po!2g6}LM zQlq(KJY?)_xBA#>8DQjAq9rOE^#ZomhsGpP3ymE=oqjs@ zkm3dhQqzQ;J<6A$$F5ts9jweBfr7?0Oxsl$%}a5ulQ(o;Rr!}mHU|ybXQaMb_<5QP zHJq%;Q_cu-p`b&W+X8QeuoYh%#%NlGN!iJ%i5^&9Tv1+KT0Tu_QtjclYKpWD7fTu(7JKmxaY~?pqzzB{PD~g2LIDF&D ziHc_JW&qCCo8xd%P(%nM%#uAkG$tf)uoNTAR;0}XuzbS*;R*n{NeDPERK^? zQ$k6YB(2gF{WSp+rApsM-}V;WSnihI!z_zBrIM<&5m-DpTWVj)dmY09>+I?J(tStc z&p=POl)4$z%5qHJSLILq^sO?Tt8xUK6;cCJCKpGnqsMX(v$ap+||e1%Ci za!$v-*f-scJIbr-kxHKHRt8Q5q9%QuW==ZvTNS=6>z;#`=i&l%PWm5D_1)NLB{5qm z5QXc^A1`m%KcxueAAw*Vm@4;$eWCZ2Ii!s@vK^B>FU~LxZjT zD4BO=Nbb=u=nv2d8e|hv76&H8dem#Ip8|RJQfsQ4>@}{0@78;sGs1~-_jjxZ-!5j6 zzLK@?fta(4@>ytCQ*HxrwxC4uk%3j4!X;9Hi!#q8$vB z)2-SA#wh9exY4eXsZHu(sfns4ZRS+b&w4HHp7L#-o(+Ww-0^aeM=PJJ@aza!ZK$(F zb|c2@74L?uoAhvmdSy5+R>7bIM_Qqy`!?Ao4T{<4sn28Gr=0a^hYzs8MEmpJUJl*Z z$o--Enywd1S)?1(Mc$L8Gy_SS_)Vg#@lSuLv2pKntvicWm;}y9;h$24jm}@E8w1sd zUQc$E-)?mE8B;~v=A1%Mv-8`eci1|#CA-DLwWq*Qt8V#oCnqTJfKAD&FPRMubAGWg zq1dMV?3q5-lgah^r>>cgWcRrf#R`eq(MGo8($8}ZTQUqD?sL0SZ+E7#cd5Xd&&_fp z@}Ala&DfAlf^HcQ(^I4THc75`L_8iVt4^|BQ>Qpr6I~CCc-xrD1K(~@ua_Ds>D?v6 z&$AvvkLxE7Ga@71*Jp$CW}oEhX~~iF8R<%GrWZ_^;MVfs*7}T^ypo{X%?6Tba!KLJ z>pzoDMtuG{r9KAX!QR~!cJ9PxNY)kE@K&E3D^hxAmz;c$BQ)H##;+pBXXrgM^pPT-E7a2v8{;cEYFFB}9u1`pUGoftC z1-I9@LLKO$`dkGcWpXNG_kB#9J?72eQ4LP-V-pHR6DWXS+L>QA*r`4Jl2CuG;RV}0 z_@TsGPfMO{R3@ZSmXH`<{2*dx6CSMFcPDtstEjxF!(W{;elr)xck6(7R_)WUXwt+P zCRx|m3>Hi%>UCO0v7$}xTb?bky>#ltyIG_+RM#s9snNbBVxAj*&YP?8EUSdA^VODl z51Sfw4@VYR;2Z1OaR(F`O&B94MIVX$p_SuPtd+O;r0ki9d2CX5Mm7T2qCj7WL(MX( zRy#N7<5H%yFgjux*iFF>e^^-F$(b0I4PpeBO z>oZ-2Slo=0cPPIH{0*G-AOGtH0ekcyG0@?cRglQ-xybG5fMXQsSz!C*um*#?m%nzg zu=DEtm9Gj1^zmu~4*-eX3c5uN*q)03#=J<;B`K0GGe4S3vmFM2%-#D9`VQNkGx{@7 z;Wdc2n_Htm7xXtEJ}CGr5ln$XeuI94fNSVnWR*fUS!2CVK$lzL76075kIFX&sQhb} zJN8hTyZ5Jrf`_yLynw%fcLOI({-Ct=wVPYvul$H5Kns93fWh8Ry|0$H z5kkFLz_WL^2Mox6b^T|Fr$E6e0J;HvQ{9}RF`R$Ek~O+{G=6SR?qS7#>^JBw`$eF` zymg^Q$z>}(_qK?N5_#kMe}!5l^&7ON4h3enO(E<7lvyxSOyXR_w=R%18VKA9U2O2^ zJqo}19u-9u*_^Ar0Za7}U5!WZ$+a`4c&T%dzd^qkhQk z*YI6?Bvt6qIzT@gb7m+OPLAB3GUo=6 z5bZWs=)OFM*sCujsjs!Z2IzP!Qh9bG;}3!G3taLVAlA5dD}9%3Y;3Rl%eSp+s(wCx z1XlOvMY!z&in%glE|N(hYy3ra(HL%pU*EqpzX$2)igKum_@9&a19}t(173rmoKp31 zMGU`euRbR~>@%Im!vUwzZY}1%PpT*|(}7|1uLW}C7Db0!Ax32(S$zQ@$)2QvWa_yN zLxJf6q(95218|)Gguzr4EswFC|MN|7nxES>qrOqZs4%GciqWesk>`@e2s{gWx)Ha+ z24RmjHGp)0K)_sMSj;0|baShdx%z&Ce*OkkRP?(heXm4$pQ|xxG8z+c;7{|rbiy#; zu*&OUqdt*Ps|UD%Pbi|o4r%qVgjzxGT-m|H=o@A9v2^JeG7_onj@P#Io}K4Bep z>b-9T=@nZ=beGPG=M8(zTCG9D^6Gwrc>J z{SEqZm?cStR!{JOg8zs=cu(@+T>dp-^thZb8jm?y_`!~asIHI+T}!!TkEraU@# zJ?k%2)t{_>lCBxVxI2Fc9AjS|^R2oq{*P+@V31{s%m*v_G#CkhLW`=pC~OgA>c9U5 z=of>e5F@aV^!Cc*!qfFF;Ar`jM_pP^)Ej6?W|a8b|{KH=i1!;X@MJD&-E=i z?r^8d0>J&wB#|4xK@m^(IJd{VL+T`jK3>p~3DMw8w}*mWr3Y*1pI1y@uL~K~=Smip zdt<$%WAD){L;?Nz{wYPnkpBHk+v=D4@3b*iO=)`80rNEt0GU0L!?$N0(;h312?v9x z+>Tjsv(HlSx^?)6&CmhYnEoyXBF5;D|;kj2VQn#)igX^l><4jwUHM+ZsHf$dr z8Qi`ILNZ?8%h~7_2R79cJ>!w0x#!-4SPrOvO6pLVnp6C43ZV)|G~c949yb*gq*t`` za@{ZHV4K1@h+X4NVi8QuVvFbF?cPj|?>Ka~_rAA{{)|H@C!~pbuTNg3Uc9FDeV_m4 z)V3X38OB0DZ0<@JWLP?9Im%$$T2 z7LbJryYs$?jV^A$Do3dP9Ow7KS_Fy5fYV|+Q+m%f4A3fAJ(apei7#ea3=Y1%@Bra% zaWjEX)$?gXWh4J(%Kf+3olL-8hrtbmubcZ-Hj*_qpe|YO5KXaXi;^|3c$(vu!8aJ( zezj@)za_k7S6CHa?Y`1!Wo)(?!7h7m6K6ls*|wu8|H9p+&FgY^;#zyeiyKidM!Lx7 zuJRmHbg389JBsRgx~+G*vk=$*ne@CwK6@=G@zuD^8Bk?4X_n9Pe(bU3= zjrNS%TcJidTf$mghY&7gzef*9V0fk$6Y{XC(~r*KP1L3sZVr=_-bg5uHnx6hc|+3e)dd7n$6RuIvf5E zS#KHDR`Y&=Cb(;Gcc-|N;O;JkQoOi(ad($eq)^<8y9al7ic4{K=*|24-*vy-B&3+rMfOD%w8PIq=Z2d}YJQ4@|LbRetK8c1 z+>Yo*-y=f5iRy8i!CMCPouk+!T;6uZTzpIwE224CYYhFMf5TntjXpSozEswO$eMUQ zXAQy*@VtEfC|B3&7fjO>CDj=_hhbhyM74Nhx}tz%q#8;g(eOaM#oWJT?XXf@rH&%( z@e%O@1}}VE>zw(m^6E}7$0&3Rpah_Um99-(=ER$&_UXY?PBMhXXsMWsSzd`~vntyB z+pc2*d5Ay!a|d81c;96*2!)kM9HL0@27PA09V~1jPn9*8G@Fr>0FD6@_%I)emNos* z&1X2);1TaIdF4{I5hvDP%{?7I=6q4oac?nyY;^^rCz1X67}=aYu5h_xpTSmkdmRIS zfS;SE-d`@j{{Sg+XjcgwDdVv*n2`XU>#4;<+CUrP8GunmT6iCxM!mYL-%tx}BPx|> z*MX4Zm-#`>MefT?bUzIk)G+rDbUsCS5^-MqdMZ((E&-N7n*lEpzfQC@Hs9Y7+SDGTikmQh8Zxw5Rd zARa_vU`+Nl%I$hqOI;$uW~o*8%rP5COCKLonrLhHL0+quN@B@D5pgCvl!;4OpnjLO zhl(;-0)9^#>;;#);_*PElw1)IB%xRIZG#b&tOo5>H_*P7BmkTTPYE0!`B@@iX$YOm z3!vWHU_w-mUKzN;QIMp(AWs7219>`iMCA-bfbiC65s5Dap8PTm^KIeR*_VAntlyD; zsd-L0ZiWGYgCDC_*3}t)0S#CnifB#%4%q&LZ&`K~3GPk+r+R7nyi<@hS}~P9c;J+0 z`=rAKwS$G~dq;y8I|ssOyhBc$POf%M9z2>}MSi&rTL6R!R1Scy=r}RKALa%qzYA+2 zGlocrl>5K|V8Fc!98L-v$g-Jh1=QYtwF}DM!ByXR09cCI7bPV0N*sV)<_j)Qh%jW$ zw*o*p0KSO>Uq{>2hX`RehNq&87ro&g_VnH|rXiOlR z`DgFT9es#e#FelyaxMV`&UW~#7`R>;I^|l=U};c~@K7qjaVlo;JMb7xa3Dd|Iv>6P zP;qQ*1&#_dhrY_S`jJ7rLEY!t5h6jW(F1PX7=~#2 z>OX0wrDX4T_-qHbCyv7j?(A%y&zY<;VJPo7RBxmzP14V!?V4t~{sS~==xmT_M}B)d zh(`U}fo;@fBLDIDLx*f%rZH@KyJx&9+moWgH$vURa^L6)R!7xZ?illW(oVnI3)ndY1rkcv~v=z8)a-1Yeg ziPkyg*Bqs#7HidX&(I}9I*F&|e2b~#&f13HuCFT3&Z5SL1D2@@BY9E_dYg)oyzn3y zvs5MXie(7Utb;xaK23X}4EVO$#-t7?pvk`{&3H8Va%w2!Y#zwX5K?aA{SN@M*Y_%N zl`l-^A)~@;SDD=$;K=J|X6FSd!qTsZp5lvlDIs=y{d@jZXW&+~9ce%(@^7}*a z?}&{(RLXch$tZ`q(~+h&GUCr$vTs!J>$;9%_>Cni{B%JExNs41rMJ5>y>MBdG%&HL z-LDrcEw-qKXJ%mduwS43*NXBfCljxgyl-~u&`wDH0rseExia>sKSo|AoLDDQJCUc< z|H?2qBzpS(OFP8f)540ca~ri|^F#ifrQsC>VlMZZ7Ir&EG4B6}l$o$~s__qy$Ymsu zqYZagi}qous<8#_Zs*rRj6iV_^C>Gk&Ce#JAnRWl5zmo6>)5|K?nNRA*trr2Dvci3 zuvNk9q#ZJK*A}&0TTRmgwm7gu6XXmAI9B@NR}4f?0kKQetFQoCOH;>2z7cILfBENq z-=M82cp8q7;LR!W*ei`YIV0Sqht+?8h6AKyga>Zf1%5l7TWL|AH$l!56S}2j)=++b zcww=r3(oW6m+}}p&C>_>)!+X=x&}*k`n^m60>wH1eP3@#Z>AhSbUpX{hkKzPSj_ry zC?@;gPZdgq-28#Uq9dAMG}ozf9w@*BU$0%1E4WTHlKI`{1T*+(-9m2#_d*Dv;O-w_ z42r_WY|%KUSUCy+nx*moA$`s%G;RnQuI4!RlrSkL8pnU^3Pf|fhG$L{{P1>&B}wtV z-MV67DXGlq*bQCPfp4$=_pE<_jw#{S>oLX<#S1i!A$9>MW5EIG#00;b){XsFG|}rG z*GZ0BMvk8QX(+FQ?)k?VZcQ96Ao2RE9kH>|4K$z5{|fa^`9I74XHy{me<>YxkCZo) z_h4ueCRM!ae;}8m57sr77s`|byx-f15=u_7)(LK7Y!8Nf{?a_X2y#$*J^AmS&}_k% z|9cz&O>-G*ZWv0!Oucr%@yy-~VPPf3LBr?%0cx@zI&KmK`a%9}UxqJt$qqqwuAd2a z(2%4%)`C6+dI#S%=Ul(MByYY<0f1<(!WZl{DK&vGij2V=Q^F6M*60CU0+fN=&`N}$ zQDRI$nXdQ9PmNnrH>f9s31<-Wjw759!qd)&j&+Mg_brVOpw9)=ru&+kO;zwFxMm96 z!!c9?{V%kNT0%KD{Tfo=g_zKp5o-D*iQ|NjZleAHDxFxxoFG*#Gs%+Rt#Ba`pNm*w zyiswzdUXs7fUuRoL|9g`)u{Vhj(ik>VG^9 zA&gJQ%@}Jn&zxWEVJV`KRYIVA<%>4_ypp&wV*zXMr2^r$G{;S!K;9r9n!rE6nc&>} zHH7t6lpVT@9|y!g5ZlcP$`l0*TlxWZ;|2191unXtDP#AwW^QLqBEr$?r=?}G1a4sf z^|Zx*TeG;d_v|hTIKH8n!L?W}F*s z?PE6t9omziTo1PIWe?62v@yQqZ5HZ!Fn28(`X7$B{{!@=+WzTb=v>}5-h&K3qc#|5Y$v48t3VMBhM7)ryB{R1G9KR>U<3U zn;cghAB0wfPlip}`ajI`6)mGcYNVG#_MuhwatU4Fn-}QtqQf78mGit*SqE*Pu@KA; z=&U^J97zpJkQk|;H1UU#bg!?IHJ4HkNy?r}p9Yic`73({1#*cwVBST7u$kgZm z8%wb2M%ak;^^V-x)2@f`UmLamBtFiF`-QZeQyTJNT|*0SvTl;n@#3d zP{Z~*g$|K=X)%XB+jlt=J;-*{^{Zj2wPUZdq3*smqhns>zTcoxSiz2(G+)HGFw~W9 z#kX7R{pm%VRWBy`D-l@T#_|EjEks}3oZ~W!ZTmF8k%GP>f$(9DZ`W_)by{}w20@?V zVwrPok}4Dthmp{sjivs@q5VdAoyXoJb!+=8Ry1uuiC#?lhki76tB*#`B(TizS-4drrFe&syX{21NEh3i|>oOU%#91YTaG<@#y(}qN!+{ z*7@s4bo7Hy&;KBp8+U%&JZiXLoo~pbc=K6z5hfDdLbg@j@{_ypCPukKoxoOIUO0F6 z(;+lSs%MIj8?Ji69geX~wQQ8?5>aGi5X3_EFf&zt7L;nuPK`_= zO*?PFfNgF9r{^-x(Nj1U7jVd{Oo=tXCWfj#6c)eySzs3IhH1U_b=0NwtH9pIF% zy4t42N9pcbTD+6xKpy_#AAaqqxFK|Iv(cRueihGT{sGL2j5YbS41;k zt|`a}Jj@0+De-{YQ+jbBrDLoSYCT5Tg)-w@TrbpTK!b$a0d{tghyRY+wp@ghorzjX z_CXDWcM~h_VqB0+_YH{#7Rp1X?D^y5*W$)m-WKEAt{JgDE>l3f2%b|K-O;dz8*6HN zH~?_0-`+RhKZkNaaB!)gs2-Q5R$!=w2P73at@FR4qCz6-IJcZ^R{xeIsZ1G*{x*9o zhu|e9kL0WKU?ZWZz>@B`zs`*}te{a4eI|fn1{v?5XM9l%$#0td&41}X6wLA8Re#sB z_bKdQLu?`J{MnfjzUYzf7DG^c2O?6lBHLJ`M{DGLzqy^e8pJZZL;S z90fL=g4frSJ_Au7P@LKfm~bzCQp(rDZ3<}=(>tIJj%pmnL$R$}l@3ji)XIi<&XUiB z(?auWK6LbPZkQHuN)r)sh$rO9haoYU*JyKF2sLhNnt#tQ`9aOh!}YVLLJ25ZrRHHe ze-^C#0*jm&lGx{SR1o&S)l4G}y5l|6cp&8-im50LXorwx@Gq-#KQN|5o=D>uXgbP# z>ATAjXnQ=7Mw-;p7#=&I^5>$_h&{Vr@vWp3)I;AMbgoCEiF4iyc)0O@Rjj-sXy`Kx zL$@=;V~zRkGMwmbEn%qtHi0VRVnw^FRkZY!Sg#Le^zEMC;etWQbd zee&``>%{#E2`0r2gcFkhYf1{FejJ`v@UptVAZEf5+|6`%yNfjbxgc=|_C6~aGH5KX` zZ$I)6*!Ul@aD|t&goP|Ff70y~PVU?Jp2L0W10Gzy@^$-Petg=U1al|R)?Yh6%Bt`tITMM%N#=NYPq5?Da~qr)66^6n@6VfFgAxSOHU|BT+n4n&D#)}jZWv0 z#TUdi2V=Doh=~=vGKmRlN-1k6@Iej{dD_0cyWLA?$vyyYx;A?c-5lZ%mfh(JlZOR znbCZ%ntzWAcWC<}af7d269LyR_M)&jt_A;wj0H$Q=s3Z5^8FmTrcHzhTa*7jVTG<& z2wjJ^o=aJU(5pvzPAzUERmgTX#OKagDk*0#PU!G0u^z~Op-~$O7~(A&qhSW(z3I{T z{XOI0!2AdJ?R0q2&bIz{zK@sBO&%2kI@GL%}xu>$CYOkM8n#v~BS{X+bbe(ODd*$`pJuh*SIVa9>LSx6DU`RrDX zU*ac>>16}i+zb#FeZq@O9YC_`d%K8e*^i*7!iS$@^tfM^gWDF0F&Y=vA;{5ZoLPG~~diJ|tM> zLKXPV@j&{1;@NFkH+Zql6VT(Uei>%>5Ae9fDdWH)Hq-ds#|NJYKdTilCMy`y?C>F- zr<1k0AlDC!oOj_#2X%ch7+RuyGrH@!SP&X2(p}39LnCftAdT*yx;Z`1nTjhQ%>6Bp z?-YDF{mh!Di2HZbw`=(x$>|FTt2`y9h>hZEr5ps)a?(qr!J)VL%5VQ@#wFpJymg`qjX#5#B zK28W0l0+#F8O%G^Jsre0!0pc%lqr;ZcOCZe4yt?5uGG(`A6LgvrnP z9$@IioCVy)+9YByXwOaZvzaV0+@&yVq#LG~UZh-dve?tgyrI$Et zU7F_WqYaEvrnDzSs7u{>@b=ioKTIKGB?+GhP~%_85X^B{g$WVP*M*TN_QDwFYAZ*dB8i)~Q4UVys|>%=!%r&pg|smUa=sjg zR*=E6^GW!FU)~J=sA0ZQb=Jd!HY9zq%vxzbKKFvG^~oY!U^q<*%G+M-t>-)u@# z_bt7^k^dDwN$!8R(j?@S%Fe)@&%BvJ=|xuRTbH(*@QjiGFi7ui?wG$~j_f%kbG1FP zbCyg?`d%lGipoF8X?ZQ#E%YvN5r7Vw+umD%x^=$>6?WUjP7cWwZF$7Xz9P9qeBMOE zz?reCEWf9@xtPT8M2c|Mj&kLSc|2e4ZcjA>I~*uphX_1bR;zr| zS*6D39H59I7|`aW_pdw+VBo9k?GX^kpV>IvN=>k^Q!ZaD@j<=*6}l9!j^3 zdoy8tRoJFBNqlDeHGE43_Py84$H4Vl8D=0FW@waXb1t3s$eLhY;b!asHWHZ&&!{k} zB`+hBHw1p!Tq9Kc!W}TlI8^Df-Umy#upGAq)BA~&HC&pYD16A^ zNTeAHWD12$!RU$yki}X_!HU9}basmC;77(QPZM3BzpdhO_hpqca?3P58CbBHDT5YH zol65l z9u5%!9u5YotAQSy0E-QWg+s+D4v$O8rB2OZ;tawQlh6oCqEXZQRoja|%WXWvBWdbF zmmIu(1(oC=0bzhZQ7HDa({Hr7Ng#+y_&U6me`crY;TqCq!rzq1^4Wm=7k9&D^-I5R z-&bm6a9zWDz*)(?5N5K5i0NEAv9X7%LV%^IK6?MfaeGP4g6@QX9D6rjX>CTvqfd&D z5zY`Q)dWqsrCq~Q!5d0ULronjCd~n^GnP=4!EGuKE zlU?o#7WQdpul(|?-%!Kry==WRtLR^fF}G82QoEDE4e~^a{Ufs=eXQWPHyp`|^y*`h z_`H^1Rij*Q0GyB}dQ$~{L4WUuWS!i5L*`32M(sUy*^lsqR2~QPxg+wykj^$Ygjang z(b`qzI@NiGd#Qp^eXU0{NrY3+{We=VlUwBhl}Sp2_12=-Wn~X)i3NT)^SYA;|$OuKizP!GbP4`13Q1+r6Ie~rc?;E}; z?aZ){Y}|H&%dywg&L5H1w5U%s;RE&OEmV<%QoiTNofT15>o5gpF*mgsi;&|IJ>?-2 zL!(CI`o3KWnKZKpwwGw_^8}U|w-?upA-jX%+@QYhjEMa@;qT$XNE#kOhWklEwfnzR zY@VC(`#j!I{s9EZdpf8R2DvJW?<*mbJ!)qjen+E@HYN$Qq3aGr>vCA>+>pN7lb7&U zzTX31b~>af8mDh%7^hf~m%&1kRSCjo0XCoW~_6jXC{m$y9~@z_#uF(413o zxeC3p;)O_vQkcNgw>S{0wpCasdtdHtQsLVP(L}OZ{`6(#mVCd1y=+MFvmZCKXKHshbv%y2Alb_02Z`QPLdQ|?z&}8V5va$l!516y zJ(_hzafRgAnC*%Eh9I10yQ-Yjm&@Kw%?V7gzK<`+1GgC0B*lI#41D%%IGB0Z*DG{; zW|I^8c9k>ck1&^MxFCxg62evu5<@;j##*tXjE!ysnO<^=r+-$@PgI(hi`F zX$tG5m-Ec4sbVyZ`N~>fC#?v2Np47!*6r2pRnx+Q7q=E;(kFh=$-bFE6zLcc96Y50 zhX?(cCSem|V^OF|W2@2`Q>fNvUM}Czpvhi$X+$`O7CeCR>z7R}Brx9e9t;(ZV!Sj# z1LZ+`7|Cx7g_IU$9k0$LCmE^36$uHH$mPaQ8bxydHA@c+M3?^a$-qk{zfTmhcz0%^ zM3VIdq{%howm@68z4HI75N63!5R=>*@|s;+m~IPWj9R@`4+gNY)1qxda2`9cfZA@P zdZF!4^l=;6ckLOWax|Z?z%11DGu}1__@VFcw@5v8J6R!dtF6m8xqD&3OFnr&e?SIL&h~3s<4C%?pxePGdtMQ2QN? zxIvB*QBIoc=?(1s*UT`yX@m?8a z5UEfv3aziG=&q4WQ6yqAHy|7B8>y<^bQ)r{7L`pnAb35bYtp6Ah=OCkDoCqTFCuwD zOf!LXPlBuB(fmU!Mw#q~OH_uGAt;?Ee<_TOXuxQ%6Rx_=>t+BGw*U_ZJd8pYVbzMrf9KIyvoZP1FlfI+k3i7D_Z#2>782Gaa!c~89ge%{Z;O{ECAxQUy)oWsE$w#Xf>ef}X zD?&{9woqqkw8Ro&?!;*}7CVY0jY-m(JN}Gv|IU}K#m@fZtcahT9rB3NteQ%k5uO*c znR?viSi7yX=US5`Qo^6JHS3~wbwd7nBPNCp%^*v_fo^6#t}5WL(3aLB{zc$-F2o86 z-kJ?Sere?Y8W{8^o$BY{>#bB`_Kv2O(VgaNFw8KJi*JA|SNb->sF%y5WeKtW{RdAL z|9Si1bM;kMMTcYg1<7$^qi3Aqu1-^xy?)=KFbbkNfM?~AoR}F;I`g+E_3o~9(~|ri&}FN5+!-%eEzkvJXz&>)XqJ@;{x8EX6>TeC z8Ap7m|IK&OLsJ%2CbE*M>IDGjbRRx{9+%4Ds8?gaY+V_acN+*{5vTarp4~4gVOB4UZZ# z5pVMj_`?=uTdw=M_$z(D9coL&qtY9U9ahSFil|su9K1cQs90`9$fvg$zDM{CDa2>{ zH<+Cwc|Fbq92SOZ{f6xV0QjBd?e`P4vB0~b=4}NKg>;Bm3a5v zM9Mx+@S_a>cep15D&8I`W@V~sxJ!`B5M`49>7QdHhxlIMkz_Y8J6p-94n2Xy`&)?f z0r@Z92_OA~ORW-VIg#z|5gQCE_c(S~IoY&?e%?eYYipnQhgP6ToXPe-z%;9L2HoAP z)(0-BA@V%^)iRCVIMtl@YQuaRdj5qmH~>T@eoVUokLbQfzv`F(_7DGMt3EAn;m_bj z0QuPzxOFVNQGU7#x^bHiD}QQQ!q+_69cxrnDqnMQ@%Q$sX%zhVdJ5gN2z$$r|1HL_mWqd)B;uZlI0V);SHjxA(2?x&06+V0X>5pafKAF<9iynNL*DLUs zr+?T=_I{;}J5lC6yi@0=PbL=&HPD}CpD^x0s@fE8;xP85&~Vxayj4#B0YdMOZG(>S zQ6!9Kz0E4_HsrRZKYMAmPNhxJq=mX~=ReW3P#I_YHjrl&7L|_MCQhNLyVcPQj%BpTJ3!bj|B=F0o|Jd;U#*<|4l4<8@ur2T!>CtVWEL; zzak?2=BZ-+<_V{yi@G8Kfdv;ZnJkp0L5@fp`)wNz*>dm#D^huEWPwOwAotcuy$>EY zNBK>1j|s{{!OAR6am(T)Z@}eeFmg z?76@O<38wCmG~#9L>V&};l`}2r@+(B;V`*Y9r@E~R#JO#zIRgKQe!U#Xpqo3S$5`Z zp1_3;KAwdlpIU#Bq?;49KD2W}FqG$fwmcP9g#~NMaDmmVq30qBC{BbuIN5;DkKit% zd*)uV8Q3nO7&mdte1^$PJ_b1U97C4zRTJr6FX8MpJv(5GV23&n3a1H0m{0M_Bbn7z zYI`@}dL0U9#4O??+6H^>FWdJ37mLZ>@w5gio{LLDS zPX?q?45HBnh>{!x$S&~M(kF?i~SY0YUrUnJ~xV`%J9WG2n9 zGIF5aEz0StNA!wGz_GKa=(%n~KE0h?!qG&yW!QnmH#~z<*(R*9Ml*Iu<8C@QKsZ$e zN18OG!toBZ(bF9Jok_Hj9fq-NnP*vrBo80&kI6Rb?~dPus_v-@W_Ejjx>%L`PI36F z^q#`P0(=5p15iIN;JQhZ_z@#$Ishcci}+do0q&WKBlR13unIgX$Yk{5N=zO#5EVmG z4bm(W4;jrh?MhAwH^nmaF}8(&EwY#+K7EpmXzJTsC{jA88`5X?^Qu(l`9vR#C90Df z1MM7_>s1WOi^GTrxoKgbNwePer!v2?jNuJWiMjqWUu7=zz}*XqAR)dvlAXCn1Quc>A?!{Y?=uZ1 zW}mH4X@c8p`0@%v*CKx>!@9{FQwZp$UOm)|P*ljF*3&J7O?#U~>Om^VLM)5_0iaUd zI>!8;?EG+7sTgH2^Z0p<@THV8I(T6wdjIc*`Tv&q3}jTe7C`H&yfXC2t3Lk(5oVFF zw$)5`9szg!s9)AEC1jMX*eSGZhL`5C0jex1SFFD+-C3ea$lWbMJtnP>B2XMZA~|H^ z5)-L-3d5|QyFePw6+Mo0n7`J2TE>L33zL68j(O@4nvre8`WbBAYnlk1$*S20i_+-S zvO}bm`+X4yT{7?8l&_{GoInTjMO ztwSj(sb7C$FH#jCxX-r7dccYhlUL z#+vCXCIF>ZTI^Wq?c_0_A)~`gSM<7CYPE4k#51<-0E5wc1;JyhV*;vajC}5D$iC~k9p>}_WE|`%F!$hL_(ov=%&>WmDE#quDi|% zhh`gAaJV8`(=qiT4f=WmVOZd**OvW)YLstpV0hq64Js@weP+(I;kS}=$u{R_%1kz$ z<8%T$8P=bOuW7+1>7N)pHN|zLn6+YH@JX?X>fqStt*yd6ybD}x*FIREAPl)-1F^5P zDol&W7fM30wsnjh;{RVn_`qPSndoE&q+VC%`IffgMHQZ)`S9bV<=L0O))XxT$zb2| z##sz$ASvLwmM~lfLR$@hk3VD8I%5mWSi8KzTi$K>1bkL%%h)-?x8G{clFB+1lCJWf z#K&H*&Z2<6Vrts;_f7xm z87BexHLr@S7Zq){Qu^pcG_f)_B4~YZ0fa3}=}IE4ux5iC1Z<;HxL$EqZ*Zi7y{`Ke zDosN4oEu#zK?Nw&r=B-kK}loU;p%%Fxq)A?cN$P28xyCP;}Y8|X*p_2y|C_Zh_R!@ z^)1-nA}#TYdejj&dgLxIARq2 z9nBmvP-`W`H*c6lV(JsK_EpGQM7<&yQm90JA)K}6fM7&h!2X-IHhfTQj^k^JT0W9&s=!E| zH3glb0=jCffQDBw+-sG7ILx?G!ja=sssf#KN9b-Aqm;^M3T2A zq((rDPAYNsMtp!g8i+WabAz}m11dDZ8l>neaHalnJ=45-*LXYp930L}p-r2w`dy0E zNz)UaENP#66pX$vbgHr~cZMzeC&&Z)AAp+T@z3sC%9q;5$Qt{!>r8Z7-$kK@;sMn^ zqCxwPVp*$(xftjf;o)MZG9(7*J{Ybd#{t&L@xqfRFoTXYV4FRo{GNMFQ?GOl=$S4u zm2&xrzXaj5RAEhjULrDM-pw5=e!=ioU{I zn7S?LPUe{)9W^n_g)W^M<3Xi!m+~}`KNDA|;gl~v%Jm_YUs;9G<;OlbaMZKAqlz4K z%4M=|CbQqpK19z7r`|q3dvP2)_Np14E=f+;WCoKhj9DI0&*_!&!WidIQ={k5b5Bj! zxoE8}^9g$9Q`WJ1AO97IBkt9LADzTA-`^^5 z6`&>!R%aScJq`R|mURrGnp_ZjrXsl*)gcv-CKQxF{mIB`faE38Iyim6b6XTOu+5R@ zImg@FXFff=*qTry9gM3;ri_7N_4#1z(#DA`8sVp;XnD?pl`u>#LBY)^$@Kc=0VE>d zxH%!yR!*pNwYEUY<6|o6mKI`1Ts4gg3}-ybd70HQehgBr(gv3RbxyXWn;i1_{I%LB zjhTCo$~J}?2_~$!%7eMr2ksf+XAe}&7>=Fx@2BJlxtVau8Pn1NFqo8OPVD%m>;B|r z6RygFg}!}&6fqnvJtCwf-XX&EO*-M;Nm>*##Jnq^d}bM*3%S~^n0Cv2D9WJHltm{J z8)}lzmgzrjD}9Z7vLJEe&Ex+DZ)W$G)=6%pik%WZ=B!dmF9=ZF4=L(#(X}=)AMkKa zY+}ck!-hd?y+p;<)bF?Qp2QW^BQ#;S!wW#GUOMdU_PI1G*$_(7{gjv zhIHrOL*n96sya~N`PEi5-zrY}1{#7Piz)D_uN*?P14V>~jvE+H)Xz7(kOM3qQ5?6p z-&`MT;D<(sK+Bw%J0G7)FGC$3-o?QHzFXC84ugnLYG3}H!vU+dv@a*v&|^eVOX5-b zJR&^RO?z!4Fpo58%>vn+Xyz$z=~v`eTf97$$~MEY(%9MUWG?OvX1Z^7J(aSBQze`$ zBZq5yK8Z`&htQw*_yf)OqxxDl;Bk4HcXaKHx6MxnA#VbLDw(j>s0cJmJRjCLIUKs}= z!xD@`8%O{FqQMOn#*b@-r9H^i7>G6!jnqKowvf^%of_2yGGdtci&R{jExdzg{H(O=2@d z**d)45n9vFz`s`F;M`-S2TX~5Qr1|zO{a6NfP9y4j>w~&BQgzHqp-Coe8)Zp$Lc$& z#jDbcS&qM@7I;`Q`DL!`or-QJXHIpeB0?Jw+wSm#6@-go`*)1LV{>}PEp7xBq6bR! z^&AY6%A9Xr8|?t0ia?HMrOhK9qPIQl_IaOd!38#bS1~r_gQT{+%szzo3O_#l3Q&99 zkPRsa)p5GKRz44v&WxA`CxU22M<>7XkyeO-5uPX42&=NnsHNLQAH~&LaFRMz=cFkb zCGdfLTe~D@E(y7`IMv8F_Se42Kfr>u%7*V^;JDtclSbcx1Ha9DyCz`WoW!2S)7nTj zdt!r+p9ok*`N=RT&^rX+Yr3@nNxd>xNGmx+%ndH4P+!>B@ChHA0{FEapEy~Y$0R}|A$eysT zp6_fVzK?X{`lJqest@))=z}zlmv45`4XGm-Nz^ixaD@9KsOi?+7?L^(ypZchWMuJY z@*6u)tdMUMW@b1>t&WchbCS-VM1yZ$2?(7;UB1-U7e~ItWK<}xK!_qa-kL^a zY*_h>i23LA#a>o?;Pvc0ZDb49Eqx>=*RzuG9n*5wcE}C%WKfd!xNi&{ofJ0=(fd*AR7WD zj02tBJQqgr`*mw94?ulE?Y#9U14kOy35zM(`{6rve&v?xyO8f}b={aKui`MjsU;e~ z0O$!Lx!70oqk>okLRji9f_SigVG1%c;}s)a#y>_=SVreOEf2S>#O!|ze|Ry$liMf0 z04!Hu{VW~riQUaJyh%(<6&$|wlmadgVE0H*GPtIGU9ISI$%}44y0rgMIRNkN_yeh> z5xG<1BBOorTLF*c1>CEFY^pwv@L4l?X>#RrmCCC$j-LW;>By`rBe4if{z}})OYEfC zILIuGl2~1q&l_`!qkv@ZEL&ZcGV(1$mZM-_f$>oS`C5P&DcM^Pq^6cLtot)f${g=d z(Y?z-EW24ZQBc3*58rr+`QZCNH?1$c^g}&M>3G_Rm>Mj{@BkwY}Gw zVS4l`hr%0k7o;ckamH3n2gK;qxYbuU$_(pXv_20vZM-gt`o_`9CTRz45dLT|Z8;NU zMUXTng^{yh>*p%8z&HM%(jI~Z@vxd>&*brs{p?dJyjcy%kRF^kS`N*FpD9bbYp5OA`tCTg;-(Q}D9+Qq6FzRt&vnw$B9 zz<4US7o@JnZ>oj_58WCZ`Wo!EZ*)^b+|);Ys!ot*u=T<#=)4G${y0ENl@NsMJ&jEe z0S*r{GzjQe;2AJBTj{IgrT;;>46Ey?LOT)CO@ljEkrtF-m#In%qb&HL?%gMdH&2tK z9=r%lADs&e*?xf>lv;cM?71Y2s*kc4>0_vDlyGGo5Rvvwip$a@3WX`8|K0T&&(rdN zv6j}zZyrv>t9m7&Mld+ESv>KrV7pF9RhJeY5o`~2ffiqtMaSg>NLB-kHq>;-7Nl+6K&DEvx0QXgTx>*A>y~F#2_u&Tl z$nY9Y+HIB$)SBP|%9vnJ2I>sqyqw-k=>@d-uYa&l0yiIWB z@7}fz81=f!XEs^3`ua5H(bODn%F?x>JacV*Xb(ZuQ{APGW-OKFKiopzhf~+K!C%OZ zDpZlyNGN9-{W!f|J_7`6LJMcSQ5r*z)X}P^9~_XeXD#56PYzK7>LHaOEG0@YPBma_ zX){aGq~%G>2kBIBHB>Rz70D$TuuQ6Gn-8vxPUCB4BaEzQm@x^Bx-gb7Z=eT~!`7%U z+O5e_X4U9NGf+p<@yBKtT=VMJHEUqn@?qLC*zE+VP^StF;xUh`#}>-w+XupII8?bX z30U)HDGRXZw2m%hmzIySYvZ*6^01jl`NFEfRJd)7X%uOWNgwrNsz@_7sx$(Ku-byY ztEZ2dYc7C4&G+j-_L;SKpPd8N!M$Sb^fSnJt+4etsb>P{}sn+%MyHBA$*=DVo~ z%T+i*qpIxEc$ivv`jw~D``*B`Js8GEYc-jAPo(_l*f=1G>Pj9>s(oF!hEtWGQ@nbD zl@})RaDKcJfP;-nV=iT8q_nsxj1rHzGG|0(l)RPP#U){wt1_EUP?VMZIamZ45h@d` z6xCMvOQ27bSf;U|BL?q%mOiY;Jj4HUI13)y>(6_Fkk9K=r1Pw8^rHii7}(Vh8N>Gh zQH%wB9Zb?Cl@r!h~=44$px*39ID(S)4tIbFk< z`FL9Y1GMQk21qQtvziWXl$vIE!qHC=eH37UN12=XNG}u^kIy9pa*BvxFxhiNs@=U# z6(>n}PbYyxvAa$f&x#441g#r*!}~lA-%#GSIG}*C7X<>vn3nY>N0yCdbs_S7ZjKIT zqLKfJNnS19Y%c%PZY_`$S=ogTyR@<-wjv4ditS|a#PNF`hkpp3=TzFm`oUv)^Z&5* z)?slqzaJ=Gq_`EgB8$6Aab4Ug4n+#3xI=Mwx8kz67H^BYFBDq}6nA&%J$=8wd;hu* zhh3fpa?WIuOeXV5g5>i)Rz(!)^Gxayn}b&UDaPu^g9eiGU5wt{if-M$-t;yl?qboG zY3c};w9#%o8W-I6Rn&Xx*&0pJZ^|za-ZYG<_YZojB=a-{)08;G;!@)FHXmv9wmE17 zOZKvQ!O9O!pOc@6>h|=4FIt9WMJy8+0aD5B%we^9ENK?MSkgwu#rkXr7!zH>L91WF zL0!S&v~;6*avN=Og0P>eeS>I}RY`&2Ph50 zLAk-*PpUfjopeaDjbw;O%jyX&T9Zi=7ztuI=pidUb89 zr<8ocxcXPsy-`!NuB@t=CpG|#WIERpfLkx=q9@U~Mc2!86hA8`0t{PW@+4Z&9lo8a?Ym; z6PHZUVp`&ubc;C4mv@-z_1$ia=l_W|fHIp0WR zBg|tFkiTj#>eZt!OfaoGVB!sH-$jfcyE!55<^7`41eUk|u7ANxSxr&8Z_;MLTY$hM zcCrtjC7_;X(70p^>A`%Lrx_`W-SdT<^R@#+>G?`3j+)`vgR%ET471`ASJvKQ}yMTF#E&+>xK z(}i3!NX|0?dvy|v9MjwcN*UhH^W4jxcx>gDj*2in_4p}v(8*ZFgALu)qK^Im1`g2f z;D5@p#g9re`tM=WMz;YLY(eqyJ!Dl^?8Mo{Gn?t$S@izcs@TzUqQo#O#=w?-sCy?Z z0l{8qA*bCXgQZ-5aEC>TrK|+jPSLD*ch$Lz&H=7Gpfoi3|D!j~&|QdUYu^!#g%)>c zS)JI<65BqN+v&B;K?4;srasG^VD(yNaT`JO(o!M+IW4As>8~~(eOtt-#%T54xRNt? zs+;ybCL#U^JP*!IoiF}V&l~+ymXrc7*;=X)@>=<#|1le*;{;GEU;wTj6a#SrZQaCR z&MyS1s*zzQl6@if;Z<0$9?kYzZ#Du!j0EKW!QC!xwL{QxYrmA4+11w=HuD)_!_BOr z#7Gj==HZ%C!gnwS{O}<&io>V&+~NIVEMcwK8!vf6MzAW~i{G&Jp)zcEqi3myTqG&% zPuNM`l5eYr$v!M4+o+>PJS{EI`ae*eiBAo%+b|dyC_q4Bs|Gp zVdKr+R0QUsu|?aZ#Tu}G(?Wb)nlu*jBkKt%nbFesN^GB3t$XK@ka?|eqPB%(xW0X$iS7{1(Aj^mFq=lQ=X6F4+}}-z32^4j&1%pH^uV>Me!<$n-^ey$m?cL=F;l@WcewIa=2$ukgzR;bkJwNaUaYI=Y z`g;`(IV;!i>iNfu`tVkt__L1hP1cd91NPUT>BVBy*J3qS2O7SLckL9ou~<0*zQ2NM zJi#+1q?a|eVR6w`r=K1|_y4TpmFx?LFF4BBW|3Ng+?IXWN@&??kp*98=k=0>E_}fm z?ldHYWI+!f@gnO=1khD+FP;qn9YSP&fUEE;B!HTh8t9LNtiIu=M2P_f$t_psHgGL| z_tWrRDN8Sp3ypA#F`2ehW`>jmwoilPVkv*Xe92xj_CNJ5_gGt=?U0aw%d#x%w#|?? zKZpgLaq``H4Vh(568C+@`Erf11je3lB&8z@QKGG*krdcL>kejT!}u*EG`U{1llc{F zs)OC(p`yA0FT*ytCt{3|=-$FFKx}*Ph@}5ZIBGrgT$Qfj-&2EopMJ!|3y5Z~8)%^0 zq7p2G#pX6NJUhm^3U&0N{vtKti-Ez396BiPn9=l{M}(Hg7N`}~sLO~!M2*sw zM^4UiRMKmH*5-}mSX&I)x}$d0pZ>+Pw?t;>`m-R&(;6zGIUvdx`~|6aQj#-@lpHn~ zj}{s%sS0=0JrDdzp3cOZGm*T;Y1n6~<56GP3%?Y7}d*+YA3GzkQ>aLHbWgl@i9 z6wNRB&8Y?p&{0YYAZZX=K{8{j(pR5;x6zv+`7uTf6^R!EAK#R{!(>1N>EpJ0dBZsG zMlPqgoKT;codP1MAfo#*qAGo-Z!htk&C<*$7tiq6uflI4ta3OT&TVBb`|q3zO@__g zRBegCbn9`=PysNzL!}u0SeweB2p7@FeFdvqx?#_tb2Bl9tog(sel|tNN3szb6pc%~ z1{Ze~vIqHK#>_SJn9|-E%x(n7g*aomVf_%7PJWJYoZLbCYF5#1>z}6{xd*6%n4_Ki z@EAnceTm{Zo~rzM+fSkz!ctk`ah(Tx(sIk790$h6K6}(H5D9c)Sct%1%Sf74MtAM2 zeQ(sWMM5UX0*^D~E81VU?e4s|vSxP;P4oIX#7fkuDoJ&|hWK<&lz2ETvoqK3+H|=0 z{Pg^9IL#-c8Cpxrf8r2Kf758Hc{o+fM&8SU@-y3{^G!J~2@OoLi{!4@rwa43p_kn1 z28k0#5F>iy)fo0p%$}q)XrqBY3N_|>s=aM{*y$JTQ3$Zeycl|gOkR`p4M&w;(8w0@ z8PP*Tx&m1QgU74caOY%JJj7${;?Ak>EX9Lr^iHu8d)to{meD)$pw|cf|M^x1K2u)u z$0lB0*iEUt-WUy?TA9S5Ct_`*>ij)~@PNiY}_CWd7evsq!tV zz2dO7lKC8sh6tn}eq?Y&NI_igx#}5ud=OhL@=(mSUG-arm)#T>`@j^J*rnLZ`7Jg4 zyU+Pxq~aLId%b~#>F+#$;gHWGu0k1o+u-$-Wxb0R+9>r(qI zbgUX0-35+~2-VcliQ2gFTdA`6H!KKqC-1QjUG|);Prgvkx*DnmSzs$0zH$$>zIq-- zpD)jjrn<^M(WSXsKB@l;2bIKW!1ZliT)Z=k2YQBZcrzZd)cl33D5m>)Nx+!=w9T!E z!BMmP{L5%+hXwMxqPEZgFiy0Zc&tFU(%>$RvZ(NX3#m^CyyXWZuSgD75g zN>w*7d?kA@L=f&CB_(1>GZ5A6_x_?Upm*e`I{mhx0dD6n9G&F}ixKndHefWuHly_QVxg=K0n8`DBmd?X>%0Aod0~{X*vydEOTjZKx5F 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

t?K6bp>lYG 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 va_ff> { - formData.set('recaptcha-response', token); - php_email_form_submit(thisForm, action, formData); - }) - } catch(error) { - displayError(thisForm, error) - } - }); - } else { - displayError(thisForm, 'The reCaptcha javascript API url is not loaded!') - } - } else { - php_email_form_submit(thisForm, action, formData); - } - }); - }); - - function php_email_form_submit(thisForm, action, formData) { - fetch(action, { - method: 'POST', - body: formData, - headers: {'X-Requested-With': 'XMLHttpRequest'} - }) - .then(response => { - if( response.ok ) { - return response.text() - } else { - throw new Error(`${response.status} ${response.statusText} ${response.url}`); - } - }) - .then(data => { - thisForm.querySelector('.loading').classList.remove('d-block'); - if (data.trim() == 'OK') { - thisForm.querySelector('.sent-message').classList.add('d-block'); - thisForm.reset(); - } else { - throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action); - } - }) - .catch((error) => { - displayError(thisForm, error); - }); - } - - function displayError(thisForm, error) { - thisForm.querySelector('.loading').classList.remove('d-block'); - thisForm.querySelector('.error-message').innerHTML = error; - thisForm.querySelector('.error-message').classList.add('d-block'); - } - -})(); diff --git a/assets/vendor/purecounter/purecounter.js b/assets/vendor/purecounter/purecounter.js deleted file mode 100644 index ea31fce..0000000 --- a/assets/vendor/purecounter/purecounter.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * purecounter.js - A simple yet configurable native javascript counter which you can count on. - * Author: Stig Rex - * Version: 1.1.4 - * Url: https://github.com/srexi/purecounterjs - * License: MIT - */!function(){"use strict";function e(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function r(e,t){for(var r=0;ra.end?a.end:a.start;return n.innerHTML=r.formatNumber(i,a)}setTimeout((function(){return r.startCounter(n,a)}),a.delay)}))}},{key:"startCounter",value:function(e,t){var r=this,n=(t.end-t.start)/(t.duration/t.delay),a="inc";t.start>t.end&&(a="dec",n*=-1);var i=this.parseValue(t.start);e.innerHTML=this.formatNumber(i,t),!0===t.once&&e.setAttribute("data-purecounter-duration",0);var o=setInterval((function(){var s=r.nextNumber(i,n,a);e.innerHTML=r.formatNumber(s,t),((i=s)>=t.end&&"inc"==a||i<=t.end&&"dec"==a)&&(e.innerHTML=r.formatNumber(t.end,t),clearInterval(o))}),t.delay)}},{key:"parseConfig",value:function(r){var n=this,a=function(r){for(var n=1;n2&&void 0!==arguments[2]?arguments[2]:"inc";return e=this.parseValue(e),t=this.parseValue(t),parseFloat("inc"===r?e+t:e-t)}},{key:"convertToCurrencySystem",value:function(e,t){var r=t.currencysymbol||"",n=t.decimals||1;return r+((e=Math.abs(Number(e)))>=1e12?"".concat((e/1e12).toFixed(n)," T"):e>=1e9?"".concat((e/1e9).toFixed(n)," B"):e>=1e6?"".concat((e/1e6).toFixed(n)," M"):e>=1e3?"".concat((e/1e12).toFixed(n)," K"):e.toFixed(n))}},{key:"applySeparator",value:function(e,t){return t.separator?e.replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,").replace(new RegExp(/,/gi,"gi"),t.separatorsymbol):e.replace(new RegExp(/,/gi,"gi"),"")}},{key:"formatNumber",value:function(e,t){var r={minimumFractionDigits:t.decimals,maximumFractionDigits:t.decimals};return e=t.currency?this.convertToCurrencySystem(e,t):parseFloat(e),this.applySeparator(e.toLocaleString(void 0,r),t)}},{key:"parseValue",value:function(e){return/^[0-9]+\.[0-9]+$/.test(e)?parseFloat(e):/^[0-9]+$/.test(e)?parseInt(e):/^true|false/i.test(e)?/^true/i.test(e):e}},{key:"elementIsInView",value:function(e){for(var t=e.offsetTop,r=e.offsetLeft,n=e.offsetWidth,a=e.offsetHeight;e.offsetParent;)t+=(e=e.offsetParent).offsetTop,r+=e.offsetLeft;return t>=window.pageYOffset&&r>=window.pageXOffset&&t+a<=window.pageYOffset+window.innerHeight&&r+n<=window.pageXOffset+window.innerWidth}},{key:"intersectionListenerSupported",value:function(){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype}}])&&r(a.prototype,i),o&&r(a,o),n}())}(); -//# sourceMappingURL=purecounter.js.map \ No newline at end of file diff --git a/forms/Readme.txt b/forms/Readme.txt deleted file mode 100644 index c758c4e..0000000 --- a/forms/Readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -Fully working PHP/AJAX contact form script is available in the pro version of the template. -You can buy it from: https://bootstrapmade.com/iportfolio-bootstrap-portfolio-websites-template/ diff --git a/forms/contact.php b/forms/contact.php deleted file mode 100644 index 8476ba4..0000000 --- a/forms/contact.php +++ /dev/null @@ -1,41 +0,0 @@ -ajax = true; - - $contact->to = $receiving_email_address; - $contact->from_name = $_POST['name']; - $contact->from_email = $_POST['email']; - $contact->subject = $_POST['subject']; - - // Uncomment below code if you want to use SMTP to send emails. You need to enter your correct SMTP credentials - /* - $contact->smtp = array( - 'host' => 'example.com', - 'username' => 'example', - 'password' => 'pass', - 'port' => '587' - ); - */ - - $contact->add_message( $_POST['name'], 'From'); - $contact->add_message( $_POST['email'], 'Email'); - $contact->add_message( $_POST['message'], 'Message', 10); - - echo $contact->send(); -?> diff --git a/index.html b/index.html index cc85975..33a3859 100644 --- a/index.html +++ b/index.html @@ -118,19 +118,7 @@

Community

- -
-
- Badges of Flair -
Joanna, "Office Space" (1999) doesn't like talking about her flair.
-
-
-

Certifications

-

-

-

+ Life without graph databases.
- -
-
+ +
+
+
+

Resume

+

+
-
-

Resume

-

+
+ + +
+

Contact Information

+

nmolivo@gmail.com

+

+34 604 81 43 03

+

Alicante, Spain

+

US Citizen

+
+ + +
+

Professional Summary

+

AI/ML Engineer with 8+ years of experience designing and deploying scalable machine learning systems, data pipelines, and AI-powered solutions across government, insurance, and supply chain sectors. Proven track record of architecting enterprise-scale ML frameworks, building agentic AI systems, and leading cross-functional technical initiatives.

+
+ + +
+

Core Technical Skills

+
+
+
Machine Learning & AI
+
+ PyTorch + Huggingface + RLHF + MCP + Agent Development + Supervised Fine Tuning + Random Forest + Feature Engineering + EDA +
+
+ +
+
Cloud & Infrastructure
+
+ AWS (Textract, GroundTruth, Batch, S3, Athena) + Azure (AI Foundry, Functions, DevOps) + Docker + Terraform + Microservices + Event-Driven Architecture + Kubernetes +
+
+ +
+
Data Engineering
+
+ PySpark + SQL + Relational Databases + Data Pipelines + ETL/ELT +
+
+ +
+
Development & MLOps
+
+ CI/CD + FastAPI + API Development + pytest + Prefect + Git + VS Code +
+
+ +
+
Specialized Tools & Languages
+
+ Python + SQL + .NET + Visual Basic + ONNX + Edge Deployment + Tableau + Diffbot + Tweepy +
+
-
- +
+ + +
+

Professional Experience

+ +
+

Artificial Intelligence Engineer

+
Omada | Nov 2024 - Present
+

Alicante, Valencian Community, Spain · Hybrid

+
    +
  • Scaled an event-driven service from experimental collaborative filtering prototype, exposing anomaly detection capabilities as RESTful tools for LLM chatbot agent
  • +
  • Collaborated with SMEs to generalize anomaly scoring for diverse organizational models and implemented configurable hierarchical scoring separating data-driven clustering from customer-defined groupings, maintaining mathematical validity through proper vector normalization
  • +
  • Skills: Mathematical Programming · Agentic Architecture · AI Product Development · sklearn
  • +
+
+ +
+

Data Engineer Lead

+
Progressive Insurance | Jan 2024 - Jul 2024 (7 mos)
+

Cleveland, Ohio, United States · Remote

+
    +
  • Architected service orchestration platform implementing patterns that later formalized as MCP and LangGraph: built standardized interface layer coordinating legacy and novel services (LLM APIs, template systems, feedback collection, data storage) through plugin architecture, composition workflows, and interchangeable components
  • +
  • Served 22K users with production reliability while enabling researchers to swap LLM providers and prompts via configuration, reducing iteration cycles from months to days
  • +
  • Skills: Microservices · AI Software Development · API Development
  • +
+
+ +
+

Data Science Consultant - Top Secret Clearance

+
Various | Apr 2023 - Jan 2024 (10 mos)
+

Cleveland, Ohio, United States · Remote

+
    +
  • Supplemented existing image segmentation pipeline with jurisdiction classification by first extracting plate features scraped from public sources (scrapy), indexing those features, and performing nearest neighbor search - similar to RAG but for images
  • +
  • Leveraged existing tools to create drift detection tool, which established benchmarks and alternative processing for non-ideal image-capture conditions
  • +
  • Delivered rapid prototyping and repeatable patterns with customized CI/CD pipelines
  • +
  • Skills: PyTorch · Edge Deployment · ONNX · Supervised Fine Tuning · Strategy · Software Deployment
  • +
+
+ +
+

Machine Learning Engineer II

+
Interos Inc | Jan 2022 - Oct 2022 (10 mos)
+

Arlington, Virginia, United States

+
    +
  • Architected and scaled an orchestrator coordinating ML models, human validation, and knowledge graph ingestion
  • +
  • Built information parsing framework for multi-modal document processing (PDFs, images, tables), implementing entity matching, data normalization, and deduplication across diverse document formats and sources
  • +
  • Crafted features which supported re-training of models, research tooling, and governance using version control, CI/CD pipelines, and thoughtful database schema and API design
  • +
  • Clients: NASA, DOD, Mastercard, MassMutual, Delta
  • +
  • Skills: RLHF · Event-Driven Architecture · Huggingface · AWS Textract · AWS GroundTruth · PySpark · CI/CD · Kubernetes
  • +
+
+

Machine Learning Engineer

+
Interos Inc | Oct 2019 - Jan 2022 (2 yrs 4 mos)
+

Arlington, Virginia

+
    +
  • Shipped DAGs that automate key information discovery: scraping company websites, routing proposals to Human-in-the-Loop validation, and storing verified relationships as structured data
  • +
  • Created a rigorous unit-testing framework enabling reliable simulation of external dependencies and catching issues previously only observed in production
  • +
  • Led a monthly ML research reading group focused on emerging methods and foundational papers
  • +
  • Skills: FastAPI · EDA · Docker · pytest · Prefect Dataflow Automation
  • +
+
+ +
+

Machine Learning Engineer

+
SoKat.co / Dovel Technologies | Nov 2018 - Sep 2019 (11 mos)
+

Washington D.C. Metro Area

+
    +
  • Contractor for Grant Solutions of The Department of Health and Human Services to create and support 2-time Government Innovation Award winning product Recipient Insight
  • +
  • Engineered a distributed PySpark pipeline on EMR with AWS Batch orchestration, an internally managed precursor to what AWS Glue later standardized
  • +
  • Created a TF-IDF-powered entity-resolution tool used to match DUNS and EIN identifiers to organization name and address
  • +
  • Skills: SQL · Feature Engineering · Random Forest · AWS Batch · PySpark · Tableau · Terraform
  • +
+
+
+ + +
+

Featured Projects

+ +
+

CuyaCourts

+
Jan 2023 - Dec 2023
+

A database of Cuyahoga County's Criminal Court Case docket, available for download. Inspired by Harvard's Caselaw Access Project. A community asset to support educational content on data literacy and technology.

+

Technologies: Selenium · boto3 · SQLAlchemy ORM · PostgreSQL · AWS Lambda · AWS ECR · AWS RDS · GitHub Actions

+

Site | GitHub

+
+
+ + +
+

Certifications

+
+

Data Integration and API Development for AI Applications

+

AWS Certified Cloud Practitioner

+

Advanced SQL for Application Development

+

Developing CI/CD Solutions with Azure DevOps

+

Introducing Semantic Kernel: Building AI-Based Apps

+
+
+ + +
+

Education & Training

+ +
+

Immersive Data Science Bootcamp

+
General Assembly | Sep 2017 - Dec 2017 (4 mos)
+

Washington DC-Baltimore Area

+
    +
  • Participated in a 12-week, full-time, project-based training program focused on statistics, data analysis, visualization, and machine learning
  • +
  • Completed project with Industry Partner which prescribed ways to drive tweet engagement using Tweepy, AWS Rekognition, Random Forest
  • +
  • Won a blogging competition by conducting research on the Effectiveness of Humanitarian Aid using boosted tree-based models
  • +
  • Skills: Experimental Design · SQL · Data Cleaning · Statistics · Feature Engineering · EDA
  • +
+
+ +
+

Bachelors of Science in Actuarial Science

+
Ball State University | Sep 2009 - May 2013
+

Muncie, Indiana

+
    +
  • Passed Society of Actuaries exams: Financial Mathematics (Aug 2011), Probability and Statistics (May 2012)
  • +
  • Served as president of Gamma Iota Sigma, Risk Management and Insurance Professional Fraternity
  • +
  • VP Finance for social sorority Alpha Chi Omega
  • +
+
+
+ + +
+

Awards & Recognition

+
    +
  • Supported 2-time Government Innovation Award winning product (Recipient Insight)
  • +
  • Won blogging competition at General Assembly for research on Effectiveness of Humanitarian Aid
  • +
  • Interos Virtual Talent Show Winner - Live piano and vocal performance
  • +
-
+ + +
+

Early Career Experience

+ +
+

Senior Vendor/Industrial Base Analyst

+
Pantheon Integrated Solutions, Inc. | Apr 2018 - Oct 2018 (7 mos)
+

Washington DC-Baltimore Area

+
    +
  • Applied data science solutions and strategies to the Department of Navy's VIRGINIA Class Program Office
  • +
  • Established and incorporated machine learning capabilities to enhance program management support
  • +
  • Created data pipelines for labor hour and material cost data from prime shipbuilders and sub-tier vendors
  • +
+
+ +
+

Actuarial Contractor

+
Lynchval Systems Worldwide Inc | Mar 2017 - Mar 2018 (1 yr 1 mo)
+

The Pension Benefits Guarantee Corporation (PBGC)

+
    +
  • Delivered an annual data scraping, collecting, and validation process for Pension Insurance performance projections
  • +
  • Utilized the Department of Labor Form 5500 website, Visual Basic Macros, MS Excel to create a database for 450 Single-employer plans and 250 Multi-employer plans
  • +
  • Automated checking and reasonability processes by writing Visual Basic macros
  • +
+
+ +
+

Actuarial Analyst

+
Willis Towers Watson | Jul 2013 - Jun 2016 (3 yrs)
+

Greater Boston

+
    +
  • Assisted in bulk lump sum offerings and accrued benefit computation projects
  • +
  • Completed pension valuation work per PPA, PBGC and ASC guidelines
  • +
  • Simplified reporting processes by automating and maintaining client specific spreadsheets
  • +
+
+ +
+

Internship Experience

+
Mercer (2012) | CNA Insurance (2011) | Swiss Re (2010)
+

Various Locations

+
    +
  • Completed annual IRS government forms for qualified retirement plans
  • +
  • Assisted in producing actuarial valuation reports
  • +
  • Analyzed past claims data to develop loss development factors
  • +
  • Evaluated Life and Health reinsurance pricing with industry specific software
  • +
+
+
+ + + + +
+ + +
+ + +
-
diff --git a/inner-page.html b/inner-page.html deleted file mode 100644 index a4b4f7b..0000000 --- a/inner-page.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - Inner Page - iPortfolio Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
-

- Example inner page template -

-
-
- -
- - -
-
- -
- - - - - Designed by BootstrapMade -
-
-
- - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..72f2369 --- /dev/null +++ b/main.py @@ -0,0 +1,289 @@ +from google.oauth2.credentials import Credentials +from googleapiclient.discovery import build +from google.auth.transport.requests import Request +import json +import os +import re +from urllib.request import urlopen +from datetime import datetime + + +def fetch_google_doc(doc_id, creds): + """Fetch Google Doc content using Docs API""" + service = build('docs', 'v1', credentials=creds) + doc = service.documents().get(documentId=doc_id).execute() + return doc + + +def extract_text_from_doc(doc_content): + """Extract all text and structure from Google Doc""" + sections = {} + current_section = None + current_list = [] + + for element in doc_content.get('body', {}).get('content', []): + if 'paragraph' in element: + paragraph = element.get('paragraph', {}) + + # Get all text in this paragraph + text_parts = [] + for run in paragraph.get('elements', []): + if 'textRun' in run: + text_parts.append(run['textRun'].get('content', '')) + + text = ''.join(text_parts).strip() + + if not text: + if current_list and current_section: + sections[current_section] = current_list + current_list = [] + continue + + # Detect heading levels + style = paragraph.get('paragraphStyle', {}) + named_style = style.get('namedStyleType', '') + + if named_style == 'HEADING_1' or named_style == 'HEADING_2': + if current_list and current_section: + sections[current_section] = current_list + current_section = text + current_list = [] + else: + # Check if it's a bullet point + if paragraph.get('bullet'): + current_list.append(text) + else: + if current_section and current_list: + sections[current_section] = current_list + current_list = [] + sections[text] = None + + return sections + + +def download_pdf(doc_id, creds, output_path): + """Download Google Doc as PDF""" + try: + # Refresh credentials if needed + creds.refresh(Request()) + + drive_service = build('drive', 'v3', credentials=creds) + request = drive_service.files().export_media( + fileId=doc_id, + mimeType='application/pdf' + ) + + pdf_content = request.execute() + + # Save PDF + os.makedirs(os.path.dirname(output_path), exist_ok=True) + with open(output_path, 'wb') as f: + f.write(pdf_content) + + print(f"✓ PDF saved to {output_path}") + return True + except Exception as e: + print(f"✗ Error downloading PDF: {e}") + return False + + +def generate_resume_html(sections, include_contact=False): + """Generate resume HTML from extracted sections""" + html = [] + html.append(' ') + html.append('
') + html.append('

Contact Information

') + + if include_contact: + html.append( + '

nmolivo@gmail.com

') + html.append( + '

+34 604 81 43 03

') + else: + # Only show location and citizenship (hide email/phone on website) + pass + + html.append('

Alicante, Spain

') + html.append('

US Citizen

') + html.append('
') + html.append('') + + # Map section names to HTML + section_mapping = { + 'Professional Summary': ('person-badge', 'Professional Summary'), + 'Core Technical Skills': ('gear', 'Core Technical Skills'), + 'Professional Experience': ('briefcase', 'Professional Experience'), + 'Projects': ('code-square', 'Featured Projects'), + 'Certifications': ('award', 'Certifications'), + 'Education & Training': ('book', 'Education & Training'), + 'Awards & Recognition': ('star', 'Awards & Recognition'), + 'Early Career Experience': ('clock-history', 'Early Career Experience'), + } + + for section_name, (icon, display_name) in section_mapping.items(): + if section_name not in sections: + continue + + content = sections[section_name] + + # Professional Summary - just text + if section_name == 'Professional Summary': + html.append(' ') + html.append('
') + html.append( + f'

{display_name}

') + if isinstance(content, list): + for item in content: + html.append(f'

{item}

') + else: + html.append(f'

{content}

') + html.append('
') + + # Skills - special formatting + elif section_name == 'Core Technical Skills': + html.append(' ') + html.append('
') + html.append( + f'

{display_name}

') + html.append('
') + if isinstance(content, list): + for item in content: + # Parse "Category: skill1, skill2, skill3" + if ':' in item: + category, skills = item.split(':', 1) + category = category.strip() + skills = [s.strip() for s in skills.split(',')] + html.append('
') + html.append(f'
{category}
') + html.append('
') + for skill in skills: + html.append( + f' {skill}') + html.append('
') + html.append('
') + html.append('
') + html.append('
') + + # Awards - simple list + elif section_name == 'Awards & Recognition': + html.append(' ') + html.append('
') + html.append( + f'

{display_name}

') + html.append('
    ') + if isinstance(content, list): + for item in content: + html.append(f'
  • {item}
  • ') + html.append('
') + html.append('
') + + # Experience & Education - items with details + else: + html.append(f' ') + html.append('
') + html.append( + f'

{display_name}

') + if isinstance(content, list): + i = 0 + while i < len(content): + item = content[i] + html.append('
') + html.append(f'

{item}

') + i += 1 + + # Next items are details (company, dates, description) + if i < len(content): + html.append(f'
{content[i]}
') + i += 1 + + if i < len(content): + html.append(f'

{content[i]}

') + i += 1 + + # Collect bullet points + bullets = [] + while i < len(content) and not content[i].endswith(':') and not any(c.isupper() for c in content[i].split()[0:1]): + bullets.append(content[i]) + i += 1 + + if bullets: + html.append('
    ') + for bullet in bullets: + html.append(f'
  • {bullet}
  • ') + html.append('
') + + html.append('
') + html.append('
') + + # Download button + html.append(' ') + html.append('
') + html.append( + ' ') + html.append(' Download PDF Resume') + html.append(' ') + html.append('
') + + return '\n'.join(html) + + +def update_index_html(resume_html): + """Update the resume section in index.html""" + with open('index.html', 'r', encoding='utf-8') as f: + content = f.read() + + # Find and replace resume section + pattern = r'
.*?
\s*' + replacement = f'
\n{resume_html}\n
\n ' + + updated_content = re.sub(pattern, replacement, content, flags=re.DOTALL) + + with open('index.html', 'w', encoding='utf-8') as f: + f.write(updated_content) + + print("✓ index.html updated with resume content") + + +def main(): + # Load credentials from environment + creds_json = os.environ.get('GOOGLE_CREDENTIALS') + if not creds_json: + print("Error: GOOGLE_CREDENTIALS environment variable not set") + return + + creds_info = json.loads(creds_json) + creds = Credentials.from_authorized_user_info(creds_info) + + doc_id = os.environ.get('DOC_ID') + if not doc_id: + print("Error: DOC_ID environment variable not set") + return + + print("Fetching Google Doc...") + doc = fetch_google_doc(doc_id, creds) + + print("Extracting resume data...") + sections = extract_text_from_doc(doc) + + print("Downloading PDF...") + pdf_path = 'assets/resume/Natalie_Olivo_Resume.pdf' + download_pdf(doc_id, creds, pdf_path) + + print("Generating HTML...") + resume_html = generate_resume_html(sections, include_contact=False) + + print("Updating index.html...") + update_index_html(resume_html) + + print("\n✓ Resume updated successfully!") + print(f" - HTML updated in index.html") + print(f" - PDF saved to {pdf_path}") + print(f" - Phone/Email hidden from website display") + + +if __name__ == '__main__': + main() + + +if __name__ == '__main__': + main() diff --git a/portfolio-details.html b/portfolio-details.html deleted file mode 100644 index 17967e4..0000000 --- a/portfolio-details.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - Portfolio Details - iPortfolio Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
-
- -
- -
-
-
- -
- -
- -
- -
- -
- -
- -
-
-
-
- -
-
-

Project information

-
    -
  • Category: Web design
  • -
  • Client: ASU Company
  • -
  • Project date: 01 March, 2020
  • -
  • Project URL: www.example.com
  • -
-
-
-

This is an example of portfolio detail

-

- Autem ipsum nam porro corporis rerum. Quis eos dolorem eos itaque inventore commodi labore quia quia. Exercitationem repudiandae officiis neque suscipit non officia eaque itaque enim. Voluptatem officia accusantium nesciunt est omnis tempora consectetur dignissimos. Sequi nulla at esse enim cum deserunt eius. -

-
-
- -
- -
-
- -
- - -
-
- -
- - - - - Designed by BootstrapMade -
-
-
- - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..3da425a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "portfolio" +version = "0.1.0" +description = "Personal portfolio website" +readme = "README.md" +requires-python = ">=3.10" +dependencies = [ + "google-api-python-client>=2.187.0", + "google-auth-oauthlib>=1.2.3", +] diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..a24a71f --- /dev/null +++ b/uv.lock @@ -0,0 +1,358 @@ +version = 1 +revision = 3 +requires-python = ">=3.10" +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version < '3.13'", +] + +[[package]] +name = "cachetools" +version = "6.2.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/1d/ede8680603f6016887c062a2cf4fc8fdba905866a3ab8831aa8aa651320c/cachetools-6.2.4.tar.gz", hash = "sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607", size = 31731, upload-time = "2025-12-15T18:24:53.744Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/fc/1d7b80d0eb7b714984ce40efc78859c022cd930e402f599d8ca9e39c78a4/cachetools-6.2.4-py3-none-any.whl", hash = "sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51", size = 11551, upload-time = "2025-12-15T18:24:52.332Z" }, +] + +[[package]] +name = "certifi" +version = "2025.11.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, + { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload-time = "2025-10-14T04:40:13.135Z" }, + { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload-time = "2025-10-14T04:40:14.728Z" }, + { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload-time = "2025-10-14T04:40:16.14Z" }, + { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload-time = "2025-10-14T04:40:17.567Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload-time = "2025-10-14T04:40:19.08Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload-time = "2025-10-14T04:40:20.607Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload-time = "2025-10-14T04:40:21.719Z" }, + { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload-time = "2025-10-14T04:40:23.069Z" }, + { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload-time = "2025-10-14T04:40:24.17Z" }, + { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload-time = "2025-10-14T04:40:25.368Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload-time = "2025-10-14T04:40:26.806Z" }, + { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload-time = "2025-10-14T04:40:28.284Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, + { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "google-api-core" +version = "2.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "googleapis-common-protos" }, + { name = "proto-plus" }, + { name = "protobuf" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/da/83d7043169ac2c8c7469f0e375610d78ae2160134bf1b80634c482fa079c/google_api_core-2.28.1.tar.gz", hash = "sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8", size = 176759, upload-time = "2025-10-28T21:34:51.529Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/d4/90197b416cb61cefd316964fd9e7bd8324bcbafabf40eef14a9f20b81974/google_api_core-2.28.1-py3-none-any.whl", hash = "sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c", size = 173706, upload-time = "2025-10-28T21:34:50.151Z" }, +] + +[[package]] +name = "google-api-python-client" +version = "2.187.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-api-core" }, + { name = "google-auth" }, + { name = "google-auth-httplib2" }, + { name = "httplib2" }, + { name = "uritemplate" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/75/83/60cdacf139d768dd7f0fcbe8d95b418299810068093fdf8228c6af89bb70/google_api_python_client-2.187.0.tar.gz", hash = "sha256:e98e8e8f49e1b5048c2f8276473d6485febc76c9c47892a8b4d1afa2c9ec8278", size = 14068154, upload-time = "2025-11-06T01:48:53.274Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/58/c1e716be1b055b504d80db2c8413f6c6a890a6ae218a65f178b63bc30356/google_api_python_client-2.187.0-py3-none-any.whl", hash = "sha256:d8d0f6d85d7d1d10bdab32e642312ed572bdc98919f72f831b44b9a9cebba32f", size = 14641434, upload-time = "2025-11-06T01:48:50.763Z" }, +] + +[[package]] +name = "google-auth" +version = "2.41.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "pyasn1-modules" }, + { name = "rsa" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/af/5129ce5b2f9688d2fa49b463e544972a7c82b0fdb50980dafee92e121d9f/google_auth-2.41.1.tar.gz", hash = "sha256:b76b7b1f9e61f0cb7e88870d14f6a94aeef248959ef6992670efee37709cbfd2", size = 292284, upload-time = "2025-09-30T22:51:26.363Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/a4/7319a2a8add4cc352be9e3efeff5e2aacee917c85ca2fa1647e29089983c/google_auth-2.41.1-py2.py3-none-any.whl", hash = "sha256:754843be95575b9a19c604a848a41be03f7f2afd8c019f716dc1f51ee41c639d", size = 221302, upload-time = "2025-09-30T22:51:24.212Z" }, +] + +[[package]] +name = "google-auth-httplib2" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "httplib2" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d5/ad/c1f2b1175096a8d04cf202ad5ea6065f108d26be6fc7215876bde4a7981d/google_auth_httplib2-0.3.0.tar.gz", hash = "sha256:177898a0175252480d5ed916aeea183c2df87c1f9c26705d74ae6b951c268b0b", size = 11134, upload-time = "2025-12-15T22:13:51.825Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/d5/3c97526c8796d3caf5f4b3bed2b05e8a7102326f00a334e7a438237f3b22/google_auth_httplib2-0.3.0-py3-none-any.whl", hash = "sha256:426167e5df066e3f5a0fc7ea18768c08e7296046594ce4c8c409c2457dd1f776", size = 9529, upload-time = "2025-12-15T22:13:51.048Z" }, +] + +[[package]] +name = "google-auth-oauthlib" +version = "1.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "requests-oauthlib" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/a6/c6336a6ceb682709a4aa39e2e6b5754a458075ca92359512b6cbfcb25ae3/google_auth_oauthlib-1.2.3.tar.gz", hash = "sha256:eb09e450d3cc789ecbc2b3529cb94a713673fd5f7a22c718ad91cf75aedc2ea4", size = 21265, upload-time = "2025-10-30T21:28:19.105Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/07/a54c100da461ffc5968457823fcc665a48fb4b875c68bcfecbfe24a10dbe/google_auth_oauthlib-1.2.3-py3-none-any.whl", hash = "sha256:7c0940e037677f25e71999607493640d071212e7f3c15aa0febea4c47a5a0680", size = 19184, upload-time = "2025-10-30T21:28:17.88Z" }, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.72.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e5/7b/adfd75544c415c487b33061fe7ae526165241c1ea133f9a9125a56b39fd8/googleapis_common_protos-1.72.0.tar.gz", hash = "sha256:e55a601c1b32b52d7a3e65f43563e2aa61bcd737998ee672ac9b951cd49319f5", size = 147433, upload-time = "2025-11-06T18:29:24.087Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/ab/09169d5a4612a5f92490806649ac8d41e3ec9129c636754575b3553f4ea4/googleapis_common_protos-1.72.0-py3-none-any.whl", hash = "sha256:4299c5a82d5ae1a9702ada957347726b167f9f8d1fc352477702a1e851ff4038", size = 297515, upload-time = "2025-11-06T18:29:13.14Z" }, +] + +[[package]] +name = "httplib2" +version = "0.31.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyparsing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/77/6653db69c1f7ecfe5e3f9726fdadc981794656fcd7d98c4209fecfea9993/httplib2-0.31.0.tar.gz", hash = "sha256:ac7ab497c50975147d4f7b1ade44becc7df2f8954d42b38b3d69c515f531135c", size = 250759, upload-time = "2025-09-11T12:16:03.403Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/a2/0d269db0f6163be503775dc8b6a6fa15820cc9fdc866f6ba608d86b721f2/httplib2-0.31.0-py3-none-any.whl", hash = "sha256:b9cd78abea9b4e43a7714c6e0f8b6b8561a6fc1e95d5dbd367f5bf0ef35f5d24", size = 91148, upload-time = "2025-09-11T12:16:01.803Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "oauthlib" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/5f/19930f824ffeb0ad4372da4812c50edbd1434f678c90c2733e1188edfc63/oauthlib-3.3.1.tar.gz", hash = "sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9", size = 185918, upload-time = "2025-06-19T22:48:08.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1", size = 160065, upload-time = "2025-06-19T22:48:06.508Z" }, +] + +[[package]] +name = "portfolio" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "google-api-python-client" }, + { name = "google-auth-oauthlib" }, +] + +[package.metadata] +requires-dist = [ + { name = "google-api-python-client", specifier = ">=2.187.0" }, + { name = "google-auth-oauthlib", specifier = ">=1.2.3" }, +] + +[[package]] +name = "proto-plus" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/89/9cbe2f4bba860e149108b683bc2efec21f14d5f7ed6e25562ad86acbc373/proto_plus-1.27.0.tar.gz", hash = "sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4", size = 56158, upload-time = "2025-12-16T13:46:25.729Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/24/3b7a0818484df9c28172857af32c2397b6d8fcd99d9468bd4684f98ebf0a/proto_plus-1.27.0-py3-none-any.whl", hash = "sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82", size = 50205, upload-time = "2025-12-16T13:46:24.76Z" }, +] + +[[package]] +name = "protobuf" +version = "6.33.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/34/44/e49ecff446afeec9d1a66d6bbf9adc21e3c7cea7803a920ca3773379d4f6/protobuf-6.33.2.tar.gz", hash = "sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4", size = 444296, upload-time = "2025-12-06T00:17:53.311Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/91/1e3a34881a88697a7354ffd177e8746e97a722e5e8db101544b47e84afb1/protobuf-6.33.2-cp310-abi3-win32.whl", hash = "sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d", size = 425603, upload-time = "2025-12-06T00:17:41.114Z" }, + { url = "https://files.pythonhosted.org/packages/64/20/4d50191997e917ae13ad0a235c8b42d8c1ab9c3e6fd455ca16d416944355/protobuf-6.33.2-cp310-abi3-win_amd64.whl", hash = "sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4", size = 436930, upload-time = "2025-12-06T00:17:43.278Z" }, + { url = "https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43", size = 427621, upload-time = "2025-12-06T00:17:44.445Z" }, + { url = "https://files.pythonhosted.org/packages/7d/4f/f743761e41d3b2b2566748eb76bbff2b43e14d5fcab694f494a16458b05f/protobuf-6.33.2-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e", size = 324460, upload-time = "2025-12-06T00:17:45.678Z" }, + { url = "https://files.pythonhosted.org/packages/b1/fa/26468d00a92824020f6f2090d827078c09c9c587e34cbfd2d0c7911221f8/protobuf-6.33.2-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872", size = 339168, upload-time = "2025-12-06T00:17:46.813Z" }, + { url = "https://files.pythonhosted.org/packages/56/13/333b8f421738f149d4fe5e49553bc2a2ab75235486259f689b4b91f96cec/protobuf-6.33.2-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f", size = 323270, upload-time = "2025-12-06T00:17:48.253Z" }, + { url = "https://files.pythonhosted.org/packages/0e/15/4f02896cc3df04fc465010a4c6a0cd89810f54617a32a70ef531ed75d61c/protobuf-6.33.2-py3-none-any.whl", hash = "sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c", size = 170501, upload-time = "2025-12-06T00:17:52.211Z" }, +] + +[[package]] +name = "pyasn1" +version = "0.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", size = 145322, upload-time = "2024-09-10T22:41:42.55Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", size = 83135, upload-time = "2024-09-11T16:00:36.122Z" }, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/e6/78ebbb10a8c8e4b61a59249394a4a594c1a7af95593dc933a349c8d00964/pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6", size = 307892, upload-time = "2025-03-28T02:41:22.17Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259, upload-time = "2025-03-28T02:41:19.028Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.2.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/a5/181488fc2b9d093e3972d2a472855aae8a03f000592dbfce716a512b3359/pyparsing-3.2.5.tar.gz", hash = "sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6", size = 1099274, upload-time = "2025-09-21T04:11:06.277Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/5e/1aa9a93198c6b64513c9d7752de7422c06402de6600a8767da1524f9570b/pyparsing-3.2.5-py3-none-any.whl", hash = "sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e", size = 113890, upload-time = "2025-09-21T04:11:04.117Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "requests-oauthlib" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "oauthlib" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/f2/05f29bc3913aea15eb670be136045bf5c5bbf4b99ecb839da9b422bb2c85/requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9", size = 55650, upload-time = "2024-03-22T20:32:29.939Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36", size = 24179, upload-time = "2024-03-22T20:32:28.055Z" }, +] + +[[package]] +name = "rsa" +version = "4.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/8a/22b7beea3ee0d44b1916c0c1cb0ee3af23b700b6da9f04991899d0c555d4/rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75", size = 29034, upload-time = "2025-04-16T09:51:18.218Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762", size = 34696, upload-time = "2025-04-16T09:51:17.142Z" }, +] + +[[package]] +name = "uritemplate" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/60/f174043244c5306c9988380d2cb10009f91563fc4b31293d27e17201af56/uritemplate-4.2.0.tar.gz", hash = "sha256:480c2ed180878955863323eea31b0ede668795de182617fef9c6ca09e6ec9d0e", size = 33267, upload-time = "2025-06-02T15:12:06.318Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/99/3ae339466c9183ea5b8ae87b34c0b897eda475d2aec2307cae60e5cd4f29/uritemplate-4.2.0-py3-none-any.whl", hash = "sha256:962201ba1c4edcab02e60f9a0d3821e82dfc5d2d6662a21abd533879bdb8a686", size = 11488, upload-time = "2025-06-02T15:12:03.405Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" }, +] From 4dc43a9bb0a16ee675dbf9c395823f7de86e280e Mon Sep 17 00:00:00 2001 From: nmolivo <23561238+nmolivo@users.noreply.github.com> Date: Sun, 21 Dec 2025 17:21:22 +0100 Subject: [PATCH 2/9] clean up --- index.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/index.html b/index.html index 33a3859..6347071 100644 --- a/index.html +++ b/index.html @@ -481,9 +481,6 @@
Mercer (2012) | CNA Insurance (2011) | Swiss Re (2010)
- - - From 4afac153afabc5fc96f1cd91c5cb4b4205ba98ca Mon Sep 17 00:00:00 2001 From: nmolivo <23561238+nmolivo@users.noreply.github.com> Date: Sun, 21 Dec 2025 17:51:27 +0100 Subject: [PATCH 3/9] pre-dry run --- .vscode/launch.json | 25 +++++++++ .vscode/settings.json | 16 ++++++ assets/css/style.css | 73 ++++++++++++++++++++++++++ assets/js/main.js | 44 +++++++++++++--- index.html | 117 +++++++++--------------------------------- main.py | 9 ++-- pyproject.toml | 2 +- 7 files changed, 181 insertions(+), 105 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..efe099a --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,25 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Current File", + "type": "python", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal", + "justMyCode": true, + "env": {}, + "envFile": "${workspaceFolder}/.env" + }, + { + "name": "Python: main.py", + "type": "python", + "request": "launch", + "program": "${workspaceFolder}/main.py", + "console": "integratedTerminal", + "justMyCode": true, + "env": {}, + "envFile": "${workspaceFolder}/.env" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0c33419 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "python.linting.enabled": true, + "python.linting.pylintEnabled": false, + "python.formatting.provider": "black", + "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python", + "[python]": { + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit" + } + }, + "terminal.integrated.env.osx": { + "PYTHONPATH": "${workspaceFolder}", + "PYTHONUNBUFFERED": "1" + } +} diff --git a/assets/css/style.css b/assets/css/style.css index 1c50fff..3ad03fe 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -163,6 +163,79 @@ h1, h2, h3, h4, h5, h6 { color: #149ddd; } +/* Dropdown Menu */ +.nav-menu .dropdown { + position: relative; +} + +.nav-menu .dropdown > a { + cursor: pointer; +} + +.nav-menu .dropdown ul { + display: none; + position: absolute; + left: 0; + top: calc(100% + 15px); + z-index: 99; + width: 200px; + background: #040b14; + border: 1px solid #1a1f34; + border-radius: 5px; + padding: 10px 0; + box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.5); + animation: slideDown 0.3s ease-out; +} + +@keyframes slideDown { + from { + opacity: 0; + transform: translateY(-10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.nav-menu .dropdown.active ul, +.nav-menu .dropdown:hover > ul { + display: block; +} + +.nav-menu .dropdown ul li { + padding: 0; + margin: 0; + border: none; +} + +.nav-menu .dropdown ul a { + padding: 10px 20px; + font-size: 14px; + display: block; + transition: 0.3s; + color: #8892b0; + border-left: 3px solid transparent; +} + +.nav-menu .dropdown ul a:hover, +.nav-menu .dropdown ul .active:hover, +.nav-menu .dropdown ul li:hover > a { + color: #149ddd; + border-left-color: #149ddd; +} + +.nav-menu .dropdown > a:after { + content: "\ea99"; + font-family: IcoFont; + padding-left: 10px; + transition: 0.3s; +} + +.nav-menu .dropdown.active > a:after { + transform: rotate(180deg); +} + /* Mobile Navigation */ .mobile-nav-toggle { position: fixed; diff --git a/assets/js/main.js b/assets/js/main.js index 2a62a7d..77dbdca 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -4,7 +4,7 @@ * Author: BootstrapMade.com * License: https://bootstrapmade.com/license/ */ -(function() { +(function () { "use strict"; /** @@ -90,7 +90,7 @@ /** * Mobile nav toggle */ - on('click', '.mobile-nav-toggle', function(e) { + on('click', '.mobile-nav-toggle', function (e) { select('body').classList.toggle('mobile-nav-active') this.classList.toggle('bi-list') this.classList.toggle('bi-x') @@ -99,7 +99,7 @@ /** * Scrool with ofset on links with a class name .scrollto */ - on('click', '.scrollto', function(e) { + on('click', '.scrollto', function (e) { if (select(this.hash)) { e.preventDefault() @@ -149,7 +149,7 @@ new Waypoint({ element: skilsContent, offset: '80%', - handler: function(direction) { + handler: function (direction) { let progress = select('.progress .progress-bar', true); progress.forEach((el) => { el.style.width = el.getAttribute('aria-valuenow') + '%' @@ -170,9 +170,9 @@ let portfolioFilters = select('#portfolio-flters li', true); - on('click', '#portfolio-flters li', function(e) { + on('click', '#portfolio-flters li', function (e) { e.preventDefault(); - portfolioFilters.forEach(function(el) { + portfolioFilters.forEach(function (el) { el.classList.remove('filter-active'); }); this.classList.add('filter-active'); @@ -180,7 +180,7 @@ portfolioIsotope.arrange({ filter: this.getAttribute('data-filter') }); - portfolioIsotope.on('arrangeComplete', function() { + portfolioIsotope.on('arrangeComplete', function () { AOS.refresh() }); }, true); @@ -241,6 +241,36 @@ } }); + /** + * Dropdown menu toggle + */ + const dropdownLinks = select('#navbar .dropdown > a', true) + dropdownLinks.forEach(link => { + link.addEventListener('click', (e) => { + e.preventDefault() + const dropdown = link.closest('.dropdown') + dropdown.classList.toggle('active') + + // Close other dropdowns + select('#navbar .dropdown', true).forEach(d => { + if (d !== dropdown) { + d.classList.remove('active') + } + }) + }) + }) + + /** + * Close dropdown when clicking outside + */ + document.addEventListener('click', (e) => { + if (!e.target.closest('.dropdown')) { + select('#navbar .dropdown', true).forEach(d => { + d.classList.remove('active') + }) + } + }) + /** * Animation on scroll */ diff --git a/index.html b/index.html index 6347071..b5e06eb 100644 --- a/index.html +++ b/index.html @@ -48,7 +48,6 @@

Natalie Olivo

@@ -58,8 +57,19 @@

Natalie Olivo

@@ -69,7 +79,7 @@

Natalie Olivo

Natalie Olivo

-

Resume/About/Projects/Blog

+

About/Resume/Blog

@@ -86,8 +96,7 @@

About

- Life without graph databases. -
Charlie Day, "Always Sunny in Philadelphia", passionately performing Extract, Transform, and Load processes.
+ Life without graph databases.

Natalie Olivo, Machine Learning Engineer

@@ -101,87 +110,9 @@

Natalie Olivo, Machine Learning Engineer

-
-
-

Community

-

- I've lived in Fort Wayne, Chicago, Louisville, Boston and DC for career opportunities and found myself naturally embedded in professional communities. - Here in Cleveland, I electively seek this community out and help create it as Director of Women Who Code. We organize monthly virtual events aimed to highlight, connect, and empower technologists in the Cleveland area and beyond. -

-

- In my first job in my career as an actuarial analyst, I had a front-row seat to the transition from Pensions to 401ks. - In my first job in my next career as a data scientist, I had a front-row seat to the increasing privitization of healthcare related research in the US. - After the outbreak of COVID-19 and the wide-spread adoption of remote work in 2020, I reflected on my priorities and found myself leaving Washington, DC for Cleveland, OH so that I may be closer to my family, and many incredible volleyball venues. -

-

- Volleyball and the community it brings me are really important parts of my life. I joyously play at the AVP BB level. -

-
-
- Life without graph databases. -
-
- - - - -
-
- -
-

Projects

-

A non-exhaustive sample of work pursuing my personal interests.

-
- -
-
-
-

Criminal Court Cases

-

Inspired by Harvard Law School's Caselaw Access project, this is a webscraping and data storage exercise for Cuyahoga County's Criminal Court Case Docket.
Github / Website

-
-
-
-

Women Who Code Cleveland

-

As Director and Technical speaker, I enjoy building community and exploring the possibilities of technology.
Meetup.com / Speaker Volunteer Form

-
-
-
-

Gala Deck

-

I present a surreal application, which reads in a curator's instagram feed and proposes a custom Tarot Reading using Stable Diffusion, CLIP embeddings, and style transfer. For those who want reflect on thier experiences alongside universal symbolism.
Github / Gallery

-
-
-
-

SQL Speaker Series

-

Developed in the 70s, SQL remains the de facto standard programming language for relational databases. Given over two 2-hour sessions, these virtual, interactive workshops focused on queries and covered security, administration, and salary.
Notes / Slides / Session 1 / Session 2

-
-
-
-

Tree Based Algorithms in ML

-

Coming Soon: An Earth Day inspired deep-dive into classification algorithms inspired by trees and forests

-
-
-
-

Hello OpenCV

-

Coming Soon: Hello Computer Vision! Before we programmatically apply logic to images, let's first get acquainted with the ways in which we must pre-process them.

-
-
- -
-
-
@@ -202,13 +133,13 @@

Contact Information

-
+

Professional Summary

AI/ML Engineer with 8+ years of experience designing and deploying scalable machine learning systems, data pipelines, and AI-powered solutions across government, insurance, and supply chain sectors. Proven track record of architecting enterprise-scale ML frameworks, building agentic AI systems, and leading cross-functional technical initiatives.

-
+

Core Technical Skills

@@ -281,7 +212,7 @@
Specialized Tools & Languages
-
+

Professional Experience

@@ -357,7 +288,7 @@
SoKat.co / Dovel Technologies | Nov 2018 - Sep 2019 (11 mos)
-
+