From 42a4252fc8e3c455f7c5bc944f2160ff50a1d505 Mon Sep 17 00:00:00 2001 From: jshuntley Date: Sat, 18 Oct 2025 18:19:39 -0700 Subject: [PATCH] initial commit --- .github/workflows/publish.yml | 43 +++ .vscodeignore | 12 + CHANGELOG.md | 31 ++ LICENSE | 21 ++ README.md | 98 ++++++ fjord-theme-0.1.0.vsix | Bin 0 -> 26738 bytes fjordx128.png | Bin 0 -> 19955 bytes package.json | 42 +++ themes/fjord-color-theme.json | 552 ++++++++++++++++++++++++++++++++++ 9 files changed, 799 insertions(+) create mode 100644 .github/workflows/publish.yml create mode 100644 .vscodeignore create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 fjord-theme-0.1.0.vsix create mode 100644 fjordx128.png create mode 100644 package.json create mode 100644 themes/fjord-color-theme.json diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..c41b3c9 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,43 @@ +name: Publish VS Code Extension + +on: + push: + tags: + - "v*" + workflow_dispatch: + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "18" + + - name: Install dependencies + run: npm ci + + - name: Package extension + run: npm run package + + - name: Publish to Marketplace + run: npm run publish + env: + VSCE_PAT: ${{ secrets.VSCE_PAT }} + + - name: Create GitHub Release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref_name }} + release_name: Fjord Theme ${{ github.ref_name }} + draft: false + prerelease: false + files: | + *.vsix diff --git a/.vscodeignore b/.vscodeignore new file mode 100644 index 0000000..5e7e9ae --- /dev/null +++ b/.vscodeignore @@ -0,0 +1,12 @@ +.vscode/** +.vscode-test/** +src/** +.gitignore +.yarnrc +vsc-extension-quickstart.md +**/tsconfig.json +**/.eslintrc.json +**/*.map +**/*.ts +node_modules/** +.github \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..48b12b0 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,31 @@ +# Changelog + +All notable changes to the Fjord VS Code theme will be documented in this file. + +## [0.1.0] - 2025-10-18 + +### Added + +- Initial release of Fjord theme for VS Code +- Dusk-blue base with soft leaf-green accents +- Amber selections and crisp blue/cyan separation +- Complete syntax highlighting support +- Optimized for transparent terminal backgrounds + +### Theme Features + +- 16-color terminal palette +- Syntax highlighting for multiple languages +- UI elements (selections, cursors, line numbers) +- Git integration colors +- Search and match highlighting + +--- + +## Versioning + +This theme follows semantic versioning. For the versions available, see the [tags on this repository](https://github.com/jshuntley/fjord-helix/tags). + +## Auto-Generation + +This theme is automatically generated from the [main Fjord repository](https://github.com/jshuntley/fjord). Changes to the color palette are reflected automatically in all theme repositories. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ffeed71 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 jshuntley + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..333c1e8 --- /dev/null +++ b/README.md @@ -0,0 +1,98 @@ +# Fjord Theme for VS Code + +A dusk-blue base with soft leaf-green accents, amber selections, and crisp blue/cyan separation for Visual Studio Code. + +## 🎨 Color Palette + +### Core Colors + +| Color | Name | +| --------------------------------------------------------- | ----------------- | +| ![#1B2532](https://img.shields.io/badge/%231B2532-1B2532) | **background** | +| ![#222E3F](https://img.shields.io/badge/%23222E3F-222E3F) | **backgroundAlt** | +| ![#1F2A39](https://img.shields.io/badge/%231F2A39-1F2A39) | **surface** | +| ![#233141](https://img.shields.io/badge/%23233141-233141) | **line** | +| ![#E8F0F3](https://img.shields.io/badge/%23E8F0F3-E8F0F3) | **foreground** | +| ![#6C7A86](https://img.shields.io/badge/%236C7A86-6C7A86) | **muted** | +| ![#51606B](https://img.shields.io/badge/%2351606B-51606B) | **mutedDim** | + +### Accent Colors + +| Color | Name | +| --------------------------------------------------------- | ---------------------------- | +| ![#9DD99A](https://img.shields.io/badge/%239DD99A-9DD99A) | **green** _(primary accent)_ | +| ![#5DA6EA](https://img.shields.io/badge/%235DA6EA-5DA6EA) | **blue** | +| ![#FFD285](https://img.shields.io/badge/%23FFD285-FFD285) | **yellow** | +| ![#B9A0F8](https://img.shields.io/badge/%23B9A0F8-B9A0F8) | **purple** | +| ![#F37C7C](https://img.shields.io/badge/%23F37C7C-F37C7C) | **red** | +| ![#B8E7E9](https://img.shields.io/badge/%23B8E7E9-B8E7E9) | **cyan** | + +## 📦 Installation + +### From VS Code Marketplace + +1. Open VS Code +2. Go to Extensions (Ctrl+Shift+X) +3. Search for "Fjord" +4. Click Install + +### Manual Installation + +1. Download the latest `.vsix` file from [Releases](https://github.com/fjord-theme/fjord-vscode/releases) +2. Open VS Code +3. Go to Extensions (Ctrl+Shift+X) +4. Click the "..." menu and select "Install from VSIX..." +5. Select the downloaded `.vsix` file + +### From Source + +1. Clone this repository: + + ```bash + git clone https://github.com/fjord-theme/fjord-vscode.git + cd fjord-vscode + ``` + +2. Install dependencies: + + ```bash + npm install + ``` + +3. Package the extension: + + ```bash + npm run package + ``` + +4. Install the generated `.vsix` file + +## 🔧 Configuration + +After installation, you can activate the theme by: + +1. Opening the Command Palette (Ctrl+Shift+P) +2. Typing "Preferences: Color Theme" +3. Selecting "Fjord" + +## 📸 Preview + +![Fjord VS Code Theme](https://raw.githubusercontent.com/fjord-theme/fjord/main/docs/images/colortest.png) + +## 🔄 Updates + +This theme is automatically generated from the [main Fjord repository](https://github.com/fjord-theme/fjord). For the latest updates, check the main repository. + +## ☕ Support My Work + +If you enjoy the Fjord theme and find it useful, consider supporting my work: + +[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/jshuntley) + +## 📄 License + +MIT License - see [LICENSE](LICENSE) file for details. + +## 🤝 Contributing + +For theme suggestions or issues, please visit the [main Fjord repository](https://github.com/fjord-theme/fjord). diff --git a/fjord-theme-0.1.0.vsix b/fjord-theme-0.1.0.vsix new file mode 100644 index 0000000000000000000000000000000000000000..ae691a70c549f3e3b1278baa843dffc1dd479ac6 GIT binary patch literal 26738 zcmZ6RQ;aT5u&&3pZQIrw+qUib#7Uuy0|B7qFZl)4m6jW~d9E$LO?bXZrTns{XaeuWkouK`o%G z1s*}mOLnrH!0ng7;wtQ{Oku9to``6oO(6G#8p-{6 z#4;!F)wI~HWb)P&2Y>p6BDTMKYIQEGhu0GcwSjLiaqQgVC>3+ zNVS-ZMq}jQ>DC5-0W@QgkbIdvy^U-yCOJY9G5&eXqns>{^xONi1&rG1{XI5Cd;^T3 zNexUM8tRB57*+0iK=5ZpAown~G>Jh7^WOS81x@MQRM0KHcq5tDsY%hWcq_kVdCzv6 z>wQ5ZhB=;fsa{@?yP1rg2@m-D&iv2$v4085u>`1HPfrL8-D)D4jrP_n(3t%PQbB)< z8ogpI@BG}nN~$ZBoC6R6H+9Sp=1Q5)&S^b5D(FSglG11)({3Q|+dK6Wb8CEBz`Nuo z_lb#ycjv4}4zZ+2Nl9HLrImBb_jGogK~W4u(uk8iK9YZ6z@Imu3yp-!I}84I@R7r= zsvN{|R+m`K@gy(Ecc_r|ah2bjKNVa@25Q?*;%tA)wORoLEA+7v$9e59UFxTceAd|XymiswT3V& zRqij;^|o4f09;P$UA@xL*ivmyaohB zdfK@n;! z=@{oCyaikKIlgKiMM`#c{E1Ix-g*o#`wMYM<4Xbw4|?mnJkBf4^SCFShYtS=)u+Px zAgAL05+1nU2>;lBf{OLX*XY2)gG zrW<~jChb;!KOkbM&3HP#=+KY>mUTx=>H7I)1elZSl5LN4Qph6d{fhJ3J%wxw4K zdM;(agvk{$QxDzkU1IavxjU1}Yu0c^O%UXeduGEd7axdGx4pl5r6BQy8Lr0% zMfF5Urj^vPmKrvBixlCukWtZ&KRSQ*pLgva5&y5*Q2)gnI|pT*|1ABV^}pf`qoa|D zjgf^JgSCr;y_(9j{U#Gq&nYd200gqx=Mqsl5IoG$fAfKY{^=wZYehA@5; z62CRG3%)Xs#-!ck-s`geB{-*g#Tx=3sLG)W-n38v>%Sj5{ ztRl|q>!ZvVp0>ymE+^z0D-rNxvs{t>2N}%5nW`wnEj|B=t6^B9(NNAssdz4Fo@5As zWB(sFy3n>vEWnj9Xz!)XM6j*!UW~S5e1|LZ=(qWc96~|qF^gT?n=*T`p5GTkkKxZC zYPm=7#b*>O>y#-$XJl1c_hDA+7Gk2Ys~h7ZbaBiyVkAD*k%4{A@~dkmd4Hi=d|EW= ztqgmhBX@ep^g$hf8&f+(BGv6$UeVQYnj(pC{YX0}Z=uLu3AR)Ign3*~Vm{?P@7n!x zCZ4N5yi+~Wz&{D?mE{IJ>W{C4GK-ZM=P9G23?!6w)7D$lf6v+NzkKrlyiWB0c^&gV z|Nl>xVKldPa5nW|X5nIRw72l-0!<;;OJ?wyI%~4qT%+D>v(s?>tG8Opu&JJY&G6sx z^7i%fWNzzoe#?7pDjECJlZ1tZ_X1M(cI8m(5!G7Pyyw5?7j23YGc=T>FFgLRrF|jBSS ziG|J2$A`tIiH(;-kCoZk*@>O0iKV4^_RDgn*K?&8%XfaQC;7{K?|@rm&OkAz9#^N1 z@FMyPW%XDLH_G7Sit@m?y{|gaxPZ*Mz85nu*U!Lu${cUjeOY|Fi zV|l)Jv1fd~_a=DxMftUh_B(dsuYS+=K{)B`{Oiz_yZu|Ze?W6`^YOdpsPyd2W}?dB z;^gSU!Hnv{+3ZgKogV3bFhpu*VQNHSWA3nTJ*hA>GxYo`!d4^ui+dMOt<&!BTxjm_ z{CYz73vTs;Ii@f)IW+NQkg)a(^^IyvAV#aesw1aF%ggGW?mzf@>Gm6H{k^M*45I3u$z$+d~Oi&{0k`+89~Lvo1ydfXH++ZJS4JYM3gI|lbh>I3+u=3 z#DT%%=R!NvI})e!$E=a5v0<5&b&=JjlBM~f!DWfn>4Ay)8}s?rl!@J${lh=$x6*>7 z&)+OlVrgo0b@1<{fygg|GdgRzzsxU&UF{D&(l_lmpE$)YLT+($aAkI6CiUcRU>8?L zw-*+7HZc89S$aO0rM>+#C#Sw>)Gr@1GAuGIC?x3SZ{>lJmHDs#bIQHom+{vw{-Md2 zL)~xoUBBGCzd8S*zwBrKCFG$$1Cf8|uWr!H)o&f|oIfU34Jfia5D?kIg#*uz4h|4d zl}G!V8#WV>vPU}=Hw<-?ZXPj9CdUgL8#5$?Y&z06<5}I)w^QPNFGePp$UielHYMHQ z1%(K;jnM+#Dk8aTm}!txDO+Qd$D`Erar2!Y8J<}X+lQ!9N@RrCa{<)7<#(^~e!yTV>z3E7?lfqt3fBptyGDCYo|N3yuJG?XwLBm{rRv=$t~YB|bS* z0l+0XDN-T3^VbJ23N+1GzO1&A5lNWa#0|Nh{B1^y`cn%aMg$twQi|K5GDhBXu4Y2; z$*nm~q(O?5#c-t1oem^oS%A;MoXV>9HUBFf4MiC+I+LvEI0i$m=FEQbsD@5vM%sLM z@F+{zj|WHa;$oA+nIJM$@WHP@v`*xkwEybUo&kpB!U#=~i@CE4J@7n=#lBIF)sfcr z$~y&_)vkB1QGcSsypyExs~Vedj|_5qhw~KV^JsqQ;)9GAv1tjnCA8*IE*0NY1ec{v zZv@XQ_x009ZHPzSstXk0Q1OdL6!0WV2NVEBL=L0+JOj91siI7FEcbZAKcMXFR;3MX zpUFk0sc@~G&*0M4McgD*Xr-A=#+PBwg`exIf12N(IzDQDfF+W_GGfh4C5t^G67yiG zO81JvyHXZwzp-!Y7u~t<-W7O28$CmwEjBXCl&gH@^>P#b;``|Oj5_N>0S%1}CJzq_ zK=!5%QBzN*5d+o$FH*z~0Dtn`VJZsM)G@Qv03FammFuePk~$P}>p#zDpttQM;n%O* znEAj=$#$Y23ko9}|Gi<7N**=0_AqGGP=(#7$qc30xV-npBv)_832!9A)c~Ukwfv0s zV(t4T2Kf_?5RmMX$fiM8sv``k?gyDlL1@mbB^ow~?$PxuSQzG4uB@2ed7I_v|Py1o7PY&9*&xw~$YvcqQSqJEJB?~J z@G$@6gTDtszm)vw(3au5-p8pShMbG6Bp7kRUD7Dcn7_iEb{FEX^hYq)68z4oCw3uo z%n3b;3z_4i4S=Lm47pHWe!BZ2^29($6?a?Bz|q64)GQN9G$(LeCTdDIvj)v1Lhg?J z;FeoYrMO0Rj?`+*k)=|C2p93ErxBP}1B&)BUDZ5{;J27f04JwN0k`(i$cUTpGK`TE z?F}eSbeTE>(S`C{qtYxyK4YzwM2~3Cd%BNFshtl>y%B>-LSZ8_K;x&?h%q`-)@@YH z)S$T%QH!}jwoh>oI)4%c3-F5p^h*_9fBpTvw$EWdtz3W@<7QHV)5JQ{$lYAo8G_NE z;zV@DFLle6I3-T!ElrI)VKT?3h4Ps!v1}CvX`aAC02Ql}_KAqxK_rI{FgT~O;}FV+ zoBjy1oD!b>5K_{ZIbL1(#e!YX4+r#UdA|1@Gje%j6J{#L7|$~fBg_S&O~H1pW4ki# zhH|Sr(bRmpC_T5Q-p$pCPv0DkfQRAuJ<+jX{g{tvsd@Sk>0q-^fXoHiA1GLd(G2A0 z<(hmsBiwQ>3~!FwWNLHMix7qpjD$8j6t#$kxOu9)1>G9>b^5N`a=(Ec!mM&*kxq`~ zDN_yQyzL25{+ZlOqo==~wE+Co#zjM%K^a=Q8~N3ghpYs_6HVI^gQoVoP6kW_(%$ul zeD+~ML4FnW9B#7_QiTw7YsUD^3V5eYB3?80s}*A82|`KrACa?STyP5NO9njn?#xpG z1es$z1ki;%q1=3Ct&e=<-UQ8Mfy@@Dw33LL^(&d9EUR@=G)AxFH>n@hY-*x{#R?{d zSdRGCz|CU8J$|N->v zMZ(>NwV7mX;DlmH8@lOD_+$!|QyunD4hpu~Hwe7@94M_aJbpXK5o<}t{s1X0ip zVjFlRgnhM7L0Cx_B zz{o9wI#YWe#BfL1TJ-rnz zgi70tgBpaz8b30Ht-)Ot%JM8|={e|pA3+N;5n^N&*6YY#(KbqcHDz|17Z78-pnK~V z2&cfEJ2$h(9++l>Ygt7-<*DDe1*TpyU7V+*n|`$mMp*me*?-I9It9IBN`z{l89ZGb z1nkh=)o?1!CGS?zrOS7r*2ft}rS5WQ<H-IJ#q=5S)%=Il;N4i_o+cD=ca)PI_X<$L<%yj93YmLW~L#chyv< zqKg59Hywet}H~GF@?}NY#;9ZAb3Ps(8=9|TmzLJz9#?DgEon3`RTsErD>;&!Rv+%uW zKnQ#f8@A)JHSbvQDAZgG-K#28sHyy)mBs z{pHgCs`f__LzgSgDR}x-*xV|%c>G}RtC8J6Crzb8*_Y+*CA}HNQ>l?};$!p0Jm&#& z4MMmoZR%RQeOIM<7u~@({(}V|z}7FXTE5<6`yIpwhpnvKa4m28VaV=~K;VxFs>l%r?DBlXquS_6F|SUUkkJkNZML| zz|QdNfsCoO^i#A&Hx{+$i6|Cs02$50VBoMp9?jpO@|)9K8TF%|61$0^VTPM z^3-H4SSMVdIBx>bZt0bB^N3kqbn+6~MrX$&`b}_8hT$^YRg-_NkOuRs!wddVE4C?; zHd=Omlp}DHE2BR}0U=a>LP0tk8pGNXE`s(lZkP=_6N~pg>iOpr`0qi$gM%+52T06Y z8*zZ#%eeg)Sf=*mb3x&GtD1;vTwlJjZI2dA0Z4B3nT+`CaZqRZpKh5le%Rf1O5W&N zHbt0|Y|OtYIwpI~L<=2eAY6Fr{^}gHxssHml(eo8V=DynLN;(u2t5xX;qmn5oqrd9 zDk{y1@DOP#M916Z$OX1Ln8$5Dr3((FET&zA>W_iE zc@!2RQhpg``_yh_ScoKxsz?CILWu;B9RR*~Nau9}21yD6x?O)a8)5+7+Ykt41)Ut| zc4-aZSz3Oy47vAJ4Bw(wyik9NFX4!Ui=d)&W|Zz?64Wo=v!|CTC=4s&V9RQnF~s(8 zpc)F~o)E%C=V#7Br0Y1za7x9H_h4zdi^hq;_JssLlR?Tikd+R!(iIZv0iO4f$FR!k zLzR=Ym1hSj>J+a5@3x3xs!-KV+9`N_$`CN83~t{!r0Jw4DL^U+M>+pp{PsN9(lnd1 zNuVAg2(n5*RVB2VPQ34Qc;Db0n{2<92VJ`~zOD-&Rg=XCqQP6pHWUg{N&taO0THT} z9{V-^uC2}sPbObI8)QWaqM%>p4su1;nUqHgbbXFZ!7*$ISHN!*=(eFKzZ7zGX?wEW z-~SBCz`^`TkxQ3vC5tzF24RB-w}WT0irFT$U2!FMqx|T4>yjdVa@qJ&%Yv~dL5bJ!MMLFD#|r3;=fYZJmUwH|$PbpTJa_Y@ zYNCdo(Vwxy6lh-28*Z=e&i&|eyYokkyCwrm$?wcX3de#(&sOl&p6K^++nLSPvXmtO zlOdVyJdydB+gQFe))YVyK@~~g5l0Tyg6c0Ijm$SKAJ>86G8k=h#GPNDqd4_Bs>E2+$K5RAq$JY|Al1Ge zeL6Ejd7{Pvye$HtR!zzoCNt3f)aq$V(`f5toU&J(8iETzqT`C|HH2ah>yv~Yu}?L^ z?%@5f&1JiV$6X3wPPMZ_*cBfa(&kHq&)Zad&dflUn}6v)zmC&N>BHkEhTpijKkWO( zG2DVtC&aI!g}YDHo8)>Scw(O$kKV$U$c3NM+Z7?dTtJn)9LC|U!?nv{$M)}|%<;}PB zEm31lmsc}rW~QH6`^Ua$EO^yvkL;#s?6ns1yh>qr1!^S1im zXo}maWP3;k+-6_!?(oe2rMEv@u}w1iMNax7tt#{1*U@Lk`pmECnLH{hh{ImKh&&J? zh$I-5a*ap~D6LrtM9B|{yNv1pBdTVQtoaskj9#B_&7w`3Kfc#ffXq50UV_B@76$;` zbjwVI=d=3nC+}v|I|ox<+d1#?`K!x!&d$}swn zao`ji(7#Kwp><~!JKx~g{PD%G@s4b^=g;b>8Z4TO`=(ZXDLD-A&#kGiq(f8OHIA_X zV<9gC=oirhCnB4dVObQX5g2f3Q=hDI!8T!`m>#XwlK4C_lWExxJjytz@68RQLkl1x z%EsmmItU$e27&Bi8_2d5?TBUn>h%Y8=FCs;O$h(WbpL`5@#LCt>;1Z6(;-kK`beQ zH4n-5t40%xIkZ{`&%AGA-HtvwYs^~0wtjA$h8JMa=wf)PC^X#q#C=fErc%IIRE6_6B>qRmm;sLC;n~ECI60FkIa%U{N}Kvuol@OuQ^mCVD2$-6H6wDpb;~}4K$}o zggi$#`j@4Mh{0ygfmymq%j$)+G34pjf0}E>si`BW_qwieW$G7jn_S1;Q~=2jCKbwG zvYyQxZjRhm1s57NeP*-)UL1nnm2GQ>V7Gf-EcL3G5l9Q@-><_loFQ=e6$^g2KOG>0 z^%!bv?VsA0-T^VSnX>2}C!Y}kFTO!EgaX)$UT72l!$@U<(k!l61li!Ez6>Ai46s&` z`ww6gc<6UP@R~2QDPeG5nh3bFBp2ySZ%cRUH_LWT6o$m~6(FJf1s;tBKLN9VH&!YH zx=tgUNAEr+b6@;GCW+AtxZv*KMSTkx)!oFE@I3n?! zWk68bh3;#~NL2&uP?}h7W7y8(A>+GU9{!B&nfxX;Z+hN7QLqlOKI~VK-54);^@K80T2D3G zl5ujh926j^F*BV7b+5wxtuOnv6kafYdvK}!yFa9nzq&s7Snqyq&BUa+y|M0YdOT3M zNCXV2l61OYOk5@kLSg0){XJuEEQU0fg^w4GhiWLcG3o0RK!66BA=J*N< zNHye+#gl0Aq>O~E2D|I?tz^y3TxOcwS;26Ds}_DLy;>!1xgvuf7*b^eOb}Pb@$jq@X{i5(YbXU za!93R0G#QV4UJIeUVhBFIqB#_p5j3GsP*U`P#YYUTG)M?lD+r%Vr-amygoW2fpz)l zYov={ajsBxCXSE0MbIxg7qls1YPyd_3?r84wY~MYXBESZ8NH1yM#Zcu<7}6O7`IxKp|F#^{VOujXsQQ8 zn$)T)Kwe(G?hc#+m;ZN)EH9{a(AB`7k|2aTez-`v2)CMEeDy6(+J&b3%#9@!iWdpS z$v=^b7i+9(U=u~cky=1W+5*cueg4v%9IgyD*r{YsPaxu%0MhU(aSI|z$FN>Q@&Q-ph$M+M0SAjNE73~ zR+B$H-vYP1eyL;~HP_Wd_U$0V!U)SiNpoNBP4mb^P(auS55mIT(3k~Q|CR5o@9d67 z?6%L@^y_4tZmsURqDVnH?8<6q`3?5Xv-CK(6CZrVz{V1BT~`8s&K2tuPXJao(72-I zLFGpL4}m~#E_GFU3fn^;>Qi6x`dMK zS6@*Ew`uiIC>m9jm;S^<5|7bl2x{oX-Bv5t1XED(vdCj!2(Gs5d!a$StLyQ$x+@`N zyJy6usuHi*!`(C5$W|Qx%}M@y5}$j|Z~Di0rMo_3(b?Pnlnf0_8%!dazQ?{ddSt0z zO_({^7c>^l(h#0lJ2^Ug*{K+T+`&A&c_bBVLFI@+%PhlokoR$Gb?(X`GP287ol}Qy zwP2en`?w`9ib?^ZyFCd!E41bYx18ug6MPY&Q0#}q)Dm-pxXVro<%2y+g|z(gBBW#O zS$&U~YId6tsH18t8s-&$F*N!qW5r2o7nVD0?hkmG3bgyhB1RzAZVuWOvHl5ne0#|Z zenL2Kxct7Kowo$#5Hn|U*b@Lo?g;>@TOB6nyJMR z9T|Lvqy{)o zX5%-FUl5J!=wN8&$TygrYW3%{IubzOk6f-L*H}{#_Q^gulHK zIKed#ZsOOnr7XnbnP{y)?ssy4O&cstPo{x2P-0OZ%oNcX>*Ij+vr1&z-I3Hij6)~V zFiF?+h#5lG{Yn=3XPbO@M1SFDZ#(XhP3{xhUd^v%&k@}BX*F^HeHc@A5s|(*rFC@U zZTmO}HT-3XI@;It$l|j|P2h5ah}WQqgHr1e<-iSINcLYZEZfzV)A5q@Y18K)AJ=;d zu}+KY#}(Ir7bga*?15!AtB70-6p$m6``~e18`my!A=2c^{jxXL(JrVK`qIkCOZ~0? zc;v=CKhlaI*&%zLvj|b>oAVhuOX^?$`Gc#VYmK_7HQeop<^+}Am%j+(*AM=iq-~Lc zXo}EJI0#}`%b1qMys-rvuTxCtkve`8n8HoNfskf!tmtGkN-$L*UyAr|y)<`yO~9yN zI12^7Ecn^UWI8XhHoJhYTo`OwkKON@Kioi6w*_HVg2U%B2wptF^p$uk43ksfj@ypf zU+^k9f|=F;t3d85H)9Y#!e(7h|ruv5U)5uHC|%4G+UqN$5H z%V+}N3A{+`Fop4TEr(Y#O9@JyD46tB``Bwcx2iqi!6Y*1%bU*lfrsh4(h+eGy8RX~ z0`tY6U(pn59K~pDV#F8hDjA4LFgb1WaFAf4igm_u z6~58x8o$(tT!2L>H3S?cB=J9RS*Hs zZP#J&Khd=*rf{xo!V0q%iX%I)<}UIWYaSZdC>7XHQ=#W`_FfYA8ATRg+%Nd72bF&?KoGg1 z8)t-&e_V^10Gz9zbLL<8g17O&w%)f-pIB6h;q{@znOpz0_AXIG8$O|YovF~M$c}P> z2VM%^X^V-`oYZ2D-b>ZiPQqfT5S|AwPx1C81Shg)xozd=yCX9R(%Rmhg6`xzkApVYu@{ zp9%oC*$hM5C)a6F_e4nDkK`Q=L{p>*>|R<3@#KIgH9XYl-R}Jj7P%gHlORztC^~Np zK?#)PbryMOw@$!=HQH@0UlAwUJGy#PaI(e)sVM-*K})0B{1btA;#BH;VE&*O-RPYH zU?>-CTC->M{%cBxA=YmsME@6mB!oYRQp(Ja%l+~%vTaIf?{AZx7D0in;7s|koO_nU zrs0DHkZjtdu2lcqm$k;f`ySF<7=M2?AVWq)1T=^X|<=P z?mtdJpq)|~rMDACSAKXWTHXi;q@xsB)Z-2YzzY>}6~b-$1MQ#og_M}Ngi7YK4Y(;g z^8@@fl;z;8zNkP*(#$->ZV<_s7m)@1aDprg5*5Ml6v+v-ok7APayut=2>{^EiN3N` z^m=E2xxUpKs;tnAz!nZ%Xi~B{QlXDrd+2IeO)S>OeHH_rI#+{d3^JCW`zaA zLMt*j2Yd;HaHOP{Gk+50*nTf{0xC3JdY~4}!cL;G1@1DZ;6IZdv}yaaYFZBJ;-$A) zk7cO33y_FYc=8Fn>0$J$$RFf-D=8|UbYXepJwvKSfHtM=J`E#?kV9a+Qca`24HBmn z!AeAR0CFL>h$z?268Pk7@ER^-fsu|X?9oXiPkVmBfy@X=@HJX0!ejrn#;S<@dFAK{ zL6Tv(QI9FPMh=zZ-I!I6;7$NVTv%(4HYmO?N%?ym8KW z$-8bvCyV3n6sV}Q=o zq|Hayuh_CN+Q5N%3$6**iFN(l6U2PlnW9sWYHT)Ra!y>Sop_p1 z0|!HNqX={qa8i_1qvUIpJu#y5y;DZNV5b;+vsn!lcu4jv!Jz%Te9RxhsNtvGnlb=k z7{WR>>=BwX^+-KM?_rzIVIypfzZ0RrMD2>nwtbd7k2ZZRw|*it`D>{T1qa!?h65{W ziL|Rf%`c8#V_9S=HXWAmaw}a%tz|WT2YW?%33=>fg<&Z+O-QVDRyzX+=rw4tD*mY3 z5hYno%UWOTsOXLb>BMs8jL$J_eFf9!1l`)SRQ31uzvvU+&QHpRm+Iy;d*h7*WImht zPyax-N`*=GpCh{vWJ`edKbOy?*LEEZZzeIf z&PLzYE|oHTmK{$e7ac3_A`LSI5m3ykSLQN58n(S_lAOSCa|qoxw>;y)l8H{^FmoOl zmL$2o99xrKd8iqxBz5-*TjEJ*hRR?GaiiG%tBdN5SrQIX>9+xQ@BxsiO;Q$0mYaEm zM-!}PW!rqnDQP$kkrmKobOYvKugj*^SQMnhOvq0ALr6g{1{Uim`N-<}I?IQ@?@OPjI=wuiRk6>b{GYYRXu9pNa6_DBQ7|M+*c<+={cNP?m>c$>B<|nR4iHx3;WigCGbr*ye6iRv1hZ$GBJpXSpW7j;#TKc zS~Bydbbp_#**XWyb}U)Ue;2&nF=C#lF>vi}MQ|ie+~uc(RHL1-Cw>-{?8UYCZ4BId z?tB&psDHH4V-5${oYW&F&~V>-<@+i}i#q_9-Cte*4eIR4X%TtgG4j zygX}d@4quINAR0yyyQ`ut(cg=x{dStA%KnG9^UKxHv(JAzf`9`gUXP=FWS-SwH!YP;lT z&2NimwV>A0Zq^=&kW2SQdz+ReAf7i6x+*3T-t%BgvL&6%1ZkHKK1L!Q>B^ek@;;K{ zo;qvLjAd;qmbxX!a|aRjNr2#q0v}V8NY(|XB@B~giN|w9$FR<_KVLBp%>BK8?XAvV zd|E?@35L%lXA1^ta}zf_d-^OYt<=#}>h*Pfl})H_>8GP}jxJXfta}c^M26xp0%TfO zSPEXUri(`|w(u3fmfC@%wk4r;8 z8qPIep2U=fL2EnxUq$CRR#+Wo1R??Tv6>JYT17*Ouak0Lok~T$o7Ls;9nz}B(ht)m zt3ETPi`DvMTX|XHsDI#O$QD{>8=vc%ZpFS%I@D<3MT(Byu9{p&+6`WX z^iwkL&Ukr-7X7*Qf83Tl-}N!~j4tC!kyP&SK_c+B)eO9~ln3N)2tHsUN%V;&z;=Y@ z18wF9MPysTE|Hk@dJ3?7y-gFI#ChI2pWGs{|7HlN<{L_Ea{DA7jpFJM z@?m+e3t_#_h6*t8Hp^9qSVlQk5Y5b`$OkIj_t>2}3*}~fP%-DN;(N;t?5EN%KFOfO z&@k*XxiHul{+b>HvxGYO(r*HpZT6bN55_xap{vp-kgQj2-lbm2^>6$6osTD2TcU@8 zo-(h@D|oi<$lN1thAz4RBzpTXUcwt+fw3+8XA#diP6=Jvn`>yOJHF@^46r9aB zJ2ZFCop$q^`OvdLn3EincD*C8rM`lYsL7ekEOK5#Ask`a^Ju#wB{5H1>_F$wuOzKW zeC-vWle&h-2!biHeA#tna}Z4MQvas^fdt$5%o0$hxsfz<^QPJFd#{vsu;F^8pWXq2trqU-uTj1tvZz3Vb)|MB5v3zkxi zZS9a;2PnuFhwK{f#bT1Gv%BtwV0^{YFF0b$`a@Xrj&gbflR4V-{xf7jt zs_=j|M>-=*71ga})C9gQPK20DOF!-M9dd9fkPfKiBncf#6&Z4;;C zOICJmdA1hXv_1O#SM`MF%w+i+{~w)u5=n>PEnU4&HN zAd|Dq3In@i)D^|=(VNh5oQBSw{`sZnwxAQ}i5(Glr+Z!cqK%Ets+np&bml6k+_TD< zBK~2c_&ctWC0@+lLT=wiOX_Ih&k<)>%{s?9`&6j)eD}p=PTmO3W z2~lcFzzAu9DPe}ag0!Mg8d#j4#@6mKXX*oeIFsL0;PHwveb?&C3~o~!n7KbjC8qC` zfYX};L_&y5MqNa|P&9d3`JG1yn)(n0Up<-^C{P_;+96e`bNzN=0m#=j^mE!Ps!8T8 zg%NjhsKI0damCD^ZsccgCo5>2C*~(MESTE5zJ6Tn8x^wyjsX(|dJOIJJsI@MQ*wR3 zd%LYYDSc5W2aTSxzwn)wq!Vx!FyO^TFt`>5K8bPmk(XT3Cz8tO+U9M zwN=z`d2slCdi4)4q{7ySk%(T>QTVa?3I<2;9S=ojTVE`lKJ`5b4&O9M=U0r7@bKD#*)W%oB|UF(~e1$hMS5nVt;F1VrTjvo+9Ww z_I-@<7!Buq7Dl+3a6Z|uPMVkGW|UfskxCr#ZE0$H?7Q8lsT{CAz%&cAOv+H)Q-RgT zAg~|9_i&6Igqis%rLfVw*B%Ho*RHJsK(_+c&UqqH$8H1lK@rFjt!B z6lXfV6NvIg))U`&a1arg@WRW)KVlv$Ja65=vGzq$a1_LyamO8yq12gAQ)2O$M8jScgsqVf!wLKEN z9$1^J^m`zw%RYvPD4(Y{uiy6ns$dwj*;ql)dM)N1=>dgXvVgXKzBr!5BnBLs-yQi5 znnx(bzly#;tdq9wSbi#mv4*AMK@`X6AXKMlXPTt7P3`@xOaY8A87u$w@jXWveU>IJHt_HU9P5xO_pt)S zP3LZH%-+l{OcKXNh+!`u6-%8y0ew#Fb^k4CEoTa?Y!}Ut6B@X6;?+L27*^zd$!%*~t7>OSXN!t4$<^$5p^)_5%#fNS4Ub+G+(g(D zs_y7k;&W9;!an2Q5ee1vZv82@yg1$3)8Oe59B8Zbq#5pO8ktPabF4wekFxV<;*wkj6pq{z=H;gW5l^ z^$zVGtbYg*`cIkHIhq2_%^pa%BuW6IYNA^mqfAY59!lfE7 zqP8!Uf`4eH0AMoark$QDwoODy)FWpdv-%RM#6vMC)(7vW7-^(Sxvb<>%NP0;GcHiO zY{|ip=34-4q7+Y#6kX_XPl6^3IaFCE;bl2+QG0I{xUP{uzu?U$|sy0}6H1 z3*nRNOcPe(yA97G7V^6+R`M~aOYvOhQm&wupvyF_6+;@G1Qo_?U{z^56I4~T3SART z)&;xl4Ajgdp)z4ukv^fK!qSRW^0qrR8m<3`9OObjuHJ-X$iD-3Ws{B@%;0!Ki8?Qd z&r6Q6996+9~4O#KLUv5qH{BIbX;Xd1?sc`IitKkT?!kk&_9-0(-3 zd=o7}ZjRD!|I8|)n|xUKVW=Zi>JL@S4^Tyf_o}vC=CRWahto^Lgs&iSa8C$p3@fix zbj=oC&2=b!5X5+P=~MpD?;0E0+D`tQxSI~F*|Y@Ltw+DZ)D42ef)_>dh^scxv+Gwv zbh$@Z>E?DJj{OUC^TSS;C%M(kI|mLAor7Bj*%o_7Kh4saiwUJi+bv_OV$De}v5g3d~5J>EH%>N-Fxq{&-5(2LmW$qV!cR)X4LEZ8CNV#))y zxJ{t#d}X9IKp+_vOtAMnDdt1s$7a72APmVDU~Qao!jY5QFc&XCPk%z!Cq0fr4R>@p zgA7f8Ets)-u4by!rZMVY$yAXpGJ6iej7<$?<%*x^W+CFBA__D;k(SERKqFTGsR5^I z&^+^)v~0+6uD(&1`Q|(%j>F25H7YiI_pvM%)hbCL4wJP6XX4uD=d6!Z{I7InEfbX4 z%wdF>Yul0O`jZ?ii(hut2d+sOCs>MFMT&FEl?of{Q|zYh&{t)yviZw2_k%}`1SaJ3 zB^^I=*j_)X2l0RU`U=>#+9=sDGc?q28jh2OnVFfH(=a#8%*@Qp(4=8zW``LXW_<1L z>+b)r-o9hW()E=`pY5x2&&+4dU|p;$X$6b5s7lRH%@h^cIqGV#IbWrj?(I<(BGC?Z zLmg=Hv4?R1e~vH@pc{4LA-#SR=5e3q1HUC>goP8p!Wabo2Jwm<&HI3W7K%Ly4MDq} zB4fy1th(oegH-A6t!&q)QBF8Xba(wm-h)9eCtHm|GgLsF6R-t_`m4Bp1|bb0yzwP9 z`dcE?!U7-)UX#CjXRu-vn|ylzqg|`^jWre`7 zg$l_QRg?-48y$-t5x_Jd#Vn5I4KJ~V%pzpUDRiZNb0v5K#`X!?Wpq;bvQ`(pjT@W@$e29a zkB^@|mp)VO+$xIKX++rQ8V>`t^8F2~VU0vgv&wZNEWr4&U^CkYt~mbw#3){<;4nmH z#(L@vcFjfgV#z9h!fWGS_9(LJG1IrP4}POmrG-0k2qoaldx|Br%;i@Ioa;@{IzKOD z&179?Vy<4K1D{Y0qIb8*6Vc4H!Nb};8xT2LGk-J$Ipm(9uOOOAHMgyD2}J!%Nn zQ);aymGWkZHU*q#in-%Mq4w#9iBH1HFYD6QCz0+n+26>b3E;{jjdIY^tjn{B)2v(x z({#w-KsmwosjbI|hPZYa%WovRy#k&^6K1@m%oWH$)f(+TnU?v&Z(bnsWlsA_Xn; zXR#vp0dJpB@sn8ZcKm7Lie5hj3)Tb#RHG%*rdY*LS1X!K(bE;bbX%=;BVUMU6gz;T zOA6>9uJj72N3n6&KL4^pL84{L`VyI%h2zJGA@LnUzqg7j8OCqVxxmQx;=S&LRBVwI zi@eDVMSeerBEw5zfXZI=GAl^P`|;^Dh4W!#Z^ez&=#VE*&hZdFdq=TbW37HKHU4>M zntU!5)2U2J)x#Rcl9zMPsx6^DqN^{1x|}9kLSN3KM?@9hX~py#Vb8=wc-mNs1BXm} z+vWYl$iz4zA@q$FH>!mM0qP4{%$?VuNy(N}?sHZgm-ZSp63&aXP%4933h((dKBdKa zUu|*V?MV>(Ry;9I-HU|C1-0lVjUCq2Ie|u2n<9`xL9;o+>+D;CdZ6ki9m^*%nL`;a ztR7A@sGgZ&2G<0W^Pus_w z&kqjr1FtXPh!3JAW6BVw!|<4UgbawIJ_KdE(EVy`KjG47$mZJ6-X*u)KQIZcpj`JSo_#5He6-G#<;bZgCq zJP}^rmdg}xx$#JHu%BNBj>NOb&Ex1ETirfuP5U*7VyOsnutLdPu3ph9_IwDWg^7jKMRDM4Ua}q-datrsZ&F9Kd_Qay_D&g zH^DLkj;%E~V-fo1qH|req~Vlc`4W*2&u6_t2=8s_t7vPqCRo&NYqfH@JAs!~rdmp#R1=9r->ORU-f3!_ z{gciNomt1Wi53T>rYWOxa%6FT&{PZ}(>sSt;iPz8>c^~nck0XfO?Kh1Zg)wtKwzWC zO?Qs%ueED&sJ1h(RK;<(c1bk%whbP=3JHT~jN}$|ld^9h#~P3jPVH+lS?(BA z=Sh<&gAJ028CNNo25>$+Q z7@%Gh`o&jBU7$IdGK_yerunpWjEi>DtS8Cu1JPJi9c{xF7Rb#iYp-L?JUyr=r=ws% z=XHH^_oUTnRQO9JypK<4&0ugx3H()}$2h)j6ePdNlh0($s}=s1ui9hFjUhz^-|G08 zTg-Zy1XZ5s_|jB+%Gqh>gz~tO#!if_{X-7~3jXO9n7yI%Gtg}wyAk#XE!WDXW8`FY z;_;|e$V*dAA&docvg{V~avQXJW=WUxZD^Barh+Kz<=5Hiit^RgPwG{PSWrJSL-TYZ zBhA64B6Svc-@)&K&achatuEbHk_&W98mT{lX;kWheVlXJ=7k&=E;#vL ztm4czUSx@e=&@cZ*N2=VcPt+L+PqlWfQNSqrgBML`uU}4IyoJ8 z3%DhzWpkt89iC9~JoH^u zypHc%mm&IWCDmabp5mm%u*Qu#aFUw2jZMvHMZH8N-Kny?bZ~iAOB6UGmFyf>&FAxC z#HL?eaLxgQm5ZA!U5R$N5~)EU0<|awh0}p}P=TP(^SL|1+U(u_seUvw@R;SH!yccO z-bHPqNkfB4l1LTw5EGKeLzKyD#gqR*j8E7}FEP>5KLQETTp9`9q>A0BbfU78b zg1bAP{>VT<4r)b^U31R8N?Py)8;x-JBuDo``GJm^#f+*6!+|i({pOYw3DzO$Ay(7j zbQ@v2eU?g^H$)0DC|Z?P{<169osCNC!Wt?+&aviqLaJE4*BtGz=npd3xD~iBQq^!W zUw8Y)a9h@|q$wkY)8v7T9!eFOtuB@EljP9py#SepJo_2I+Om;rMxu>$KfkR}eO4E@ z+6WOBd}URYKY8!-V+MS7b(bvqJ zPXO=&EL{hI3*Re-9G>^-SMAcjUBHg2HYf~{f^Tw9ji0*a zS>4r-7@))vEb-$fDq8Oq566&0Q1w=u%TQqJ!uxff$ZH8e7Hp28Dj`N*XE1>*u0k77 zPHror;Ct35YkE=q{aFLC9?!;x3X7(~J_sNZeT!8nL&~8^ch%wRDM%rl-d~&MHlM!C z%ipBovtSxTPPzlf)P;3v`UdkNw;&Q~PQH9VOpk(qK#NNV3n){{-;d1ZhhM)gq4-1C z_j)45i>turJa&pqnuM{$D7dP8Su#`6zqvHL8VLw<0@GAPtpoyqY{HE9mqGU>(RC1{ zXq5hmN7>NPn)f#M$bE(lUWdE)t7(}8nx*=EIm?x1Taj`xyz)8Q?D8ed4>|=;gW={@ z9lVF!g?WUEIb^Fw`Z=in&lWKy)h;J>aKggEqY736WXTW2gDCldC`RZ9W@71%4^Ba_ z7DHC0OIQmQF|5Yp1fHODQOxs^DEw3u*RoE5N@Kbb&>&Q{n;(hBH?K`6@bcH})8%iw zWHb`@PlgxD6t0g8U`IhDXojIOp)v?ER;$Gp8KxVPNa-#cgUxim=|kl$ETL$-qQ+&V zaI}W95GGkFJRIGqr5sU~9!HuU$GKXDcJvtiNGlI$`K(BaVH=WK&m&2WG^NrkidE=t zEx9M-I&Ktn&wIm=yEl&B&jERra>XSlf2G{79TFvdg8L+X*g{N}JC#}Zlj*F3&9E{s z#NrsR0#;veRf_JxbmZWc0g^2glSv&vJSN*;zq+yHR!xn=fb>>!wB7yw_t?2%S-F)> zC&%a;Za6>Sk*Eh2}_2Nje_?2k#pHgPb6w_ zqfbch#f0{Qer~ROfp?=EsG_6xm3_Ah$F9(s^lnX9SViP&oV#JOI$e?-H#Djky@_>W z-k*;jb8UC(svP~wD!@ifGnWU4vsf%dTV$YE~s%^(=;OMBTYAbL&#KP3`%^ zn*ek?cx^+{jFFscy`N52;@}90_ZC}F4YWs6(cCoFOOyFwm_H3{0SON z-;}V08r1;z;7m1*`R4WJtE|d7`tB8MZ*0rSp|XyMehrdm=(%K%+o0xS5*gt% z(LYG4P~>0*g1t3%x2W0HB;(G9VFWP~@nT3(H=$tFjVB}q9I9C)g(kB-grrW8Psusg zG?a6pVCKPP6j+EDHfYss?S5F%zk7y^eZt2h&Z(}Pn1qj&DTnuhIfoJHu~$Z|Rf|F~P=KqdoEIzUaV(t*9MHAw4Ws~S@)f~_v!}!B^MQk4;*B*|<@Wp1$ zn-~03RY1Kd%E&L6HNvj`PPl;>CE5L*zHKuh)x<9}9LNz=Ikd=RN}t8qpO485j~AYq zq98cOv?4QR6Nm|f?h(qQ`@1w?XiN|EMiU%B83{KNF{t1YQ+;7~zjB(NMRLE<$jQ~0 zdO1*(gEMyUH8)qDdV4MF`Bdq7;=bx%T77n*vw&EQ2C~bFnR*(}hmk~!L%j8e%gv<1 zYARsyas&^nB?!(~k}>l7l`|hD9Pf}!&^JEb4^lr2m*SL3EWbORqQDMN*5p&mEAYHN z6X*!SP%nKC#llEAtr)ulrPs@y8WScN$-nVK6Q2o7k`f({AK3*;o}_DYVmTVFS6qD! z?zqZbB`kvW^eyQpIH89mv0Q06XUOzS-m(u35)d&c&;JId z#1h2?Rk345JcDus4Y1YK+2{nluuX(Q-;0L#gACt|ecP79ePN(5YDzMfYy5t(RY z8i|OK=NI9G##k=t-MTT7bud3MaI}q)aC|HI4jyOH#!KOcLI1}PPC`UhxLQ!(|BsKD z|HpI+xHJgJjm%#kvA=GWu+EWro)91)0NDRD&HHa3F$WU^V`~$DwQ-f|n$4Ohir1l< zv~go7euUFmYbS^(@o7A6s3xgH0){AP)i80>OuW>Y2;AlkFr}GaFT4}OnlEp2j{bm4=-XgzdE;1VB_4wI1hgtBd-;7onV{4jGSgaIe4f%8mj;I1MV+GcFS}hDyF{&zX zTwo07%b)BDAEXW{rBoTY0j)YI?_<^uv5=YZiCx2WW=FK3XZyIWufw$5itDbm zQ$@4PWX*18Nhpz)lEPj(ZB@?3KHHWKB}9QsmWIdCB|Zp zoW3)1-&o%m%3`~tk-gqywU##;2!8L;Vic83wv6dXErU$gtWCW2!tKLi;rM3V-G`km z#ef!kfuOqT21oD^g(gStn4Ljk>rzmFP2MlU`CxkToyIla?5jfm+`#kg{npot%!P9` zVKbz?aU!DFL->?+_1@L1909WCC3M#ddnZu=B16$w z$aZ-eN3q5mHdazGVU5({(^&O_aJ#q|i;9k?u*^sXGNX{<)y%;wSZM zLMN?MiPf^}!?@kAH^;eoB;XI#)B+NR(2QELx99W5n=Q4Jz94&;zDF*3VEit1IKg_e zln+lZue*`efT}%B$wH~325QQIfk{IA74?X5Il3-d7N>*`k4@-K8@0<)U`Gi3>G*^y z#yY!Y6Z14=gJ`m_y5vt5tx69*E=`+t*zGS(U-!B)de^bd_id4ztt*y8oT3eCJ>O*x z?%!^PkT?7K7g?IXcA<2onnLp{fR^D4S}Tv!&E?Hl6grc~5##~pV^z6A=A~{28{yW} zC6X)M;q`IvEipFq*5F2g1S7GBtzSUtBh;rj!lj3_$(fQdQ&FA^`U1Yrs>SeHOQ$Tp zZEbBSS>yU)HA3No>JVPm#RmOMT`ATwOmS9 z))M0fL~P8Zm$al6D`4xbSNcrfFNte*w4NaIdEUmLfn>IUZ_X>Y~Y!x5fYWy;9YrbIH3o#vQ#BNhCf^xENS76vx+Kw5 zz1SpE4$fw@3cJegc&xq67^hhme3WjKkqZ&>1YE_n)E>M+L)Xse`(?=Q<^>U#wGf-`>%;6Y#Y>9Td zVt@;s$jnsi+*+@3HNosh&FpRGbpgPrvKO+Xiu)Kz9aQab^%>9HcUkFyY;y306Qn8-UtQW+B?e56vks5^ap*C}E66*4(=4F2_H zRQem)0%Yt~mSlMNFk{{h3-6O+vEl_ub37--q)MKz&`47975P5gXcTpXWUi-waqEnrqy-=1n3N3VE?JScA`ag5eK z(Ck%Y{I`~cQBaq`wOkFEBp$O%zgRy^C91urxy{s@DCxuBQjdme_k~7tSQ1mC-#jan z(iE+Ke`ipzBA6bl2i4t{`bq#MY>Uc41)@0gqEGJZKfF54Xf3jxz(7E#f8S02ZA|MU zP+kcC`%LX`7ten?v>KTk*qE7E*_!>n%_jX{ht^Y?PnTbyNJfyR^N%L%wuwpzG7r%9 z_!VfvU6vL5H?gXzQ7JcNh5a_^vj99gMzAcN3N~zMKJ}-%D;{~= zAry^O?`W&cC%Skhp6Jm8T2y8I$jR?qW40gH_Gmg+#m zGqZh$tKo|1(tLvA5Qp&n+c>{iz}UzV^a`ot+`3out6_4}w(xbatQ#w??&b?MyKxa( z@xCnZyUO4}tIk+A2F-Wl1@yo#VyHv>!9v`8I*8+>UNxt>v~n^<0TnqG;@NcBrvT{U z&(rBGoVMyy$7^4Z_UYWUU*E)4kR(S*X3b50;XMDK_rMLvSYiJXmp%9BqrJFrZPMW* z*f1B-Lu3#arQ;$A!iSD3{-kH#*@s(L{s{ixT@Od^-(8R5UtQ11+{D_%@jo43>5Ocx zY#r$S*bqCt!}7e!a%U1bFX1UQ!5z0gc?Jv-vsTzhHGCXTsu zEh!l&xMki;j6jF&+A7%nJdW}TF}$S)$lr+remPMH>=(KsgVZFKc+Bp{gUgAp#YRyy zR+Uh;mB<9Q|!&&sEq2!#i?cEu?Ckr=eNV9D?LsS^J zUEMM1f3srz4eb@=k+9(xT+4aCDI|+iUQh1Fpw9+M*c?Pq>yN&HmHmvdA7R<>u{dK| zWPMRxt9bVdp5FKnfJzx2x|hN@6^e#n+)We39Rb!4ssihU6;_`q!n(&a;jhVboyi_w zw{+gCFu7BY8N3PA1JgWH;$W6ivz>J{@b%OOehQeRE5dbie6w6aX@%erk{l>I<;S%v zS^rcp>`>9{B?H%jf+i8#(*a$s5B@{sd(yyH3y${z2NyRc$E_?>yBITW5ZCTr95U)h z=&+W~ZY_X)KzHOiD_9Bts9`AZj=C1fsk|16mb8PZZvo~2hP#j|#I5&}`!CLHvUqAd zYxm&&K*UO>X4U2Ez&>{5Suua?;`6cTSU{K3*uzt?(4?Xea=cu=N(iUSf*L~$IVh`i z7>j<5XI6O`Yz@%^cU|k?#LD~HOgf%BpQ(~W&Wya>7w%*4p%>(U_2^H5`T<1S z+*8TR{0SpfpN&@Fi?9_hUkb@a{lLC1ezB6aCe%ZvBT!x3AHN8%`-0mE+p;bq&_F+! z!MsSMfWiWQ>|Pn2lcN7YD> zRh)a3nT7FGaZ!ZoapKKdqhcagDccaS%v(R0Jhal29HX%=pTG8!N=-dlkMk z6RTbb%>eas2XCL?Dyg>l3S+Y|PM(q?qd9FN>R~7lMi<}4^}c6v%5&J*0%EM~e;j<` zfHiHe|Ftl;MyaSE_Z%R>mXmbSgU24FV_~VCyQ>ph z+DRdlEvo~z+9Q-PxQi@y!M-phU7`m8(=JAf61tSjS(&oLE2WfJsW{wdDRX3A9#V|< zi=(&!^1!>&qq@34j@|lGRjezR(Lp>N^c%R+DBnXwqCvzuPO270z$Vd{3U2KH($@$U zTx^yF`}Kr)iPBa@s?%2l-ZPI+(~>4G@GIaC;Y@=!EQ(R# zTNRJa&P>~W+7nrRL-fZH2N|Ydc}jW(Z4lvje-p8%4DR0WZvMHoMi-iNg0BqQw-EV+ z^+r@f052ajvg<8>K3H6*|=YO~T8Evl-r-B53C@ zo=YXQZFvCwqa{+Pwv67YPPnsQi<0HbJ@IGQ%wjtdxf}K~{#7xt&%=Edp=g=zA5TkN z9SkjCzqkICNyy*q0*D+A(1-os`Q4gckm6fXPwsJ|lVeP@XvM$hs;{;{g*8oU6>nGq z*wj6_#Jk(5xJd-2;mT1&F4STVQ{HO6r^H+dIKg156FpZk2B-%CmcA0e3C_*tl?S=# zrCjtj7jKX^<#hSh(T8=Hvq*L*T@-YOZ4tA7#uAE##jGu^hSvl1dP$h~o)PUIgjsjt zhI~EsJ~Hk~0pkpeHI36s$L03RSk4C}UW&c1&6v}$iHvgBoY=6e=N(`kDCxdY)=z^~ zRsSVfRMPvs1C#k8pjx%TS%=m$W_~6PU6eyk`!uK$(9c-|hBQ~IU}O%G;OZcjgqFlP z$PwOxjP&$bFct>O-PE(uWgV%prN=JT=P4xExuEqMjYTF;Z(3f&VXw#A+rtpS>&rog z(M1ejG!Lzio|dt01)_q|$e7Ek!-SYTVSl9tR+EAMFd{o=9d(1h0)Y^rMEfhx04%jH zzuR@_bpp2!FPsDH^`dGS^8V9C8Q(Ny92XzO!&3Uq3zXT5pj(CjbwDDeRXUK)+Cc+@L%;n}U6Crd83J_)mVj!G#_ZOdFiL zhDr8Dc=FxNg?P%>i^eL5;!nEF=uAcQIa7g3PzI@`^;3jDNm&?Xqf*Pk+&GkZ;6|)I zy{gEHNek6rsxLg>yqwCd;sAS70CU$hnhFXANa&ibj{$-2l-ER*Vf7taz)fZ5lbgca z-?-^6ylPv@JCPHLJo)}snsE{VyF>JCIkEy3)Oy?KEFWAvT{C< z-iwvWU*M2r4wJcg81_Ft=AMQ+AY|9cK4lhsn6G)BHdZxStBBGNRYAb58GKV257p~6 zk)QG%8TO+*mv(;Arrkcf99d4~W~G^FS1#zmOul0uSK4 z1oz`L??(oJ;X5`BBn@IhmCKJj zs~Snx1-*PA-UU8OJN3c5s~wWTZJCPT#-%y!x&rFjy>j)V%Ipze%`r(Co{NN{G{xXd ztV1tjJW_*|meVj&ue+E$+BuIqFqrdhqkX|}tqzySDPe);D&A@nC8m%j1Z3U#4n=-N zRRVejQY3RGYivAH_q6Of>w14Jw7e<5YGX2rg15YQ-be(n8NqcFNk>C7ip0Q!-z>I1 zhAKiM9rAo$@p^OI^+$r+PU=jI_${*OvHhV3pkRF9|9fQ2ANlT2HTwN|{x6pMuK=0< ziSa+vFaEsqPc{0v{iYrNk1UM80Dp5N{+TuKho$_jLO;9TjOM=<@vl^ge`5SeCHSY# z_$QU%Z+-ZgLj4otUl|2|LH;*M@-IlEU$x>tLHwPV}1?POw4GSS4gHL*QOCbn(c{_=a@bI-Zwo_oJPdhcHS zR6VO!Rjt*ld)NM%C(&S+W0G?eF|)Li z^maB=@s?LL@wPGHHYE`hfaUY#`6940b2TFJw6nE$;ql}r`4=zG*ZDt}8A*u#CE{ws zPogQONF?ImY(~V+z|O!#A^=Oo=WJ@uqbw@^AIe`XeiBPpS4SR3Mh_1U1`k#S2WJaL zW^Qh7MkW?U78d$133?YVdsib*dV3ere<=RVA!_Dg;%w#UYUN;0^be~D5>6II=Kq4U{;$wK&gN0H@-(y66t%K5vv>Jo{VzNI3)T96p&|~p4$dlH zscrV9_OIUlGZsAm!sHxGzaZBC1CkOEQFL}Nx3c}hT$Ck*iKN6tIGDLPIOtgz{!Q~0 zIG!(ED|0VVBiAn}7A6*UdS)hiW-e7`RvvavdL~XDCZ>PU{!8?0GME~<8vXwY|C7%| zd|%>nay*h&F0KyFUjMrE?<7|-bNYAd-%VSqe`Plj(Z6EMV`TD=$N5PdogGZwOw3IG z)$KTPNQm%#rvJ-_t+eeG-7f2|*k|G9vCHU4u6GPD0$cbvZ#7_5B} zP5=NT(CRB3|04_l09CwOe7g)75GlM{lpKW=SuW2InM@md8k(2`1Ex!e{ugvt`reqx z-`y6OI78YcNHkGggU}C%71)KKT&f^Vn+nSU=Lu|L67%Hc=Z9wA{tG(I0&Mb%#YYhi zjj28p;N#g^$Ld2!mbxzZQ3Q1x4?1?V^6ZBF@6_uNn}u@U3j-T%=_6Q8oX~J|HCpJ{ zZwl3DstKH-deS^iWIl9j6~hprHFEs=+Y$*X=pRg4QDGv6cF67}eok+gv{v-Abc{m@ z<7i1auc?eqWX`O}KlFC8jzX|WBQjvbp|>pph|}IZucs+#t@j@N4;2zpbj8e*P;f>I zB~@}Y=JHh)BxNJB92b#BB@mDVAQZZhWPySR5lkpJ(Z}A%Rf_(F4>T`S%9EjU! z4BS9gd8bGZv!V=|S}kD>F-`ow?i4VNl3FeRz&F%?4iG?kCKdod1dtL1s(NO+c52m= zNw`xy_zv-t++L`a!dvD}3l-G5)@O_#EUbm?jip+Z=E;txn$84g-&OkOZsv0GTloc$ zB@DBf%t(?(a*!fC8r4fZL=JYTqFZ-2+g~7W``v9FdWvH7i009-vdpB^`yD&8x~ywDb-kjnswVD0J zN)*J66uLlQiOw$r(aynuNz{j#^o@%%@LJ)*NDD=6C^Th-LP=O<<%$_5*g2BE4kBn8 zoUoAq(129f_VkKV%v1k_Fz_)o!%~0=AS?7c*`m{dHn*H2`)FzRhD{!wkXppG;~Xhz z%`nXz4Jni8ctRV-^h^g+yaU0TCq?k|b8_Tyr z)@gqZW?4V}oU0*oBygO8_b(I?h$U3Z$RnvL6-!`|WO=HS4L+2F5us zUJRHY=vSTH(B8xfS130Ravh;|okQm#mph@AiRLh79W4la&ZKCyLIShM{2K;}RF!xi z6TKHo8UVlCQQB;PJ`tAn4bhZ^n)RNdu9(ZKq5mNkpuGm^c)k4mebZlX<{~~ap%}%U zUxpo=11Xdjbhk5Vf36F2wBkfq_veD@Z!6*L9gUWqiScs`HT>uqWH9`Vh|{X__&~NY zWK0B{dELaH)C^UCKRw$=_~jhlub>Av3s*9=a$1Hy3_XbRr{6?ri3siTCh-N|KK*k0 zuGn($3C0wvb1;UJjXkAMggNoSflh*wzb#u@+M7@5{97Ft4A2q4&~C&0SWgJ41sgz? z*g^&>f9sL~kpq|Ee+l<}G7t{msR_K0Y81{TDfbtOR_?*$m`5gCu$QTF8pi#0UL1w*BV-(R=wjt~5tsA7lD=iy@uKtLTa6Uc zMpV={J<30ukf{DhRD3nU?i>mAX_@2wz(N{jit#p_A#k+MA3dv(!}%n_-B87vr0E#V zxMFogMG&(qKd92dzl8=w&<1ZRgX@PdkZ)wQe5l?xf}oufO6Wjz&q&yc3dpCG#-mQD z;sqRZKXrF&h|;tbZuh=Nbw3ARzK>k`FNW3*>Y_?H$xvKyR`BQxLN6i~k)WzwMd&T8 zM)|RtwqdCo7;g`NU#UBs1>}0WH<#m`mjzpEit?UR_OFAI=`HGBpA~QUwL*tsgd1&S zpE&0J>@ku8u_n0S)xG|(Roqc&q?#tdS63*VdL>*Ny$~nCbFMg1=z84H>AqQ5u42_r z4v%TFDKzIvXKx19m4hl>%{Z}st7K@nOH;$$nV)@_6>G*Z%v}np*orHguN%^~a>3hHzT0(-?`f(NOf4BNM-~imdYLG4*|4!g(#!zBMY6{8FeC%qj zUU-lWd&SHh*yTCnQ-^f`%s2eohQnrtON|$b61njwYd{h)8;| zj~^_J;K~X${sx{Oc?ynpO6-8*PW_0jrwmIOue)#aOh$2>%|d0Y*@n`r(@K)FV@xNh z9+#ffx46^KICKk&f{>3VGEex$3}bi`}fV`dW2S=lo5Ogv$jk%6aMM5a#>U-B{xOr z0MQ9^Di+aHmnPLf8ByFNNIdpBeAkpy%5;&~;FfyBfcTW5(|1nelqkdzdKFv2qc!pcr-2odG$OppuYaB*Tl@@XNI_ z0XRcEv9aghn&*B`i-bP+s|NJ?1KK2AmTrYRD>R2E2u(e=XM=5VGx5RqImg*>e+&F- z$v*VRV2@P8k5Sd=ny6CPwA_4?|GFmAmU9V#|5fx75a`0j7~n#p33_C(&4%bjk9**} z+<1oC^xl6mJb)YrMSENez$JQQxBmf4t>$~*PxaKRASlOPPN_EUD+EsfP1W@%A?WkY zThrQHrcxb-@ZFT2#nzi9hH+Gk+R7|2?yn-xmSO-l8d82&IjfvWDJ3Z_bqU4dEX;gq z3i33%@IZu)FK4~A)xA(t%|JLFR8WbIZ<|Vdx^ZKU+18~%$D_`s=YU?zJ;Jx7-gZ9D9u`tPTZdUa0S7S;h~z3wNaIn{W=CLOhQ^& zY{AerG?jS~SrQzUSYjF^IK#hP#ua8#$E2%6Ml_|^o3Ipf-X8B2=H7P`$1_`rhtV)Fik*t9LStN&`|*gsEc3j*aZkk3Ie>J zXBP=O1b`#^6wVAJ1Mkk20_sRl&%B9VYje5S~%g!$imNRFlO`}6rj&Re10)0 z1*UNU4ex}F~XoyX-Rs6-czIcn4JvXdJik)rig$- zfF4Su|9khxv2$aUIj=#c2zv;oK~7M8q%B9r$DZXw-zX>FmOBktuZy+29u`+ISqQ3d zKyQKp2}VH*98d}XttuJ+i}kmzdLB-eRHFyaKnR+&ROc|(Wo#uoK?K(2H&SYV!7e^^ z*xJmFnVhZz!S(6llZA)xGh%97=wmirI@O{)g4Hw7G!(Qoz@#yDm#|USmDru=^ZfHV zh0w=w6Q0toe!(7!CBwf{YO1sIL}{4yn{ebHFFPj znpyM6z84>xCHUsPO5)g9yBSk6uf6&#R7y>^>wS?;NnrLuZoBZQrS2-eUER&(=aqy1TX1YAA)x%!?U*>kIH=fs z^20*@`J?l8_S8aS0wGuuY1TDg(s$aPeh0(yff$+?y7VTBD9l3m868RdI6FPwLcsYl zwuRexnr0z6=RHrgfD;=GxWnzsvM5)bsxZ_e7AW|})$I=xl+G`>%~676x`^mOz_{_X zjp&S;H(n3)_U03*k_j?J?ZOD%ZuS-W$5~ zb1ykv-F?P2Xnj8CGiWm|0O}6q(O%tNrzB9a_W+dNfFfAp{1mvwS{?Fg?b8B;B!#1 zVbleipEm3zQb=B<96jgF;ZNhdZg=Ro>T{udJ!Q}~S{l0ad2sl+g1XDh9CvEQ?^S<$ zxRm78&=I-sK65Ak+t1PEogfABzLMhbM)`T9Q_mqUBVDZcy@9mp;H;%hG{RmTfz*Di zF}}711i-Bo1D23KSrB3_2B|!ld&JUYrJJ|joLi|Oj;sjb6qhZq=&Q^kzv&-h!`k6v zo8|i%_?C02;37`?vi|)z6DCuI1!MVi)p;xP5?zh=85hd#*YT7UB$_hxr^U~mnva9mOR$gw z?e4-1JAHcVD4>0(_Rnq0h%IUp4+-!+Q+>x9=UKajb)A|GGVDJ>GDwMPiCa&UPn!+h zkG8%RhVSCFh-8u&87=iz~=(KGlBsQgAy;5+4u$yU@mZ}Y$HS1_0Jc^({|?|*LhzeiZ3 zb1bLp-ztMes$^2Vor(gN#)3JTRV1o$-}cnMzcqMUC46uG+;@-`3WdQaS$@|K)rw%q z=D15sJo=;8ph==b!HH%RI2>GpBO{lqTw25zs*a*IO7xRHNwLs;uR(g9gqG0$zE`~4 zeMG>d~6#xWqy(lZb;#-6l5SRZdnUf1INYiqe567$!e2eny^d#9A-&pr#v4iK63^6@0mca|n$t_GR zw(w>>#3#se=@`9br z5Ac1|HAfcopobu-u!r<|HRjMP!d8``&~Ow#utIl}t<9nBJ9#ka9ttyXh3+@p zQ3H(HW9~g`P(J(|m|y`<*s}IlIatn{hipyxX!p2)xvyZ<{Q(St&W%W2EkxU-5(WWl z6g8R$`zB?5KR6puEvgAbk_;5j3)f)B4B9fvB4>Tb=T2r)bZfa?Zr5v;DHl1AkkJ3C$HMYVd^`Cu!YxmR!?Pir}gyVLzG9XJ3+)09BOlwTF&XD-5V`4&q6-N%WI|o*xfc zMzhiGMSUmpC=;^w97}dmgVSs6$spw-lkNu#{qT=%{nu;B{^B3E!{x7+pDBW$mmjAF z{vWNZNGYfH1KyqIuL6g}`wT^Li7^@mc0qKX;Z&^1hf+;&l zRA_U@${`B@Lg0VjYebR?>KlwD}+ zDT|5TnzrTIT3|CG11DyMFBdexsuNG6po#aaiQ@A5v^!>bOaoq`Y2*xm^6--$+o02) znrrwR|ftxov0a@mCreX~rMIHhw(WiK4jWWyJmz0XE+e7SG~^<*TtWM(FIn;vJ{sh@Qq`Rc`Ior zV06cbuWF^=ON3Bz_&S=`>}5QtZPW$UoH63?18J8mKJJ`mDT8qszHzi7W3`klx}_IZR;kCwPDZ1*K3(8lq2^hq>B_2nqL zztM;;1Xq0a2T&o0Bf(Agb0tTj7}i#sqKHi;=*bA}!pw5I{p{qS6hUxomxY4o#F9>! z6f>Jthjbt%%p1P~wAp{>PLA|zd>E$0Ts49VTe zeWJSvQZ8pAE`g3xNXPwR34Qf@0PQXRgeLj4D{H*3w?m_X&=P`D&N}#_&Jv=D!J1I; z9D}<`S>SS}Q|@#2_Wa$h8|S89?$dJhvM##`CB(R{=C#a!e~%{`UV4jB@U2A#=Ic$u zh=Tg|0$(G@0IRPn_9dN(oQEt7|GjN#-DEsrL3N9vJ)xe!)Ao=E=aa))%bB}ZXZbc5 zG=s)puQLmd;1JC;d!D)tz@O{*D4!Z;`7HacwUJ|xl>p?ei}5YWOFkbvzm_>yP8N4P?VXDW){`Y$!#!Hw#mtBr;D^je3CMMf5P8sSy z)wJPy6bSiNTsyUQP!OB9nU0iHA=Iu7@h@sjsO8z5liB8uobf$mL1NUqFPYJDdv0bW z6a-oXM~W@HZoG@c(!W(gF_V1*jTC5L4Ix^Ui<{MPqYfo+W{0!Hl?2dJ?`?{Sx@=T8TP)U~T`QaAw4R74PXxQSk_DQDtn3-5AnI5J(GH(7uY7c zX-N|LHG)$kr|as3xZ3qv;2|i@-5&tBtlW(X_Z`-Si}aY#aY^3|IfBkX1*TI8ck0m= zff!#O7u+IVEDH?xNHbQM@%gD`n2c`%v|_;5TBn4Du4 z7XJi#&8cHDg`t2)_;FfJ3~9vhn_GbR>;3w122BD%q6sb_ih(VEC>lcdk#pObQteMv15}M# zP1@l}We9ZW;R&+PG~dy|_09F7wn1cXl83jV~eDnkcrDP!1jB+SBr1zq19);L^)Um4&Y;8Li;Vp)F%y zodLhFNSJGHB(8DC3XrR@ODsG>;Rr7N$sujF!EyW=bvHY@ZM?-2zRKIxo-8+$LErs2 zZ1IS3N>g>n%WdT>a{E2Dd3%^)ZlsA~PuY11zUTyxIrj$+SSSsNRy@VGoPto2uXkb1 zI=1V$^%44QK5ZVHe9Dk5+B$u99ALfc3mGPHw9T2JCPoARIGEeua#vfN?}$){Wa{|o zJsk3HfvgH?YGQj=cfaFA?D*~p>hF{B8c(<(kV1Sp^a`2E?7wGmcER>5S4HcMtjAf% zsb2YPh2wVlzwQ#-#2*N#1bY1qMHtl=XrnucpxE=uFzJa~y3ZFvvcrJ~WehVFBq~t~ zssj8_9r(Q>@V2}T69gL2pnW_Qo0BA4_C#ynbo8AH8BBQ3{j@|=}QiJ zGL0>%9Mmq!$^~#;cUt%jQ=C7MeN%95j)}Nhh(qQ{Jf~T!n#o*Qw}vM*vLas7ghGh6 z1fME_%&MW?BvW3eV6`EtM#spAk)kj+%U+J-%YS{%;L~6U0)3x5TwhA&a$t`{o^Ode zPHQ?4$5hBX1`|ZV0;y?>^>k&Co!4Qinqc^51fDImcJZ%R;9b9PL)tRLprExkiUR1s{t-0K*c@+dlm@TKW z=q&-mExMNv8VSkZaen zZrogdN^H4Vzk;YB0nXj77CrPNHeZxC)Y}Ul3u!sgPA^<)tRp_?)xHVGAKLq12|3RO zC$iaS$IERO1REX5%%}4#U^MRAN1-Wb&7PFGHW);0CwzncOXitZp4NfNb+&~ON-$o?8xC6tY zl_UT?J*=TaH%?y-wlrTRT`glvAO;YptbeY|Zo&R^h90}npF6<2RBU&?P%-3zBK?90 zOE#Z)|4`n!BnDvK`Yn}o32WPi6yYUXv|4!vmEnmy&4Cn9DuKJ)(1dw93Z-Dq8aP>az!lyokqKeE;K zZCM(iY(L1Sln{`kzhvDbf?=a(IBr>_+a{K@}E#uw643n4$GpD6C zS>Kt&)qX8(A)K(~vjF`A{k92G)hg0NVk^`~P>`1QH8`GcbL-CUPwwK>w)vpgo(*;c zwkvvdI6rpXp^YIq%PQNkL=kalTU7>{Fd@=&<=B!4_PZ$X6Px|7hRti84t2LeiU-K+ zKu5;qJ@6^Tg1$FAAdP&6HPK5RsO|t-Bz%)Cs)1=}b~t-uSU})JlM;j}QXJ2oqc^~_ zZ%Sd12HEc<%xIAlstTIj2Iqwdv0kSXy$faMgSWUL&;fpbEiI-d^Legoa; zgMp%AaDYgkH@|XDaz6q8j-;9x(%4}HL@dkSWw}3)#6*Yu_-P2Dfkr|Ra6pxOXvuLH zB6j8`b9vBZ$OZOMskU^XlUe&#yTfQU;zK@Hy;+VTo}w1zA-?ZWsb&NAiYRhScGP`n zDUW6zT4PRuFW4Q;*^J&YI*r6R4Zdi!lUxhoO<#+!(mt8LYJ8uJ=maQ{@XNyPyyulscatdo2oGszve*y~!r2^jr%&k2!>@!~ok$ZTnz| zAQ6NLdX;2~y)2wF!Vya%h z*>QP<5wh^SO*@Wq9FyO6qUO;@`6lC~#=NGWcFjEppk#^Cru$-xd@F3y1cTdD50&8f zv5KtZD*MGzt3cr`qYM+OZz`_sFuzvktFzbv*=yXNd*RLDdtM|cLL2rs&c}x0)Awt( zM)^$3Bs=z?cLN>4-06_yplkLOQPs4@u&`om;E=$w@UjC8^+*Ynb_5bjT#KKNSftQ! z*365y-|MnElmtN1pOZKunjNbLMETPvq@-eOFMuzdpZ(BIKWNlRy%hZ_wOZ zpMWfwg40?FTJ+2rg(I`%?e`f>j9LbP9@lk{?UAm(-p?UCT%JJ62URp{#!YcJkvaFz z&N|sPLbnI7WYk+pPs8HEEXEEjBn(L>D8(h#Cp-^F&%VfE{{-h2;LRGhs2mV(GJ^xZ zJvcV{L=%VSJ6}z7LJI#|X)=ga(5(_Xul9=9_J_kVuCkE}13+$}CfR)6bn4f9Vc-3V zR6eCE-$2DTx6Xj6ts_^e{b%+5Q!VXF_MH1A)Fv4s{icV^JseW8{gtEY>Vv#_T&dANLw1e}=C|kjGp`>E z{MH^jpEv804{l0E)i%z@HcJ<~?3DI#cu1DcbTifj=`je<_e01ZlFCAYg;+Rcf&ZlVc{L zYq3)+Phije^yX+RXGnP;A~e9mYxI8zZkP1xTuODPsl-@5J$0)UmM++`0gpmos!zvC$rp9s>bU1>K-cFmw+~{5S~(wUg)z!vMn~Ovq2!NIbmi*kglQePWMG*`w($6bEKld2;Lem?p`^13m86YsDzpS(NrZZ>F{}S zy`JtjY807CNa)w1<$!+*G@gKbgqAlTswgL+ZmW#4(>{N(OYsmPaAr6SEmAB>^{W^H z-In<@tMmGs(|Nnqn^i(eaaD!?osUMtomY=xRH)_rwCeiv zxIQuBJd4RJzQ?|#LwznQg&5Nss`M_>F=wy?xClT4NZ?$hq{!9J@?qE{Q^-*#kx>Tv z=KkIJxS8MHzgt?mJzp$gh(~ccQZs1qN~a~ZAFl3LYMK?r)TjOGwG61eX7ebqI(G&Xf%I*_BKL{RCKfZGSNA%{=)fEA=GJh0Y@YZ- zg4(wg*zXa-7t8UHXkVy?9nEz!9WJi7Vei9yJ@bJWVDeA~V&E{-wQA~8fPy+d^xxd+hjfxz==IB2dcYi(Zym+e%@UV5qQi!Se4go}t?y9f7C@J73 zcMpAmL=mr$BLZ)r=fJh+;2|bj#dQdnDxO!2zBx2VdL1If+Km>jeDJ;)#1PbuBQI*al5 zTZPefbcemaG6^||Ar<_2oP3>Xb&&zenB#^^IpC?zJhuI}65I2%^ja~_1N-hz36G39 zbm4V1qpY58%_i3~?%pc!^|@_NTOSF{g6GLL$!)#F^QC=12NRQ-F)~ehK!nzZT2B?< zLZpoJ+%*8{^>-q*k~}x41Ib)q@u7jn`(FIm0;tz!%+v9C<8-z~WO;EO?A z)$+Mmu!8t@U2ybM=Orl5rZq1C91^<$$;0!fk3ntbsWtw$BlW9!A$M_(Eq_n znufTvPDXM$s@SG`ckleCOeuea<@Z)Cffg)x--}tMyM4IcX~Uwz_uTeg6jt`{X4FEt z*%LGHKHfjZ-4QdLZsdpB&WwXLO5KD|mm$zrQs-ZV$)AKh-nr>%gLmKVt_}pB7Pd1C z$^s-p0=x}v2iYQ*9!ROb*>t#}ZMN`y|6s}@Jk_!~@WmW2lHGEzYq#aGByXv7Jp$7%arcEVP8WCf9j>`v;n_dysJ zH&>Bi(dT9^O~ubFkv#;_m}C!6X$p#l!RcY^BC` z_vxN7MMOauF1+58?;DhodAuB)T^yBVP(x5Zl?IM}TGH(H8I$n^j5B}AyyER^EW_v4 z`6R5h24;pEqZE0?erohm0*HKUkfeyVK#L}yr}kTZ3{=VsHmnwV2KtOHmf{AbZnfj9 zpV3`vf%*Bqi?UAcq$(K2ov~ifFw|{)F2~m7?4p3i9*6X}fPpG=x3|xG`z9B)1uzm2 z0n8Wr_K^qcc}msg!{fiZl9$>)l@2T_yRP>wBe8hT`FQDM*q^3}^X)Sx6{!m)j(uFC z{#o5KPQP5`5xen9cW7Jf>8-%d!EMqx|Eo^juzk1WaZtk7lAq4K@afPt45bq1w?a*1 z0l-cN-lz|(O5Q9z`liQ3_M}X&!qa<%QQ!BJcJlMXLjfV3_SSp@G7z#3-g#!ELIXki zg*X*jYZ!LiuUw|Pjj%yo&B?#@!{7f6hN5IlF&-^SZ!P(!@edX_^lcYL&|F8CE}ysQ zcOGt!LH7P)08^n)?Ns5~#naYx_DjmSU{WM|tZrw(BWBFgv!(*8 ziC>fjqDf*xfln=XS$Mb^ci{dN1}iZ8mzu0$#Y+JPnqj5o3|d-dgzB}N)}afVl7xSq z#fijur50R8z^X+d=PJRZ!`le%d361N_v6j-+2FM8U$dO#I=l+GWMA3BnbYUv4{wc#1X(rhe%=uhWYu_ZfWL8QTIAF(g(Af<;ls-4*1+KGuB)}+0qZ?< zS*Z6VQt}^KCIg+!j;l6e>J88!)g`ai2Q!7x&aUJ0zhcJlVOB_m0RUFP!hi)~yUI7$ zM53ABBY(^_xV}HE+%Ed>;$C~o-z3>c82E2TzN{D^rx&K9V`E@ZM>fwErYA`;KNn!r zu?N6dhmVvM|2${XrIQ(^P%bu8D-#)fj?9Q@2fl&}LW||G3lI#51tFcOHxZcmJYt!` z9RwTJgM|Xmo~DEcsV6=%tLnvjkYcLO4RTUHz1@!PpFCypWxE!qv7#63N!|o-h$b>{ zyKfGrPZ~k!FMd5>>y5PkWH@D5&S5ahxZ$u$sg*fmX{!wGPpwQR z=01dzi`4C#tb>IFzxo*PijNdv1p|>LiX>obI}TomJ8^OS5zS_2xms-1f9*1KyBmyB zPL<28gVJb>1S%{yVkBfF?lwwVw<(eON;xgo0?$6n5-6{teS4!^qwAG?G$HjQ5(+y& ziPzw7-|2k1zv=l+4xD(ex8p0%OxM8*OMLstNL3??LdaZxyAkkaGQgTAmr?bi&>YYv zj7$~u2it^??>C*InE%SL?N9PzXgmOV@(?mCT-NBr#cblN&S2(?AXLVgI3a%;*^7@`=BoB!lO@>5XUN!y?-J-fe!a+%qLOuREU_ z84W8l16aN_BIRF&t+?FDjos|t44oX(h**>{O+K1*PWP}6489vpTDuC9n0kwZ*#rdq z9ycR3zVFxOiXJRU@K@f7LAwRDYnC(FiDG%;@j`YKr}Em(9FCQbd1Vlqs1z; z8X-;aVpE9s!$t{?4k*})!hCHPBp3C&swNbF@V)WymuKJ~pLjOJOYBjh2AUKW^}D=Y z_Hn6ga$KqWD;`>jkno+kqZ)mpoX!67n96A-B+naaCx27-RXdTErqU)+5lj=Sx1NBA zuRHa~nBZ_R+pjyM+XIz1S84~&XyQVB2iyzL>;CPaQ#AE+Zt$y{y3U>+W{J3H6V~{J zWQ~dqs;Plq;ef}QGfQd7buTeLH|z<3(7@&Ac2;3US^rCF79K1_C8v0EaI4XMySf>G zmSGQB_*NYP-Wa5KbRBv@J@O~sY9xt3fbJk&x@OqDG4RwyquM}Mfc}m*rtN&!+;Eu_ zI{;VWo#FbJXO~-L4*D>%5)e@W_YQ2Lu{fTk}1UKsLftSR3XBQ5^DVE=O&gT z(ycQks?*ADsLWFc-xQOB2WCZ31Xp=HQBh6<>hOKH;Zn9L%Swl9W)jzNb#U_J0-cKuF^u&ABbpwQ(1Zz zgnyYWNc$KjQ$CL`%hZL;*)zvxLg2CUL}g0gHD^kUk=BhkV@h!ZX$99Ua;U*nwjifo zGy|xV+D6Bzs!+K`v8JKhHZaFCC4o$Z7KVI*L_>>FD~oL5X;iXwTapf-Uk|#FkqEWL zZ=}X>-OmQ^!H!(@jtWtKF#CIq!{#xivXS>_j!|_ccVK=U*c#!?O@z#_`Bh+#rFT-B zQ}usUAtJ7dY3(?OVfrG`1l-Ck-GQ2+D#r9r|17K=QoVptpN3Ho4|}d`*F9}mf)87e z6b`8$Y;ur=u7;(kQFWU|*_n2u^xYrzbiGRaO5b8&Y;4Ki#&=}E=1a7LuGh2qGOocn z3k9NyI!08mEj3=L2D*2MXu%!flA$oSuPy z0Z|CvFQDEodN7^=XYY_Jx%V$AUk)P0Kag&D<|8~1JsCA?KJSDdKGU(vaT-lX*k(qc z6&LgsUc=>z;|FkY==+6`^PtRW^(!#0S}I|`)R|LCqGk1j7mSsKGdK^)yD}iwDIkGl z=1NJLmlP$B0;~lnuvqAL$!M^gax3mui~ZMQA&wZDOkpEn`Fv<2L|LSiA%;w71u!__ zJ=ZUZP~6AU)22U5+nmn_PQR+%xtt&i)uK5ClNH|4NU{=;H-BnwHN4Hi>(J9fTrEqgzUNd#^nPTMRDWnc8 z#=r*VTHiZ~J6ylYG{qBRz#9(yYD7J}*FOdHBr*vKK^GLp0cr&N_YXgI4HAeL&ISZ5 z-Iq*aJSLare;E#}c)nL~!&#~yOe6L3{U*T_FHcUc5G%){A)kfd0uk+|ve68g2#U0O zpNeXfGu72DjSHGbz~aWM%J@s5%m4MXVEb(#2@Exi1Ef70vM`CrWGeGGwi$N&sV!lx z_b&BsCJ~87Jqfa`6e1$J3C8i3<;S`IgN~)K(wjApVqmcrE>uD2RH;u;(213jM;|$5 zxwJ+U+!U5#x*RDlJ0=HJl#NuFI{FBnwkiB@ljocWQ!I{MfqrF?{P_G_u^=S5wz<8g za3IBCihh^VX%c4GxxH`ej%AmGavH(?u&p1kg4wbT%u)}L6$!DBkRAkK;!$J|yYCF<`%t%wkCf9INE*qY`E$&zX5mPq$2pA?d z(8$QDc~?yf*TU&1ad=-)WgPpM$ZS*f1j%H( z^T6yPQ3%ixC|7A)3V9?LP(m1*Hx7X7!!m)M86yGtK|HwBFpb&`E2PqOn-Du8_04ChJqlpkmUe`JX`0npJKXPPk zb74}O2LV<7d9vB(Rh$y11>adXgWbC{n^l9#V##3AjIBi>!992?( zAKG9VwSq2n%4)AIW6ej$m`Qh1cJX(3RYi5hGYRZzFF4PtgD%@h?IXCpUN&?2R4%7U zQWxI3KE9s5=Hp;~jVB^4$s=N4e9zuy9Fh! zyZ@^xA-!@g4!B@QM(lo6(YuV%_X^xWyuCwKr>+$DNtBlDVjsQSAQqw3cT0`MQPX+V z&PA|}gh6mLGR)nhlRlvq;o+8slgxU#(VD`#7c7?KvfvfdE$$7k%B zQ6Iy8KX$4VJ7M~41>F*;JGaav>xK5pJfxy(Ct@?p(=Yl#FfGt0h#PD;G8OI2&o za!N;GZ!*5fhd`j`CVW#b zb=ie!_wx2^-GzG~==k>A&BZPsM!Ss|8Czg+GcymUlsuik9<;x>~=UuB6e_t^& zPu!HV37W38T9yoe*V;`~=Va@0W3wXyPQK3`D|J)qrCe$#V9fsRc}r4cFW^(lAVS)? zzUR-k_HB6}16^_fOe*HQUM2}WUhSN%)}%1U99LOfsH#b`ZxoQbrLieccPG;i=)d zi!xQ@sVxv?%_VL}zbiBxbl7GR^8e(E!#Wjz6<>%kaLUD&XEM3M20l!2XB(aFb+&!|4fJ{PdZ+*ibEdgJ6s}@4NkEqk ze8p>(V9XrK&UR1*vbd{>FsuuAjz*E*W9MORB7Hj3MNoIc_m{ig#{DcMHs}tPn`F_f_dvNFIe_VIL^I$HjI@r?n zc@EpKMIxX;(&5dxp6ckt)lt$}m*Ebtch<5u^g2Sk{=WeK3IO%g7_jeL&eio|AT) zou-_+J`YK=j?2O+clV#@dKW!lu%VDFgZKU?Gpb5nanYz8MaBRNeWAee-P^M-U7x-6 z)f%Umsnf~>dkI-~@reXuZ%K}kRSz)Pnql&!EDw}5uWBc!m@6MYZHVzVNU*a7fdpQNM;pH$vl(@n_08E{UG&8hveYT=qd-ZoRUStpEstg z(&;pJVmq*j5ox;W1{OcDB_G>Rq?e@O?8TnEPUbkr%%KPJ$y=o4Y$9P6a zu|I0RViVG=Dd(XZQqF0}S@T%j&MGvzH&X$mUWS?KY#mU zH(;)#?m65EPm#{3*^YMcMXwMb0cofK3S9*ERRkwrfA#1W-@@U%Sm@Ek_?>%QIFgx~ zzba)~D=QTulpswT%TslAPet}7;SpSw4VsZCgmBVSNf{}UCRG!a?|ISkM|{dtv)0=-ImN3Xqf z^owud?3g2=$0Gp7My;8u`{PHzo)Ii|Hi%HnIopBiBT}m5wvKYvf&j*};DqHxt+VRX zvGn~g^r^&CT1`h8wR;#7h$)DkSWBC{BIk7eqYo=4p875}x89&ic@ocT4&h~$~%Lxt~z4p@Kul^hl4<@K`OjnGM7aBq^`uf=slkylBRk++~mAe|p znB&6d+-#k_@N>>~lw(8YWwF2f=aD2F@YhE7ZG?km%fu-_tnWTrKR6#L?1P#3fM;kw zK`#5;sNDbxisYsR$kczq*;+LlQjerjNDQaH`iLvdK(8>S+2S`aoK~yME_Q}$sit_x|5P}48 z!h8;rNL34;_`XHXWr;P9QFm1(*Jo8=^YCKv$%Bb>0$NfLtlTc#H$*b_@P+oLjDpCsC2V4o3!`e~1+u6F9N3PeOi%28}VB$oFf#t@=}5MvYOXGfZI_jH8` zX~%4+*B8}kk2Yk?9((~UjWpDZ5I`v>@=kPwQ_EgS2LLH=-~W_k^Zd2y3sCYn(5n68 zBr8ew`C{)>CwKVO0_cSz5@Lu=h)oPlY}%%2n`Yk54w`n}#L3kogDYfm7ZUpbjyIqp}RT#m~x$+$fMs?tT5V!94j!T2JdOej;*5NwF! zuqJ#m-5QMt!Tz(ydVU#Syv0yes#4cWR|y-BCTLggZX7(+8_;;fw=&YCvHwh2uL zAxIPnL2M-&Ri*XlB0LhEAC>-t*l2#6<#C%^Mc;kmPCv4FjIVmrFP zc&RS`?(=5yFIl$Tcqmtvq{|}&~>Kuot?jWJjC6r#Fpq;|2*z z0)mslI=E4QWq*K=-!o#c3=C?=6V86ot4hc?L0?L%#*-sKs^@Sv+sE#~dH?>WVb+GL zC!-m2(5Ta&Ot~}~b4bDA~dN{9$Fd+BE!&*fWZQzbFFn);r|p?h)=)lvAvh zOH-)bQf7CD=jaMzQ%H0%$%DR~t$30A8>Jn=7U}Y?A6~@~?CDzkW zWbZi!Po1(n&V%_XO$4zhZ@X?uJ1AdE1hnU@xJ+9LSt*!tETID-dOQ&s<7vojj<|HH zkYN2)HUI#&EaKPEsG6V80mK^-RouUQefjabqDv@##OZoR%C;c6T8sO|nzOB%R$=PD za0k+QyNz)ludRf5rt$m3-cw>w4DR|?xSx?O4Uz%^Adjob5RUu!saS8^cFv;BD;0p3 ziPf)GgL;OXS6S4y-L~3S0Xv;~PiYtz} zBCQZl2|xa;H`_{)?#Kv26_gu~BN5*Q30P#!NyT!mHA+Lyo_j+}>JRHCI@?)P zpauxk15HsiATZu6S8s5+Y%l(Nhszcn8zG;rtj*2~kWH!!eF*LdMZsy^?oDLKD#8^I zfT_T2Pv{CyyG%fM8)Qhy)B~DW5D4BvTwnIQr=%V(HcTGmQi~ z%Ug__(vu+`L-q`*OvJxg2rFjhU&@nm0Wu%oloTlnl$d}C<1spD?2J79D^E|dsC{xL zssl2;Keo24>wbOMUw^G%d>Z^<@N67*EolVWj@&p-M`nCv)QKXFNCf@Ficis)30hGX zJ~@WSSCc}~Ya}v0fvPmktXWD6gU_P*FYn`W{_E z2rAcjh!+%>>#NK40WV*m&&xz2$)fXt5=haBl}kpV?l7Eumf&%Sg+WDOs-kKFQ#Fk{ z2CL$1A<+=%2QF`3UEaO{?{Aa_6XcEyfdz`=kp1CL8v8IOW3`oNPqcXTQ&o xp@EBZ5;Cevez@Mro#xcd#pvM_lj-zI{sWO^x;`g?6fXb(002ovPDHLkV1l;Hy;A@H literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 0000000..3747889 --- /dev/null +++ b/package.json @@ -0,0 +1,42 @@ +{ + "name": "fjord-theme", + "displayName": "Fjord", + "description": "Fjord theme for VS Code. Dusk-blue base with soft leaf-green accents, amber selections, and crisp blue/cyan separation.", + "icon": "fjordx128.png", + "version": "0.1.0", + "publisher": "jshuntley", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/jshuntley/fjord-vscode" + }, + "engines": { + "vscode": "^1.70.0" + }, + "categories": [ + "Themes" + ], + "contributes": { + "themes": [ + { + "label": "Fjord", + "uiTheme": "vs-dark", + "path": "./themes/fjord-color-theme.json" + } + ] + }, + "scripts": { + "package": "vsce package", + "publish": "vsce publish", + "clean": "rm -f *.vsix" + }, + "devDependencies": { + "@vscode/vsce": "^2.21.0" + }, + "keywords": [ + "theme", + "color-theme", + "dark-theme", + "fjord" + ] +} diff --git a/themes/fjord-color-theme.json b/themes/fjord-color-theme.json new file mode 100644 index 0000000..a36bcda --- /dev/null +++ b/themes/fjord-color-theme.json @@ -0,0 +1,552 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Fjord", + "type": "dark", + "semanticHighlighting": true, + "colors": { + "focusBorder": "#233141", + "foreground": "#E8F0F3", + "descriptionForeground": "#6C7A86", + "editor.background": "#1B2532", + "editor.foreground": "#E8F0F3", + "editorCursor.foreground": "#9DD99A", + "editor.selectionBackground": "#2D3D52", + "editor.selectionForeground": "#1B2532", + "editor.inactiveSelectionBackground": "#2D3D5280", + "editor.selectionHighlightBackground": "#233141A6", + "editor.wordHighlightBackground": "#233141A6", + "editor.wordHighlightStrongBackground": "#233141CC", + "editor.lineHighlightBackground": "#1F2A39", + "editorLineNumber.foreground": "#6C7A86", + "editorLineNumber.activeForeground": "#E8F0F3", + "editorWhitespace.foreground": "#51606B", + "editorBracketMatch.border": "#7BB8FF", + "editorBracketMatch.background": "#233141", + "editor.foldBackground": "#1F2A39AC", + "editorGutter.background": "#1B2532", + "editorRuler.foreground": "#233141", + "editorHoverWidget.background": "#1F2A39", + "editorHoverWidget.border": "#233141", + "editorWidget.background": "#1F2A39", + "editorWidget.border": "#233141", + "editorIndentGuide.background1": "#51606B", + "editorIndentGuide.activeBackground1": "#6C7A86", + "sideBar.background": "#1F2A39", + "sideBar.foreground": "#E8F0F3", + "sideBar.border": "#233141", + "sideBarSectionHeader.background": "#1F2A39", + "sideBarSectionHeader.foreground": "#E8F0F3", + "statusBar.background": "#1F2A39", + "statusBar.foreground": "#E8F0F3", + "statusBar.debuggingBackground": "#5DA6EA", + "statusBar.debuggingForeground": "#1B2532", + "statusBar.noFolderBackground": "#1F2A39", + "statusBarItem.remoteBackground": "#9DD99A", + "statusBarItem.remoteForeground": "#1B2532", + "activityBar.background": "#1F2A39", + "activityBar.foreground": "#E8F0F3", + "activityBar.inactiveForeground": "#6C7A86", + "activityBarBadge.background": "#9DD99A", + "activityBarBadge.foreground": "#1B2532", + "titleBar.activeBackground": "#1F2A39", + "titleBar.activeForeground": "#E8F0F3", + "titleBar.inactiveBackground": "#1F2A39", + "titleBar.inactiveForeground": "#6C7A86", + "panel.background": "#1F2A39", + "panel.border": "#233141", + "panelTitle.activeForeground": "#E8F0F3", + "panelTitle.inactiveForeground": "#6C7A86", + "tab.activeBackground": "#1B2532", + "tab.activeForeground": "#E8F0F3", + "tab.inactiveBackground": "#1F2A39", + "tab.inactiveForeground": "#6C7A86", + "tab.border": "#233141", + "tab.activeBorderTop": "#5DA6EA", + "badge.background": "#5DA6EA", + "badge.foreground": "#1B2532", + "list.activeSelectionBackground": "#233141", + "list.activeSelectionForeground": "#E8F0F3", + "list.inactiveSelectionBackground": "#1F2A39", + "list.inactiveSelectionForeground": "#E8F0F3", + "list.hoverBackground": "#1F2A39", + "list.focusBackground": "#1F2A39", + "list.highlightForeground": "#7BB8FF", + "button.background": "#9DD99A", + "button.foreground": "#1B2532", + "button.hoverBackground": "#A3D5A0", + "checkbox.background": "#1F2A39", + "checkbox.foreground": "#E8F0F3", + "dropdown.background": "#1F2A39", + "dropdown.foreground": "#E8F0F3", + "input.background": "#1F2A39", + "input.foreground": "#E8F0F3", + "input.placeholderForeground": "#6C7A86", + "input.border": "#233141", + "scrollbarSlider.background": "#6C7A8680", + "scrollbarSlider.hoverBackground": "#6C7A86A6", + "scrollbarSlider.activeBackground": "#6C7A86CC", + "editorGroupHeader.tabsBackground": "#1F2A39", + "editorGroup.border": "#233141", + "gitDecoration.addedResourceForeground": "#A3D5A0", + "gitDecoration.modifiedResourceForeground": "#7BB8FF", + "gitDecoration.deletedResourceForeground": "#FF9B9B", + "gitDecoration.untrackedResourceForeground": "#9DD99A", + "gitDecoration.ignoredResourceForeground": "#6C7A86", + "gitDecoration.conflictingResourceForeground": "#D4C6F7", + "diffEditor.insertedTextBackground": "#9DD99A35", + "diffEditor.removedTextBackground": "#F37C7C35", + "diffEditor.diagonalFill": "#233141", + "peekView.border": "#233141", + "peekViewEditor.background": "#1B2532", + "peekViewEditor.matchHighlightBackground": "#FFE0A366", + "peekViewResult.background": "#1F2A39", + "peekViewTitle.background": "#1F2A39", + "debugToolBar.background": "#1F2A39", + "notificationCenterHeader.background": "#1F2A39", + "notifications.background": "#1F2A39", + "notifications.border": "#233141", + "editorBracketHighlight.foreground1": "#5DA6EA", + "editorBracketHighlight.foreground2": "#B8E7E9", + "editorBracketHighlight.foreground3": "#9DD99A", + "editorBracketHighlight.foreground4": "#FFD285", + "editorBracketHighlight.foreground5": "#B9A0F8", + "editorBracketHighlight.unexpectedBracket.foreground": "#FF9B9B", + "terminal.foreground": "#E8F0F3", + "terminal.background": "#1B2532", + "terminalCursor.foreground": "#9DD99A", + "terminal.selectionBackground": "#FFD285", + "terminal.ansiBlack": "#19191C", + "terminal.ansiRed": "#F37C7C", + "terminal.ansiGreen": "#9DD99A", + "terminal.ansiYellow": "#FFD285", + "terminal.ansiBlue": "#5DA6EA", + "terminal.ansiMagenta": "#B9A0F8", + "terminal.ansiCyan": "#B8E7E9", + "terminal.ansiWhite": "#E8F0F3", + "terminal.ansiBrightBlack": "#212128", + "terminal.ansiBrightRed": "#FF9B9B", + "terminal.ansiBrightGreen": "#A3D5A0", + "terminal.ansiBrightYellow": "#FFE0A3", + "terminal.ansiBrightBlue": "#7BB8FF", + "terminal.ansiBrightMagenta": "#D4C6F7", + "terminal.ansiBrightCyan": "#A1E9DE", + "terminal.ansiBrightWhite": "#EFFAFF" + }, + "tokenColors": [ + { + "name": "Comments", + "scope": [ + "comment", + "punctuation.definition.comment" + ], + "settings": { + "foreground": "#6C7A86" + } + }, + { + "name": "Strings", + "scope": [ + "string", + "string.quoted", + "meta.template.expression string" + ], + "settings": { + "foreground": "#9DD99A" + } + }, + { + "name": "String escapes → cyan", + "scope": [ + "constant.character.escape" + ], + "settings": { + "foreground": "#B8E7E9" + } + }, + { + "name": "Numbers", + "scope": [ + "constant.numeric" + ], + "settings": { + "foreground": "#7BB8FF" + } + }, + { + "name": "Constants (other)", + "scope": [ + "constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#7BB8FF" + } + }, + { + "name": "Keywords (general) → green", + "scope": [ + "keyword", + "storage.modifier", + "storage.type", + "storage" + ], + "settings": { + "foreground": "#9DD99A" + } + }, + { + "name": "Directives / Preprocessor", + "scope": [ + "keyword.directive", + "keyword.control.directive", + "meta.preprocessor", + "keyword.preprocessor", + "keyword.preprocessor.c", + "meta.preprocessor.directive.include", + "meta.preprocessor.directive.pragma", + "punctuation.definition.preprocessor" + ], + "settings": { + "foreground": "#FFE0A3" + } + }, + { + "name": "Keyword control (if/else/for/return) → bright green bold", + "scope": [ + "keyword.control", + "keyword.control.conditional", + "keyword.control.loop", + "keyword.control.return", + "keyword.control.flow" + ], + "settings": { + "foreground": "#A3D5A0", + "fontStyle": "bold" + } + }, + { + "name": "Directive Keywords (override) → no bold", + "scope": [ + "keyword.control.directive", + "keyword.directive.c", + "keyword.control.directive.c" + ], + "settings": { + "foreground": "#FFE0A3", + "fontStyle": "" + } + }, + { + "name": "Keyword operator (==, =, &&, ||, etc.) → blue", + "scope": [ + "keyword.operator", + "keyword.operator.assignment", + "keyword.operator.arithmetic", + "keyword.operator.logical", + "punctuation.separator.key-value" + ], + "settings": { + "foreground": "#7BB8FF" + } + }, + { + "name": "Functions → amber", + "scope": [ + "entity.name.function", + "support.function", + "meta.function-call", + "meta.function", + "variable.function" + ], + "settings": { + "foreground": "#FFD285" + } + }, + { + "name": "Constructors", + "scope": [ + "entity.name.type.instance", + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#5DA6EA" + } + }, + { + "name": "Types / Classes / Interfaces", + "scope": [ + "entity.name.type", + "support.type", + "support.class", + "entity.other.attribute-name.class" + ], + "settings": { + "foreground": "#5DA6EA" + } + }, + { + "name": "Built-in types", + "scope": [ + "support.type.builtin", + "storage.type.builtin" + ], + "settings": { + "foreground": "#7BB8FF" + } + }, + { + "name": "Variables", + "scope": [ + "variable", + "meta.definition.variable" + ], + "settings": { + "foreground": "#E8F0F3" + } + }, + { + "name": "Properties / Members", + "scope": [ + "variable.other.property", + "variable.other.member" + ], + "settings": { + "foreground": "#B8E7E9" + } + }, + { + "name": "Parameters", + "scope": [ + "variable.parameter" + ], + "settings": { + "foreground": "#E8F0F3" + } + }, + { + "name": "This / self", + "scope": [ + "variable.language.this", + "variable.language.this.js", + "variable.language.self" + ], + "settings": { + "foreground": "#B8E7E9" + } + }, + { + "name": "Operators", + "scope": [ + "keyword.operator.assignment", + "keyword.operator.logical", + "keyword.operator.arithmetic", + "punctuation.separator.key-value" + ], + "settings": { + "foreground": "#7BB8FF" + } + }, + { + "name": "Punctuation", + "scope": [ + "punctuation", + "punctuation.definition.parameters", + "punctuation.section", + "punctuation.separator", + "meta.brace", + "meta.bracket" + ], + "settings": { + "foreground": "#E8F0F3" + } + }, + { + "name": "Tags", + "scope": [ + "entity.name.tag", + "support.class.component" + ], + "settings": { + "foreground": "#5DA6EA" + } + }, + { + "name": "Attributes (HTML/JSX)", + "scope": [ + "entity.other.attribute-name", + "entity.other.attribute-name.id", + "meta.tag entity.other.attribute-name" + ], + "settings": { + "foreground": "#9DD99A" + } + }, + { + "name": "Decorators / Annotations", + "scope": [ + "meta.decorator", + "storage.type.annotation", + "punctuation.decorator" + ], + "settings": { + "foreground": "#D4C6F7" + } + }, + { + "name": "Punctuation Special", + "scope": [ + "punctuation.special" + ], + "settings": { + "foreground": "#B8E7E9" + } + }, + { + "name": "Variable Builtin", + "scope": [ + "variable.builtin", + "variable.language" + ], + "settings": { + "foreground": "#B8E7E9" + } + }, + { + "name": "Function Special", + "scope": [ + "function.special" + ], + "settings": { + "foreground": "#FFE0A3" + } + }, + { + "name": "Function Macro", + "scope": [ + "function.macro" + ], + "settings": { + "foreground": "#D4C6F7" + } + }, + { + "name": "Keyword Function", + "scope": [ + "keyword.function" + ], + "settings": { + "foreground": "#5DA6EA" + } + }, + { + "name": "String Special", + "scope": [ + "string.special", + "string.special.path", + "string.special.symbol" + ], + "settings": { + "foreground": "#5DA6EA" + } + }, + { + "name": "Namespace", + "scope": [ + "entity.name.namespace" + ], + "settings": { + "foreground": "#5DA6EA" + } + }, + { + "name": "Regexp", + "scope": [ + "string.regexp" + ], + "settings": { + "foreground": "#B8E7E9" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#1B2532" + } + }, + { + "name": "Deprecated", + "scope": [ + "invalid.deprecated" + ], + "settings": { + "foreground": "#1B2532" + } + } + ], + "semanticTokenColors": { + "function": { + "foreground": "#FFD285" + }, + "method": { + "foreground": "#FFD285" + }, + "macro": { + "foreground": "#D4C6F7" + }, + "type": { + "foreground": "#5DA6EA" + }, + "class": { + "foreground": "#5DA6EA" + }, + "interface": { + "foreground": "#5DA6EA" + }, + "enumMember": { + "foreground": "#7BB8FF" + }, + "namespace": { + "foreground": "#5DA6EA" + }, + "builtinType": { + "foreground": "#7BB8FF" + }, + "variable": { + "foreground": "#E8F0F3" + }, + "parameter": { + "foreground": "#E8F0F3" + }, + "property": { + "foreground": "#B8E7E9" + }, + "property.readonly": { + "foreground": "#7BB8FF" + }, + "keyword": { + "foreground": "#9DD99A" + }, + "modifier": { + "foreground": "#9DD99A" + }, + "operator": { + "foreground": "#7BB8FF" + }, + "string": { + "foreground": "#9DD99A" + }, + "number": { + "foreground": "#7BB8FF" + }, + "regexp": { + "foreground": "#B8E7E9" + }, + "label": { + "foreground": "#D4C6F7" + } + } +} \ No newline at end of file