From 1bc56ed91b22df930542038b5a68230feab0d3c5 Mon Sep 17 00:00:00 2001 From: Vladimir Levin Date: Sun, 9 Jun 2024 11:51:35 +0900 Subject: [PATCH] docs: Added readme --- .github/FUNDING.yaml | 2 + .github/workflows/build-and-push-lsp.yaml | 36 +++++++++ .gitignore | 1 + Makefile | 9 +++ README.md | 49 +++++++++++- docs/attributes-shortcut.png | Bin 0 -> 24320 bytes docs/common-attributes.png | Bin 0 -> 34595 bytes docs/events-attributes.png | Bin 0 -> 25159 bytes docs/special-attributes.png | Bin 0 -> 33272 bytes docs/tags-suggestions.png | Bin 0 -> 15739 bytes pkg/documents/document-store.go | 56 +++++++++++--- pkg/documents/document.go | 2 +- pkg/documents/document_test.go | 88 ++++++++++++++++++++++ pkg/query/find-all-includes_test.go | 44 +++++++++++ pkg/query/find-element.go | 1 + pkg/server/document-did-open.go | 2 +- 16 files changed, 275 insertions(+), 15 deletions(-) create mode 100644 .github/FUNDING.yaml create mode 100644 .github/workflows/build-and-push-lsp.yaml create mode 100644 Makefile create mode 100644 docs/attributes-shortcut.png create mode 100644 docs/common-attributes.png create mode 100644 docs/events-attributes.png create mode 100644 docs/special-attributes.png create mode 100644 docs/tags-suggestions.png create mode 100644 pkg/documents/document_test.go create mode 100644 pkg/query/find-all-includes_test.go diff --git a/.github/FUNDING.yaml b/.github/FUNDING.yaml new file mode 100644 index 0000000..46f7265 --- /dev/null +++ b/.github/FUNDING.yaml @@ -0,0 +1,2 @@ +ko_fi: opa_oz + diff --git a/.github/workflows/build-and-push-lsp.yaml b/.github/workflows/build-and-push-lsp.yaml new file mode 100644 index 0000000..5afb301 --- /dev/null +++ b/.github/workflows/build-and-push-lsp.yaml @@ -0,0 +1,36 @@ +name: "Build and push new LSP" + +on: + release: + types: [ created ] + +permissions: + contents: write + packages: write + +jobs: + releases-matrix: + name: Release Go Binary + runs-on: ubuntu-latest + strategy: + matrix: + goos: [ linux, windows, darwin ] + goarch: [ "386", amd64, arm64 ] + exclude: + - goarch: "386" + goos: darwin + - goarch: arm64 + goos: windows + steps: + - uses: actions/checkout@v4 + - uses: wangyoucao577/go-release-action@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + goversion: "1.22" + goos: ${{ matrix.goos }} + goarch: ${{ matrix.goarch }} + binary_name: "pug-lsp" + ldflags: "-s -w" + extra_files: LICENSE + + diff --git a/.gitignore b/.gitignore index 47fc200..6cd1ad1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ pug-lsp +.DS_Store diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bf15d78 --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +.PHONY: help + +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +test: ## Run unit tests + @go test ./pkg/utils ./pkg/query ./pkg/html ./pkg/documents + +.PHONY: test diff --git a/README.md b/README.md index 5d3d9fb..d0fbbe6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,48 @@ -## LSP is under heavy development +# pug-lsp: Pug Language Protocol Server + +An implementation of the Language Protocol Server for [Pug.js](https://pugjs.org) + +## Features + +`pug-lsp` aims to provide suggestions for you to edit `.pug` in your editor. + +### Note + +Project is under heavy development. Current functionality can be change in stable release. + +### Tags suggestions + +Auto suggest list of HTML5 tags. + +![tags-suggestions](docs/tags-suggestions.png) + +### Attributes suggestions + +#### Auto suggest common attributes (such as `style`, `class`, `title`) for tags + +![common-attributes](docs/common-attributes.png) + +#### Auto suggest events (such as `onclick`, `onenter`) for tags + +![events-attributes](docs/events-attributes.png) + +#### Auto suggest tag-specific attributes (such as `href` for `a`) + +![special-attributes](docs/special-attributes.png) + +#### `&attributes` snippet + +_Yes, it's [a real feature](https://pugjs.org/language/attributes.html#attributes) of Pug_ + +![attributes-shortcut](docs/attributes-shortcut.png) + + +## Thanks + + - [zealot128/tree-sitter-pug](https://github.com/zealot128/tree-sitter-pug) + + +---- + +[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/S6S1UZ9P7) -Stay tuned! (and don't forget to press star!) diff --git a/docs/attributes-shortcut.png b/docs/attributes-shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..b2db085b4ab1bfd919b5ec702162ff62fd66ff05 GIT binary patch literal 24320 zcmZ_019T_L7cD%|#I`xHIq}4{?M!UjwvCC6iET}6+nm_R_shL^?)|^-t(Ubr-KnnX z?yBlKXPeHuBuwtTu@}E8d69bNaKzs)Lj#nGo`}7G&$5cQ-R!l&E zK-SLM*wn)4(dHLP0JM*xyJOG$mA z1RO(r0tz<$1PV9;0&G}-?b9caxS&tqfISjm6U+hra~7C52jtK3rym~``4j}i!~lB* z13M!lD|-`b2bU>hWWc57O%+ugRHY<246H3_^$e}`jc8pgZ9bZO;&R~t99kMV=n=SB zT3Fe0xNsBwRf7X?{83CtMDSM?2Xk&BRVi5l0c$%W0#;gjT6!WLC;|ckE;~bG4tYW0 zf0_gS;wCb2aIoQ^qjPq4rgdhbwYK|C$H30cPDjs3$H+(ns6k`zYUQBkLSto5{P#uv zTu0Ez-oVb(#=+Fuis0kAdivIm4%|dUA2<5<=kMnJN6-IfB>o=eze)k)%mc+m_wStXK)E$%dVKoy z?UR@wpP~!UsTR10;@tFmytWuWr7y`hepnJ8U)ch2R0I@I6ckWJ(7nfMpTnPAyPP0|>e5_WSJgiSALS&#)DgcUyCCR+BR&y->{!A+K@+n;@xqV) zR|crU{eM*H(xQr(EmbNL_GP-=EX;zxEqY{N>0HJC>k5Di=~9APNY2F?^D56bKv*op zI(noNvAm&FW~>l~TUy{E&KtEEE2Tg+(}cUIdqjVRAd*wj2ulld^_{o|vS;zOUw2eYJmQoRO zl?URKk_I9g?5ivBbiU{VX=-LN=zg=VGgDkv+|SqBwl zBEKDspCO_;qW$uI#MNkgqd5r(V(ovh&HHv{pkK9pzp-GjRIB82J4bQ2(#W~Gwrbd3 zp`nx(+iZ{iqqrD?uJZ+lRMG`AnNG(yF%ea{@&%7fCSyPZf1*E32aSN37#Ya-HYPhc zx}W#OZ||3P@+$(}&S2Sqgrwwv-$j!CSQ@PQ%Q2_x@lk9F&nwvO?yjhml#$2s%F0$` z>Wtv4CJE`6-r*_4`T6;jw-L_88v81oLbVwLG~pYd@yCDO5;R{QH4ou!y0gK^+G!|c zYAPB&{ZT@S5ZT-!Z)n4Uft)7#M*g)c%&HDXwT>fiZfnH0cJBHxoooiw3U!u2c-~5% z@NlNL=k=57#>Qkv<8cqjij}&)7chyKw78&!00blyRh=|vG`csiOUTeG0n?`pc6+?R z=jmCPL`0EsMqaRFirB)^BHgHHiq!^ z2DbZ8S0jA-33bu*`cl-E7ukE($`Iv|rB&41t+aHQO%Ot|liq^x1G_HYz;#MiWYtv5 z&{Ug#e}CC{fAv|q@FoO{8_!(nURcmbqEWk|>UcgU8}-=nELU%blinumaK7M^_3}d? zJ^bh&H+H1?!gh`I1|baIDmW`EtINYya12cyyhh`>e6$4r)Q|pOmyhThBOGVT^+BDT z**MnsS>86sv+OUI2f{~!%i_Pk!;C!}*X(YUv2P6XXf(pH43XWY62548so$ladhHaR zH6eInhUprPrf3HLZ4-PDi%mgC^$Qt{<+HrTWaTrW%j*`!%T|__M>vKlO0Gn)zyme4 zv<%}wA&B-w;SE>P&$cVS4An+NP`6!=zZKrF?zhFoD|yDbhJ^lknx+NB zVg|iFi4>FR?TO8S$Ps~^goIK_p1R`z(HY73^mMXoj{vlQkUB!a1eqR?*f^0M;K%54 zjYhC3bOS@o*O~fqr*wMPd?@?j(3m`AX{5Q`18*XMghPG@;CvEh=#xu4K@?iMi?jRu3-M+oYa0pW8!`AoLk@l6gC z%6EBqiX^05*PwRxSCh>W?g>drTfeuEo4mNS(p(3k@o7BRt#TBKAYd?8;dcf)0|bJj z%vr1K)X}pC9PIYYZ~zAL_vufAFF`d73pR|$5e!nz|5-8`h?IUfgk@V8btfEX_-q6h zm*Al~9e?my&d)jB2{=+CbRH(G>%*9zdlZaKSx<~XFhR7j5@%8k!=z3 z4BV8*0Wnq2B(;pz&dv_y3~KKfS!=K5O559#QaB1HY#pAPREkwm#NNMlOv6d6B7_LV z^p1~8OO$|d0H$CmYUUq<7t!?^z92a!mTh9r(Hu$#??9dx#2 z|BWWZq=5>x4dYnh(rC(}*YrO}TO87*Re)JC)ZuDx!W%bQPF>TjmgGh-JwC}pT-O;w z8yV6Uw3#QG~tM*LX?XFiDXe? zv-M}CG*;NpXPG_!woHNY#X=Ugu(*fHl_X z;V~HQpuS@*z01O=diT<_B6=y%SDa0lYk>=c$#VCBKW&zZ!$9)NwtmJB^pqx{7D{Fk zHaZt^=y=t9gCh05;K?Zyt3OCY*+6iwQVs2LQzl0<6(Kv}-0zmnuJc{#6Pt-mNr^x& zl5YAxpXfQlFke%Uf0PfD^{6ni8bOj=-CB6r2nBtQkoyt%7|c1rwctym6VjZO!wL1y zaEqvG9$|T{#8wA6o)r~R?42D#Ex2pmtQKknt+9K6#pa_awbfTuLL*^;StNMV6)G@t z`}zUcboFA+GaMZFlB5%~fYzLE5R5J4)a8K@>+a{PLXMYFneIj{03QwjG=iB`Btwn6 zsh4>OXlP;3=(JlZh&C6E8}nhG+@n-4e*qhYW@>-{ABS?w*;N}JiBoG7PFFe{t>R6{ zcwtFlvGq*l$=N;r9%bYCHaj%~;dH6gqJlqRG?;fIj2RX-VyG=U2#T+msjxq2 zPqcY*K>h<|rE9GhPJ^{?=jXjlx0G(ZiIB?6MW@_iGYg_4*V*M-?fApPTKr-sS-)=f zEZvxI!-)6WW08@~H-YC?Sx?e`Cl~?Pcq*b#XPHhCyL8h@-9J3XgnMlW$0te)gR8yZ>6;qfM1RI< zB-I7Kh2Ug4jANJuUWI(!IBr!`NtunW;vLad=s)u4sEQKt&d$z$PX+(%16c;c_jpKz znZJKJQQ(UW1e6!}AYv_}T%%LRVwbctde*LPXK`fFPCE(`bh%!mT#)&c{Z2XR^)_6BU z;+Wo6iC5jB9kJX=M(pYYk>OmJSKZ7cz7~s&8d-b{+wJ>A-_4V=_C!JAjm>qtcrTGDHVkr>R^#-iv0j@ zhenF7gGu>pJ61M91?-d-^5W1#iLKP%)8lIM^ug2K{RETX841GawzC$ zI(`JA@MutEP<0Nwu$dW_p8%GLv1x%=%w+!1P=h=|>g|58>Q7_;2qekn=n-<7GY%+0 zQ2ps27VB-unH&uYY>;+W10pmcWfO^g5yjb;B0YM0v&B1m;gpdO6>Wr9H_GgA?rvpC zYUt(<>5B7&rgkCn@;98HenGuN|G{0wpnoHtN;_5cZ3#CI4muhNelO{?5Pgl$ou3g! zJM3WUx%~~*w3YYNW5xG@();*#Z>|KTdFf^;$^Cb_M@Q0z>{b?m6CRcc?Gx}VkivAa zbw0ITyVjoGq+TCRv&*Mwz1ZHGwJCe6R1SnfbXd9EE!BjCOMJ5!WohmSpcE3UOX9mB zmG+P?i|mMhc>z9MZiXku_XhRHI|rGrCP&GP51AaBNmPi(VX8zYJa*y0!=C%}==$Z5 zw~5EjUfkv;$JQ^<-ya0e>w&PZpG^F_ay)&1=09QWYU4-X26^^Xc!;2}4U(%(AjaXg zn1154zaai(cb%B$wl~m6KBOt!y&!cUg-Z5US9vNlpGL1k* zdYKftf}@uJM-Ao9)bx6r6`rVPJ)za&oZrqC^(;2_m+(#i#=kjULe=qN$Nu@<+qXA3 znrf`tYE8MM+r?=bV{v(zi1L_PIMNG_s(&QamuR`lLsds2=9UHI7!_sRj$X-`6sfA? z4sX6=DA*>iwRgE%-@o`{vjL&F=9_CBh`CtJNcL94*Q!EcZg;2d=bzujErnc8 zvT`CPD2X{aHEPV z=y|fy>_w!myET7ed?0%QU9@aOdwRF3do^|SuwThlt0yzNkN+A5RD?;Xs-7aux|BOC0R@OYqi0UQ& z-V!y(5L9W){?{_|ZAJW8V|7bv{%Gw}4TI2jGKf;TnyasT&oKecnLgFDJ6l>+1;#Z( z1?jA?0|AgSx^c1T$(Z_HbESb_Z9Q6FEH(>PswQN*52l`C zhiHcf=M%_l2=&C zoQjrt2r9&S_CUyKM}8q~1vC})lzRHjM)wdoNIXBFoG zi#aV*rnxcPPT%PZ;%@Lbv9Wy^OJjGwlZB_I*Ao38BAOkWXbWC9l7-~xsKqPb631#b z#b1MbkvnF$DuVB+x>l5Ho?qDq`On*x`C)THJL~Y-MkuXlv^Dd?9=A7l2~%s({6Z_* znZ#*q$mSirExWh-JBNl^>&?sb&k$zr?(QI_UTlK*xucYo(!9s=aTHx*ss6T zSapzgrwn6YjZfq{bcNXqk3?ei_=>t6+PNl()^EQhxeAq1{zy8o#-- zQ^2CdIHiej=_zffJv9Q4mU7hM_4GTRydU55tAutsJkJYMbF-_<>urgRqf*5cqeEof z=Y8aV{2bIrw@c_p#v%YX%&y92~|TV ze4mVjcW*RrT;V>Iqk^|LFZ=pA_xt8-iT%UQMC7zsL*iyGW6R2c3TXfWRhc>g-{n9g zHh;Bh7_AmKF*~~w_pMDMLBQ8%J)>1G$E>(X$5)swwZCx<7-Rq@k<(Z zpvqWAJp6ww&JFR0y?O2B`#f^}8`9VRCz+@~9FjBA7oo?XG*v^j?XeVw;o(xz#{9J$ zA6G$JHjrH-L&L31=Qn4OmzA|sCU&9Qn7Ih0o$YPvXFN{hrjYMUn%r>xjm-+RH;<^O zs0QP!fhjL9Gt-hn*W7kD`8Ssow6sYx-jXIl;#LXzQZKnsHiv21gj^I(lm9>#zJ(rf zYV;%$j~_5vc~BtspZ{hnzkz|4YGF_Sh&lBhHJ8U=ak2#fX^EQBqQR6vvnnRQF9_dw zxg#73(W!w@u|>u27fw3mpEz_<2syCQ8pT!Ac!^ZQM1@!ZOgPOvv%6Ok(1gkKUBVkh zUHbU&P`9CCm&VkK#O7?p8KU#OL;EvB2BQ(zXZYjrkPw^H3j#?Wkk@5h_Yu>4)IHHt z%IEJ86L{Pl5`2d9>G&TEq{%`h3!2w^;OX=vOR0qN{f2m z4hp^qZ7Yy7km(@43&+|CMSd|85)C;FQ)x{oC-oY{SeT*P3uOPm9~ zox|t(t@{cNmm>;5+Ned33{f-aKhS(%2Jmr#Rf5bPT+0v0jc-NLh!~7b_ydvNVhu_I z)ZT6A`_6AKU#KD4Tms4pU{SeadzCZbzVK4B~ZtmCZ38pH62c|Rx zpFpnTNy86?L8lMoVLBfg#t|-;m))CD)zK?KCzWufU!~a#;EfagAnKpZ#_u1JZN@*C zo*0|!TvgR#q*I>PQ*6o9D;S=aP1t;BozGa&0T==fRihW_uHg*ADMkC<&%6|Eu}Owi zlSv5N>U2mYLQ9K;%)~9C8@EgW2O}Hv`Z=m;Qhp`+VG5Q00OM%xF>dhpOg9B~X(84p z>(3;hB!|68m_XY2PDTOvSfxfXQNh$XSPlMf{Qj2M7n59W8C3rGN+Z_ z2#WGQrN>FHqP8){|ATOR?rPzL1O7l~KyC$q?R^4c%|2%Y|I@pVe2XQ3!kHTIpZJf} z$w@<`F9XbT=pnIy(bKXG&!4#wL>oGtec890f4$xtNGX7{_vheqQ5 z&c>^@Px))QZseTX#Z~wZ(E3Cyi}~SSXQ7WGURIeiR)0bq4NozWYtvAf4@7!Be6_hPrgH+L5#W3C|NZ*GC!D{Fms}1wE(uXm0Yu!2BYjt8k4k)>TYYE(G`> zFaRD2Sj;D`|KGS4fYM|T>C@@;Ee+^Eqq>KFN%QHS>e0A_L)9YITSGF+)0yvGL;lZT zdVjbe!fOee#cwg}`|`7&Avhxi?}RbI7+ZnNHNa6&4TqaL=2@MHQZ$cVgSjSB{+mk@ zU}HpKte`vJ_B`y$tc@=j%DCT*F#%EKQC(Ul9{5HVE8|A17lx>RTyo}Uvj2Y#&lNx= zJ0>7Zg#a*0{A;>UglwFE z17+PmxbxlfzzFt#%<0E#s6Ye&(iBs>9sf;S&In)$$Qunc0sS{-DM$b!Q8JYDzW)yb zrw3LN?kewr02^!7C`nq4I~#9iQ{r_VhrItc6{t!IJnzW$y3WdCj*{BQ7anY=iRFAD zOhhY%2xV9GORqe@2WhsA46FVWK1?e<6;0vjH=Hz_e)2pvIW4mlg-rpjvV8YkH;7Ku zT4-H{i)O1=Zrt)y_$#;H?m-FDA9f((6QS-EuIeyzJm5Xwr4o_TObAYBinkk7 zB2%&6H6|q@-un@;jlGzk-ml}UotsBrz7|eSJ>I)toLzlADn4uvav{q#dj%OVe?eZ4 z$0_($vxr+;ZuB~iG3!M1vWjJ9s|rqbIsD`nuFQ!p^m>$ARV6h+@RsJv9y{!~1~0sJ`;6b}M#fQ}@J=H`)uDjZ7w0 zv+K`02crD9C)e>cRqxEucZZ^4jxwkW( zMyy?&l}b6CI=JH~fn?S^)vx#eF+lfBz@+z>g!B}4)__Hy5DI=)Pz;OUl-7!5z$QXB z%m#@dSkTj^sG31Fb3V>qx8_^Iwf5&W@{l=0-_#t#LS4tKhB@ty)ah2!jFf9!?`g|-n zJdj`caNZ(iK4T<+{^!9<_96ZoGZK@2z_nR|GJE#F*5aNRm~`WNKphdR`pxHx(#tFO zK$&k%F94G!5ig~>0Qno%1XkpL<4Rz!zTAxPx#i9CYpHuSqC2+84PuY5y0jmC$&GJo zeB%vnXiJ00Ix)r4!em!#AOb61qHz*$ln0gaTrp^PMvp@Pm{Ve5N?fh}SID2^=hxj%8>nqOtVstcqVEfpM`hv+u8v+Eq);xK7lm-YR}_e$Fyn<@P(50biO7--HOQs z{Ptw=QM7yk4MElm#rV=%D}#Ut$RYl>=067Q90Fju&LKKVSvq{NA6(8{cF~NLDhL;h z{{|WWN23Su#3lRTzZlF)F>Uao{+`#aZAAJN9%3|Jdk~no=rDUrbP$%NkUw*-3o021 z&_NXP$2~V6AXGOr2q)9VavT_a{~oSfkrw`C73Wlr>|4e#z*wS%f2ugPSYd^6Jb60a ztudX^{mKz$$zB>eN*OVErR`~0EUAv|(+TGm^MA!Zmajn&P9;+V-|Il)|u5Tdn*X3AS^sb$SR8TO?dAJtmg6@*cMvhdv za+=Uw9BCUf?;K+>hG4Vwh#Y3)OLLs{sN4p(Uh!FG#P{M2@n0|ySx$IQodzu zgH81ye0XP1VPxlKFZ_D3>{;iGVyiXdOgS~%$H)0vBANd(l{G%Ze1I2 zYqWGh17?#1pRNzQDSV<);TecfQR0G)6ftr-$8*_?Z$50@ zLFie3`c~HBJXm>1?@i(M(gCUE{RZOOD_r{PHj(>&RblbxcN$hJ)u;xxz$E|=fB~Qv zg2TgqwzO9Ube!arSt(t?=ouek9hrR>yFaK)CN1fty783b$@X|rR@$6WQ(0JbRGy8; zM4Fbp$}90?38>Gqvf;cJ^zs4xf%Bf$6M0ANV0!{F;p;b+!SSmjMu12d}k1L>}nq^Z|&aD+57>@rQK!3%E6t7t0 z#T;hE>Dtg+L33bGZEU(o5;cucSiI<2b zjjcJ8uxz!ksR`qT)!M)SM4XeIUAY-v3zqsdtJ>CyZ}1|yx53GBxWg_#UY-Bvl*h6; z`S38`Y_N52z)zG*xE?&5sR>d`RW7R;5NEhgPO?nTjmMo&L}E7*KW!V$mhAYd6v_a?GMn{>+b+xIfWLp3?+v0qpNT~lSS74CAcG}^k;mW=3t0QoO)vLzF zZ_;0E&Gh{H$r+=dBs%P2+dsJS`!WN(^WbdkZiNB3cfEF1@+`-WG<{2JTJG0VCPVR= z;6pP@U;PPsT~ij14N#lb$#7e5a-(j)?}QV2Rb=jpv!cJON}6w@W6g-O zw9TeqYE#02=bwDk6`izry^hAn^igCV+K@VujZuTPG9 z59zFDT_X5nO4t0MWZ5`T$vR$euC9*&;R&kh+pml1wmOf;#uV;nXp5Bw?5r%j2h$_2 zw)^$(htv-XgJhS}rAGFb1N2Y;UhSK{J|mh(BZ~Qa$X7AH&v2(Sbv(U%)`YgUp?2%x zXmrU&H*}H^`p2?;U8?(5{?Xkf=HvZ;xf$CCKeha zIVgv;+F`L9-~jPZ8?QU*k3IptlAujq{XX5%luIP#swe1+uxG8@kxGC0iA4jWl%rPR z#QMBTnyoi3`#a!6g(__=iU=GI51e$i3&mc8!?(7~iwe8!5^(b5oQ=HU3EoKINWZ=d zi8|#Ho^o*5V}H{b(yfvr?Y?^R%d5uC1ytw&4<6>$s;f*DjSVo z)O_wGF6!={2lK{zMYED#zB}+oXA3#oNfzfUk8eMQjV#3X=2oA*V>qL2b3~ZR_6*p|?e~yT8A6yHM0KHwV`0jNb(y zIth3P<-EwHvYEb*V^imOVY9#_zz^P@H0u9K(!${Jpa+mPxkTm9=HaKo%y0lobQ^it zFa14@1v+*Q5^~t(te&D4ZfVxDt$kD1n$8@t^CnN9?18P1Ovwwtay|yWs}?UHBgN&n zFc5U%8^(K{jCudc3I0f@jECVGRz$Z=NJFFb zQ`LHT(j{o$=HHNQnlC-{>5JLLRH+iqnTijYEXQw%tj6f7Kn;SoBCfaSL3Wy;xJ;np$)UEsdY;qrGCu_XWXK8>)J zw@xVcS|ijE)&xS9cx&l+`&TOD=RjeG13Mwu)WnJrvZ&+P6JF7`aXCp@Do*!9sxl+< zXsK;I(c=p|?v|lvc2&&z3_(~Wi&xPVzr=S5= z2N~H`fSWh7Z*4l<*>mb_>p7bzFx`XWEmeG4~$0$Sqa}Tee$HTCT%0ABNOcCSidqE_a4Mc*fwIC`aMD(Pt=_I5~J(?b-2#eza6orNav2uv!4MZD29z{7$H z1a#Y{k;WpO$wOu>EYEqqehq(j&K*+8rV{&+b)HWN8Yw0+ML7%?hHv$HbtC$rWxjMk zM>Rj>6$Fc&GnZ}0Zz;;jXHC0{u`FGe*C^yE=yA9c*rBLbp}r~7&DqW!<5?#V4BmH~ zjK(jzOtDUFCZ-pxmKW3iJ-+qj=hPy0K_Cyj~8X%1b1qn!fD2 zp9J`b;r}QaY$u6Md*Ao`iQ!NcW7GKinQpR$#dMYSq#dp=yu;lOw0Cp!bIR)*x@yOZ zbFOjpR8Q8x9LxH6<}=K;*qPP$^VxBP=0>wf(h2GQz(;#3#Tli$Gz7l`sCY?PUC+_f zYaX6={f-CPCkei&QF=j=#fnD*kdbs`%2qg3jAD}B$@`GB;}07(!&aVqQOJHFqxFKZ z-9LFDXtbfBWgv%Fp=mlvAZz9(b}fM=Gq!=^shSNCET*JTxrjm#L!-Y&@OZXJSY9X5 zP|gfzt^%?zuQVPTL0iukiWBM0I&^)F8*jx~{CvKYJ{5O%P>wZX$i~RR<(8+2NIa^a z2PGo7%lqqc87so>heIP1k722pWcDO%xffjG=ei}*FKyBxe>;?f&lCCmK5BX$q8ddz zJ`CRTcX?rY?@88a3wB=jQd;l22_)0la)#y+5Xc=Cl@?2ULqswIDFcgWM=?Yqq(mz1 z1(2V}gG700q!7WfM0bBg-j-Tx4~M4W zr;~+T5n^I~m`?u?7ZJ)tBqr@qNy%Mzb>{%QQV_Kl%EAK?MOD#>Jq~xNo3`KHwGWqm zQq5PckpxP3-coE#uClBs2_Z~b6wyg7BmLMlOr*)GQy;jJ?~rLt-xm~mP9Qp;y2>|i zyK=nAOm{n9h{o&T?WxT2q`)FXE;4~FtD+Wrkn+5pvvBQvKhc>GrxDfE1pW-;!GA_C z<#^7*c$Yt1F~J)+<>bI6t)!rU-0{dBvM-y8s1yxxwF!hcU#0?XLY z-r>gW2JtSfhm{QwQa{#;ze%L!n-G@~`(&yGAcn1C!9`X_P%z+^hgmXZM@%;% zEO`lOZ8GKE0hNkyZU_AwhQL6C$ZJA2$e!g&he!v_L>9NdbdCCN&8!hRcot^ov4+{o z7fQl0JB9qny@D52Q_}@GSyl3SN5hSa*&3}!%EYXb9tBgw(&l8;($mvB?RC*NcTOCS z*FHxSUgv%xdPQN6NhD{+{+M?~KtjO9bU9u1`WfDYa`wU@8!&>7ct4&%-A=ACx!f zl}3u(W6rC_dde%qMFqt2+ek)`nO>Rxp9};BCDRNJO~=aYsmqoRR`fYh8XbGClR2y8 z7?aRvIOs#liOf^YtuHug#Qx93G-N_te6oNjUmkj1Dh)l*6x|+eYm9ngzax-G{@EbC}==)}q%_0uV z72+@%yIrj8x2$!jqwT3b{;A7T@H z*1s}8TOsK_iz()I1wH^L-UN%!1Hlw%zbn2~Ejix3Pb9G5>oV&s6H{oGOy3;g@q!5B z))b9`Ro0Wo!&MSpI=-f^$(s%CKC*Sj-LAW%j_vpi^NmlQXj%qGNPCqfAi^E(&arKC zP3)F?jLRKLZR+4QDfah!zAEc`PXgw2Rj5a9!d@mx0OC}wjQa4m!e0|S&%CMMM|r)s zbbi|Q(p@cg0OZsWrbH))JrPhaTEvtKbJDgBZRr;>23}+^W0}yd@UL01M^1ge z36Cj*yoisUzmekFxd8N6!6>th;pnIe2wHhSAa29S%zJw>N6B8TLtHpyb@RK)`c}1- zJ4g2o6yStoA^`aTUzu6ki@+8#0xd7#YY6foDS$vdxkBg5(dI4zK4t&*SOZ6K%U~Y+ z9!eoGb#+zWQ=$^woPxcgbWcoxf*dqX$ws9yri?1XvI4hnHqX zX2Ds)wB>RG68y?7hRCy1$YlsVKE5?IlGBuy_eHW+A0%(G4FmkPKR`VGA~%yPh@Y*} zpB(Yv&A%w%*_RGlp-31LuDY%siia;5T;zc?&#eh0n zvKy_iGN%M#;vTRscKcg)If)mGDXW8BR!4bWnSjt@>c`$!Cu;Gs=fy>H6LO2mXsCF^ zrP%baIhHyi@r~8Q0f1Vc?|Y4UVD+4)T26w>o+uVsi`Pj2Rw}dJ`MK5fXDMqt2fD+Z z{z>l3>xr^G`JSKKgDO|#FCHeSz^2VZeDjkoeXWFCWgN~LHFa$AU#FfRef!3HL0I(* zQmRB3Y8&{jDlLbi(SdV+W0vrmV2G+VKlB2VSZz=f&Z^vDOYL~RmhNmEY1)fkm|-gLSt_uYB-*UGF^R2g57Iqq4y>ZLsgL13|lS7xrQedEX?V@nZ%S4WdnBX@+e%O%&Sy_%-A?SRS7T$ET29E#z*~ztvL4N^=iz&y7>z_A+=!7Pt9JA8 z@yvowdRQ!R@Q-_e=wa}hmadS1j%Eb~H)LY2UpxAOjg3nE2y`tR`A;|gqW6c348*%5 z@oyl)N(eBH^%c|;IQET*{7xkHe0Z1o#gbd~ZAT$V&C$re3R>?m%x*?#j?Jh0 z7*aTHF}b)*B3A3fk2a8^gU%uCHHif<{zmXY13%2AyyRMvX0Xh@k1#$}6pTTe?jfaK zXM4XXRh)ZkUE=a%v7x{f%b zT5suv7E&<8?IJ;w;O`xm9WT3-VmIkxr8-)@|iypM-0ZCA@8jWY== z|8nu9B3&c9+;+i#QY#-H&?y1|{e&W3*WanQN?(sr(0-IbeQ38Xg-WQ~H#4`4)|L{^ zE0GCM_A(+1V{lq6i0&Gvt2J0Ff_)2~?(cD}u+yLde%PCRmuILv znH)-z1>kq?cZzgAV zc14HtBBn<^9+eC){dvxBV}!bPdI5Kzb3zj8g=VFfx#Qcm$s}EX;dvJM0%|7Eu^Ud4 zvS*0CVk6RIj#L)D3Yfv|bK*a$?}NSko@iBd^oW|uRS5CX>SlyxDiL& zy8q$Y4J7sIJKFShT>j%p^LRD^&o$9}#*47URyxRXz4i6}+Ry}547RAL<0#pmzWaa? z=-Q1zST4QjHWJDs5PBmn&!-%Q4IuTux7}J}9&;(2X3Fx2=YZ+T6I0)qzoDF3W>mlS zKs7D9n_Sv3da>PUKPkAx&idt5gtt&rJcpI9^i=teLfcqF=`4KHlu|LxygTC!awAgi zx1WgWiOK}87K8XA`S0xuK89Y<-Va5u+IP}#^6fp%*K<5GI*HGli<>(jXxF>=yCJCJ zSjR;{U3wlmSLSOCuQBeOmUg&fQRhP1dN);iHJvfdRd{`4ugqu|pSl$nzcmzbt|KSZ zPf5se65MZ{9a;>IBdVB>PD7jPL~lZ5btZ^@OYfeTm6hY_um7dVW#b`Iq%d+9p=7vk zzt;9EkH5P;(p1o-40~KJ{)S|PK#}UO&OT=e<%^8AG%%ua9immVY)@BJq9vfq8@vi(= z+nIv>A%vVMl#1iaB0v2d0Qrujj-XVh5=Je4Nh%zASSg5-A2GDlFNSxq;B917V0S$3 zRKHi#mO6kyD|cBcI}Oj`iByk!OhC!!D6L*3kz6@qS;zZoL1gaoH z8g_90scKAUVSYKp_jtIG765r6ut1C0Bbelaw?=HltV!weR3c);{{F8gHTEiTCm8i{9>eOp!_}|HPF0#XIXC%{uuuHjbc= z$+8@id6;jZYXn87x;qiV+7YPHv;+o=iTH0}SFOndi9P$?Bo~oYp{dsXDf!m9^2>ltw0~e@H z<@$16nte4*^7rV*KnQ8pGv)51BY!k8nH zgOn+|L#r&5%hPm99?$1j4L~O$g&vh+Gp4E90+^u|Ko`=U||twRMf!qThFo z$o@;;^hf1VB-`xlHyi*YD#iHIV4*d^a*8?2NN?JoW-{!X{!8cB!}WUpD|48O`pD}u zj_n$f5<3&tlrP}13}jbAf7_dfm@m+o zbTfKx0=u-%$GZm8S$BtlWDh$S4t;_NPw|s^OADDj{o0)PQcfs=nC|wO_uNaS44y~t zPj;0W^)=W*xfJk+lS{1OFJgCcsJRvQ*I?G9kdH6d>fp!kU zrW6nUGVcHK;7Ji5I*PRT`g&(!-I;UI5OxS8`9nSNgCjBYm`pDz2qGYp*;@Rlv$U$E z(+-IR+e?3dYQby$p1~6`T$+BC$zwkm44|Jx-{c_1v%>hr?c%y^AKsWDqJ_|~+%0M1 zT#ZMz5$KzZ1yghDBf0r|z@ax{QI4?rAEhfhZ0s(R_Axa$$yCEpi6jw#J}E&j_HBIn zgbnlYzW~aj7_a3?a2D*9_Nfi3*;!zn+oS+`xaWV)-g1A4H!I@deJn6wcOBW@ki-eHKRS&-A8y;la#56FH--zG9u2W$tQXbMb+&`Er?x@BOF{jbM&k+&+Z=*wT>Ia zduB9D@{l4I8pzKch9FXaf&OO@uCA$C8uLOWal+TBwT#p3Q%R` z4`e5mnIuT6%h?OOFaUYuJbo7FA4!?Q)$!Laq(DOS5L;oWT;VheS%|i0T1kV{ScZjEnzmZFBf7LL_|mUG$ZD?N1yX~_T3lp7*g|g)|#6? zGU>w6fC0rr6B`+Q`C9vGp0_U|T|Vf%Hl2VmcZgSUGtnRU_5Z8myn~wB-Zd;m2tD); zh5%9&MNlC0UZr=0AVmmOq^W=i(tAfi=}0ezfOIf)r1uV?i*%4)?&h3(@A;jXd;iVs z$(m&Lti9LwKF`a3A?Z-OrKzi(@%ZN&P1QK;fiDu%N|q5VfkYw|jEp`tTJ+iA_Jm0l zR38_Yl>CYMahzvnd#^DASYVIR9Pd6JR)t8paS!nhn?iRh#rnQ~2=~NyWR;9^LHC0; zs!JEv2q`@<&`*Fxz;qU}qv6wO`0kzc_}IQpGm|kPPyk`ro%j&Sx_sK#3L2rqcDtsp zzI}RC{EgRj4aeY>OZOl7qfN(rtQ8^H!_hXP*_`%XpZa+Q7!0;vb@m*|h$KKHG z%hB&$J__3pPSgZUgfxV{P32S77>RuSrD^b>d*4n=zvFvpDZ`_kx7z-5kNEOo*g@r` zZ=F32h*r#|DjkVlTpr^!{kqpVkGF-^p9xGi7t{8|dq!0cr)x+~Q?xqo=D#WM^v|Vdsb`LAt1@dXZf9 zm%_t2H#>ahgn(Madwvig;be8l`V8h6xo&OHtnW~O=>iId;VqrtGz`ux%f#ttZI;zB zTNbx@ao$na8p9^W(95NL>kJNgMIR3eL*4_Lk=a`pwp!1f;?W@rALA($A~cdQc`5Y` zE5VxiR{9>~!@0$H-{Tu^!FKp-;@Gq9bYbC%rQkOB^Wk>*E(YH@;X%9ae5&8pv_2+Q z@yvj0iCCdI0c1Ph#GHpq7U1}zw75=@@Lnvc)P~BgWq;~>Gq$y^}li5>F;in z;@19o3yS@M@-3(CBT3|TcVqUs+{kkMzP&!wkXJjQy!n*>cf&FH*w+$R8Bgf+O4|Tk zn%UfIix~k69Soyk#j8LuhC;XzJplzHr zlbuXw-mGXy!hmajb)n&sy@~gt=d zi4VZ!%3#3X`*4q`wcV`EYo{>?@EI63!-?qqM5UYWNkIR|z`{QYc2#@ZLB)PQQIuLL z?Nq8^ZxqXo8=t6{w#pELWrj4WdD3G4!O@LPBHNtR@pF;2rslD?YBjA3%Oz@(_0a#S zu>FO@Ihj^A+hc1^c02C;XB=y5X_e}=)8tayo~tZs;{G26Tg0@g?_q^mW?BC zf2XY=z@mQFo-?k3x6IyFy*;V2uxQAQPx7;~17*c15t%*Y+zjbv9mr3dsFz$1O0 z4~eLcXl2)n;EK$eR-Xe{6+CZ`A;V1h3Uoq&z{~BKHbT8Ehpm^3t%%PNFrCa|Z#;t0 ze+Yz}sF}cP_c^|7f1Q*rfj%e2(H zQ5l>Kah#hG-Vm7kR?u6SbtQF`*4Pi%3+tJ_12)Yqwu4A&rZ2j62z4*_ASU;Yv0fk= z9X9dU+=WEEwuk_wtdfd)c?pLfD~V{dy$U=SvhU^y%+0yIxMD z4(;K#=q-8qz=@_cXC_!VD_?2p$K4C6;%iruzAqvqHng-6ULKFeuJ=U!8HM;e!+kGr zi8Qr8O=S}hp!D)^>ezz@uYA1UVnS4+K^yax6AEQkY@0dWn#)}cepo~0gNeFLzA@0& zNHfD^hZ)ZfG;~GYQY@v;hP!%E5qz4}`e>dM;jXCvgJi_>yMj7~BnDi*n6Co z@0ilLeUc20c`H<@=!if1+E+ZUR{#3DD4DMU!g)aP@}qwz?c#qJ)Z>Z1i-1ABIBJlW z;XJ?nk{0VEq{>N;0P4ENC%4odd6-mU)<6n>cM3l_JqDYdn>ahTvlI@-@b=?hKT1ifqH8X3>ufx7+ikX{B1HwO(p0vx`RgTjn8X9C5 zC^wcluN?t5nv35{@vjl1NRjsNQ+J?sCN#9maCcU_*a*7#nt(yL{QJNeF+Rd>agk!B zp7y?3>FV8oSd84?^Sy|6h9Gj9*w0zhWMb;~Jg4#Od&<$E z_mPn#Ec92xn}L_!OK{(e{Bp1lz63EcPci(x&AG>Qq}pE0SF+q+@nBY)@`#Vehev+t zO_J(gggLRl%4a&(9oY_W8TRpRoVZMqwXL|g72D$NmY5hM>`?g227yEHen^jG3dtr< zRmyKdN2g(XYugyC#d&bLpm~$uhlQ0TXdp{UM@DA!kL;+sozB(^F_|(S41z{^lc4+( zEaK-!AByM{Au4(7ce(Qlvv=)(jTH&CO9&7!*NJf*u&|uv6O-ndYMn>mMh=H^(DCBF zPp%bh8J;90I$DJYG!c_NsRZ8%h*@oXVu+F?L)2I!)g2-AU`H{X_qq57D@V+wLI+%M z#CTz8Bv-$zg?<4QXMR-XBfImRG(OvPL}Y)Ud3=mskkRF{oI9xFSKpYz&$7rORnuL& zI7WJwt(={Mqa{9buz2&y7@qtiUAh0*p2aVJz4stQLn(n(Wq1upc=3LQbSaSF3}(Hd zEQU8xn^bM0cQGHxCmSP|eP`h&R+4V;(b6sB=jy#Fft~vS0ao=#Q&dL5-jBTjn&J+w z1KZ+vV84}Fs47ZG9=B1G&sLB=If<`PQc{Y05d)l0PsP0eoFZG-HWu!)CH`653kx{G z`$tD7r`%@tc~bOqh92#N=NlcwLQpgM9EH>&rJA1C3ZJY9FCW#J--42j*qqO-YYjj z52smdd&onSEp<>vP^6R(%au*jW}drTfWB`xK_%q*vPzG2gqPDJh7gav@lx(K>ZsOW z2{R@0Ju*eR*3tCjYlGCa)Ag%FD${Xi|cKI!~vT+Q&txIT~ei9zMPy z27!lMAXBeH89Noiw|{<z++5JFHGuWd%8(EcD+X3sV{ARez~>5;<_w>x}b8Pa>%WrCd{fU4qj=U;MuW~v!Ir&K3 zay;+DSJZ#`7Secmr072E?=SPIG%LEYR{SoVUpM$~@gq8B_XpaO9XJc~Pz&?Nr@2Y@ z>bx)}mVu_f|MG!1)o~<$#KC{AJSh6Dwt`V_S9jbMd21}UJ{1?4&6Ld9`SrOm?o-`U zu-+5PAu}+5@pffb{@I$Zvf^Y5+nkYqw;Xz6bD!mH>v+`t)Lrxbxz`S;?$A9uhloRK z2;`}}P%DmhZlu;!ZS@Gvu`{GGT?l{H>sY#ul({Vx!K1VU)fG~C{6%s9__h1fB*Dpu za5r@P7E>Uil_rl;*IzbkKoguhcL*VWu%w`M>QOcJodsIk{W-8J#5MsOvYs9DLX@L_ zM$u+3=<3vFCo6Nniajrn#To zxPj~}w{h^l=!Lv4G`kEPm|5hl_8BrpBs3&|%1d;MTK8{yf$$)U?0@KmeLw!Bw};?& z@6fo9?Z@z|J?>+17kn3-9KlBvg$NfH1o&Nl!t$HG))Q(bmft2JWeh0-VHaslqToy2liuWw%9HIYxq zld@|flPAUTWW+Eb)GvAjo7v{7zlf+Sm?I#X^{Oi#t)#=sSou)KXNL3*K|EP(UHpb& zA!eztD8gGcWX>!-@=qR7?rCrmDQ#ks*9BeeHZoZBnwEZ2pOCF$?m`pzSu_@yW4P}6 zM9h1Ke6?Tei*0lqM!yDCPlCaN8w_k=f8_jeVzpPdO7?Rhy-}QrYk@3hawv)yTT{K- z19=T%ghb&v?LjD^8+TF;=7IhPY)~yBtyHD0RwC-o_PMjv>F*43eA zWBuIIbI*ZhmDiMtX-4V=FZyFC>~jZbhTuQECB8I6UNhoA1|x5ku!FW#8wenoYYB15 z*s0cURN@kFyfJE*{J3p}oT+++iwuyxtEKrN2o28xnbx`|ucchuwy6%UW)AIqm>cU$ z7yp1xwX>A9PVwPF>_62yqH%foGQjH#%yzVvs z^Q_ghAuOabYJV#U*gn{f_BnFxYaZo^rT-c)gK|TpVddKJNCu%K)!<}rNw{z>r$zlk zoHnyY;z!c41i?xN&*Qi*EIXx>yw!%v?3=`SaE4Qh_}w76RFMJE?Ys@oawc;vaYm=t zqKJ4Bs~aUc_w*)BTJ>^%*BE8{5_z@SBw@PU6Y!|6Z*e6`MB@TwA z9r&m7Z+*79?7SoTt+s=u|2mGF*}lLLInd`u^sNQ@eDR0TD;!_=y|}1Km8P#So+&_R z9ou*G$!ga&v5sKJI7}AV(25;R+(9Tzf3qx``ZlEbX~^tADJ5)sRbF?t94QvSRnyaB5nWP&Oy8|1 z#6Z^fU7~M+$-Z3P*yxpDK~^gycXz)GGlo~Y$%S^0(=PZV{9G%>YxWKiAa3oen%rZF z8kIhtdTr$~5J9rIo;Ad_j(#KpF%x#Eh3KBRp+H3Oyd+F*8y~WRNmcUn>|~47u>Bd7 zp63{aYvvHZ39LUAH6lHjVagc)&#I3@y>)EoNjHMkl(5A?jSOZ6)Wf_Tv>n;j%|6&(R+XrxBk8L^ z-R*&>5gMo{5U)2aDVIBm+N^Oa(lE6a46csQ?)nMBG%aq~MZ%+~Y)g_L2c(hwx*#af zfA{CnGo`^XY+H-ibg!TNnHS>uMrGdgB^!5wd#})WKyw;ls~O$)cI7v_QTVHCV!PBk zOoj;AGE578re_(x%jppHXHj1*kD@Y%!~Dz;a&+7OQW5^Q)4Oh{h!v-t5u4Pil2)F$ ze_;{EhXNj#4R8Dp1OP@P?X&@6v)5Mn0Go(S53QpF$zmFJdj=3{bZ)Eu^r-(aZ z;AAIET%i-bHmtEmp!hs7NV6h(e_W#?VmRXcH_!+W@=sNd3tM^#B3TG{!*uMepB8d> zgyT^HcNi7za#O{Nd>h+Nw~SUwNc?RCu8PxC!DysCmvoVp(vs#6V(1A(5^VfOM=x$m z>0HY!9pp(UyZ}_ z%=!>4^E0T+eRn&EsRmAfkXH(q28bs8>eGJRdah#%catlY5he{d{i$Y5%S(*oGn3w{ zr-__R1VdI_jf^RmLpWdbFLe|1nGurR_QUISia(cPg(F9e2jlH|F0eRD(xol4ZzqlRLSPuJk1h5Nt5cECf`nJ=SE z*^^oAsprH7JulrxSHu*gSg~L553e(-3CtTx%T|!EGD`=X4Na?q z?$(HWpWFBut$Lo~y*GG{em0Ck%jS5STJ|3}ojK5%G$G$wTacpI6lm#rvd_M*%F~jy zFC!W=8Fl7o+?DJzqn#ANnT>~)P)zH<{y1-z$j zr3Tawqj%~&6lF|am213{< zwR$z&cf)@V?Ef{Z4u6qz69=t*#Vn`ED``Y207I^PYwMDjay~ACX zmLga9MCX?x)oeWDReKby^%`@oBfYpSs_)^r(@4+X@fZ+I(>1M9y1LY)fNIvijOHfxm zNb}INsrG7>Il#*X_wWwT1b0^!Z=D-&KK(4_+r>q9X~|0edl3{BZqK4XmReNS9^R8J zzU;%e7+_uxh}K-4KVur%E5&gzM&CvHm@ee;dUU4t22r4k21`Z-@yDdWWSg`m8f(g! z0TlG5bA*&U?)tg9R-%a_s-@dnl~=#|Q_Ek2@~Y+ud;4#c=I!@LvEuQ&bzayyT1K~{ zl`AztECzi=9t3V~djW8BlV`$5qK~xs2=m5lM;yT}I>Lj@SczwK$(yS0Sjm=GhB+LB`H=;g=Px!h4W#GGQxva zkS^mo~ zkR{81SoZe_vEuC&lz108leQ@yhtp-IZ6>---!uZyMqdYJtcqi{=CuRz`a2R`MRTtI z-9ow0_;;Nq-jRYJE6uWwHek1o+;U2Dl6iT0eYDMV`xY1vJLB57)SUYS`#BL=!mng@ zHEN|;GvhB!?$LySne*p?#1^<9@Exgzkme+Tr;py$hOk#!-F)!=mY?VC()-YzxKE#N gVPOLo8FD|oRRM1=P3CBQaMN|JEUzwCDr4^dUv2$BTL1t6 literal 0 HcmV?d00001 diff --git a/docs/common-attributes.png b/docs/common-attributes.png new file mode 100644 index 0000000000000000000000000000000000000000..3e2c6db9a1701095e81bd075e146ec523986c35d GIT binary patch literal 34595 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

rT0y9wyqR|dHJiUkne(9kRFL2 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 EFEfbG5dZ)H literal 0 HcmV?d00001 diff --git a/docs/special-attributes.png b/docs/special-attributes.png new file mode 100644 index 0000000000000000000000000000000000000000..9227b06075c841c2169675703a9816f443ffdc97 GIT binary patch literal 33272 zcmZU*19V+oyEYuPu^QWGjK+48G`1V7VPo5D+}O5lr?G9@-230@^StN0|M@b;8hc^R zxu$Mi_q7r#FDrovhYJS=28Jm4Ra6lS4BQ)Z7{Po5-5FBh5ddB2nTv?XONxjP%iG(S znEx;a1EY?0jH#CHl}8!qG^;E6K!8q1?POP~Xkka!M=ExRVgOIWNp3C!Z{^V;+9!h! zgj5p}oz+31N6G>E5ToNmNpL`C!)R`|tICuIW(tb2=KiKI_a%Q*YelXcPV(?A;Lx$zDorh7ImRQI-yNYH|MiazPkVEl z;V&=wKA8a>!LU!IcnoN5V!T7<)Z2XBs&R53@MJnHc8%)DuL!PuG$w!c$@QV;_BU!a zX=`$HnxM=;-#9sCI3ycDndhO1Cw_rMgljiBng1RumQgw>s#G zkJQY;!Iqnm(b?IV!I_o8#@>{XnTv~yk%@(og@qneg8rwgwS&G3z4cGBe;WBuJEF!v z4eiZs9n5X4iQn7RH?VPZ;3Fk{f6@Q^{nJll7xVvpll9MkhXooSi^ z5gRMeD;@a%cV+&q{NE4%t;oyxKJx#XiGQZ~?_JP5^TY8n{?D56!+F<>T7ZEGf=P-B zDZ7B5>Ogy_h}{FG-G$w3$Y%orKEbG<(4l|6Z=lIJJYH6PTTxr9_p?&dp`|T?2{91* z0A4)pE(!jLxcy=MCX+S#!DX1%6_$f!525qreD&x?hST{xCFLSH5E*+N!6^catP6$- z!V?bshJQ}$obK;cgpa6Cpa77B2?F$Z5*qdU)&?|mdg~adU<4SvHvsQD6gIec7BcDN zPC#c$ibf?aW&VrEp1EE-9Njqrs0r#IpL_#~P`@$yGL$c7EURtM*~GMj=7kNz+w|q9 zC~S7VvMPaGp10Fq7Y)zjMC824aARD&S^0~vp_@$ZioviYzc7g zQ+{Ea&&?r+H+U}gKRqH7$f+pM4oKCv9lI+kr9Bg|xr!+ayFIKS9ronatyzFI^S5pffBm&Z& zw?EjW@g#lx`SYg-@C|6Y?E-;G4?rpHe8Z=p$cI6=mT**IOZ0rAS1o^*Ocb%ws1j7s zla(dp*Q>!70KU41-{ZP9Spw)?u7^9bb8>{eLhI&a@$f8pfvbk3o)q@>H{Wecq2b}- zd7r$2eGO-=#%%u3fwh+$P@KW6pp{3TdooR53*RpgCs0qt#fyovmxuETb9lfDtMNmh zT~IyFvm&^h1@cjw)&SqkKJ)UeX^9Hloc3a~|A6UuwP3?1AhqWn8c}VhY zH|~s%x(CSjM69iy7TGY<-AyPXBlGxrv!~c!>v+PTal6_)gQ(KI^;a6|1VP(pBgY65 zIdR_U@L-DQ!xHRAMQxb-yF2l(Ur{1X_xC0ztFL$^X;j^3FAHd~Z8c^09Vlyk^sN!N{V*~lz zkqpMuO23<%hgw!Nf7&x}YInUsl4-yFq}lQVWBui!kmb+eRPWZo0oln)v!%fHj-37( zBi?S#3DXq6(y9azW1N)>(4V4aY^#?nq9JaC4)p|MqfDJFe51;a_Sdfop*K>Nd|BDv zcQMBU7n|cR5Ij0(#YViFqo)04#oAn-knk-oNssvAORg#p6_vyhg|CdPCl$DvBfp-B zctZs3=g++Yz^8`W#=D!hhtAD4XJB9oYk~gptmNa}LS#{Sxqo|m``GXF1hR{#ZA(A= z`q&Qcp*7dR$m?Io+k?xRb6$6~+3w>{UVD4RBjk=~JmNm6-=VnCd>OC+gu;7D$q6C* z`wgE1adA~>$d@rhWVOzeG&CrB+xqA-@&DWpD{#VE+8;B08qWjjHJ&4rXG+G}-R9b) z?qOyNe?~b@TF`Y@EqGBV!!YBCzA2${Of8C35eCYgFCFNjF^0?3X!G!B$?(+OIQLan zrWeHbGNLNUZ+`*l2~p5O+gO!Od(R}wRcAxrt}e zwuDK48~Y18`_^Rk4mAx;qDAfpcx$wlN0SI5BLC)}1v}>-qPI7@4VRZz&K4GAmEa_$ zCjv@K;mh?^BYwr+903-3#TX0Yd;8}Hz_TB$iDEiKxcwwv)mYC4+kn+X9*EDLiPK|Xlk zgEzlO2FfKPV8<>-Hv>~5I$Vdx;^7a+1{pm)8e{t-)Vj-?>$i4~9Bw#hB*Fx*Ws=$D zgv5k!0uk@tB892P)7r|s&B8AiZ7Z*`6|-5$jR@-%rsNG9vw<%0?8r@AZ@Iu9xw$aDK)q~G_U%qH zz=`nwT@{i|uAv;FvH~kUMvgKOknIXdybf0_Y!d9r%R2;cu>Jt0v*))Vq$ zXzI|r_4JvBp>EkMb=Ya*{VN36zT-kZft{$@p^T>6ed=VNpJivWg!Hp&;ZNT!tTXZC zUeCsKi78ABsvnkFZ;;C4W3Je*O_@}(&fMUNctD&2T4BkBRD30aw5M9q6G*!noFo!4 z*{mZtqHN%RT7V|YD!MG})gck7>>3&cQo6hq*7@{L^<%~ET%flB9*Eth+if4LQXdM2 zryz!}b`+RU2gZs(?IzR_^(MZ=q-)Quv*!lJuBZlIDo{<)rI zIAbTxc-h0Wc|r|ds+Ld!gm@)j(>{d)iqY!=yq-)wkqh^ z#O}UZ8>KrXSNHMkl%8AhTR88)NFJmm{Du1`QMI?B-iL;vLFD(vyg`w7$m}HH_hva2 z{*gfucp$H*7P#F;{umq?r{8z6kx2U#&Ul@P9O&vw_DuiBZ}b=+ou4q`dMU%~w2)Lz zdI^^-+|HW{<4?o>kT*NJi7>Th{#@4ZFvOoklS|K2^i!mg2Ag?No*eNu&f8{c{lmaT zKDl)6+)(Rqs?7P1=cpb41qIZvQrzJeP(rJ}**f8bIeE;Xv%aMvAR*jhnSNrhy;s^o z3#9jhCQOU=g?!!_isfuhzimF)5L}Ig3gB|HJXUj;O)$-_ZkAjmH2WolcqaofBQBI! z=vL6xPt@17GALV>teKNp$_9AkgTLq?M8@)+o1Tliyf3v|?BIg7K4(|2F@V4XoFQi$AV;d-$ot)=kuMsUsD7TiCKb?Ozrrxf(WnZ<;a%qq zUWS3@eEY?y2etQ8dDq5D<#_MR*GMS#M+w;uP58Qp5R9lq+tvQdFYWUbQ^JqT(Z4*w zxrqb^j5UAWD?Q1<0lYYbv>&D}}6vy0I}%7@lHz+kc3qD(k^U$tGUHR|Vfa znHn08NcAHtNW>|{?GHl(^r5hQ34?udSiKF~D=X;y)O;X4{3PHUqv@yRE|?PA#L`v< zk8A-X$n%maL+Th5Ca1Dh8%hu>y~agp$CNYN-rm0F%@)6C>B5e;UX=*1b>V}1?+s>= z>;!Ye&DSUrf@*M^zTd7hF|gHiv!$fe73)-&)DNWl4uus{~1$5E}oqidb2kF@bl95J6#*!PPY~ z9iyj1<#nN9iE}0qU`0Y2=g0nX?8fy{Ni$(n>oBT4S2kahrJJBSb%C*V9GVoIEG*;L zcW{$Y1&)G?3su7>$cTJY*D!Xtb4t}gYHwtgt_^T){jghD*8B1yt}$>$Ek2@Tph3mB znTv)n&n=r!)AmL-dwQzAYCh*X8qr~Cfc8qjDkbL7Fi0D2{vw{F=-C*b5-Gx`3#`yH z_D@pgHyT>&?uRab0m_PqOLJN-D9Fo)R9&K+Wnlv5d7rAQ$?`Y7w}@<{THE_brD|Uq zwDt8-Eucg`ds6&Zt|QnPjGQ-uZFuO*8Cv-=VKGr_M_bMQ67xKj_tMN-f+KK-KzeXq ztZC-_plsDzzM#oyRx0?cNK(jdLPqo$46;dX_z+=m-Xb0Vqo#HZI>qOJK4Qi*>a;a~ ziUn^Kjg?wJ14{i^u~`2XXXS4XJ{mG;r%3S)31S0U`SV%bE4cZM&s{97NU9oaRs7{F zC~?H6PqJw!v{sh|g{Jk?azt|cXFeoYXsp`5I%4U;l(Zck5uJW)_-k2b1TQUUe|Ywj zZ`}>U7yaR;_*OL3o>zoqHyCEuTTapg<_T#s28+@Fi)*{bm=mGE==oi`<=dPD35-FFMr(>%N@-ay4mGeo2N%Pl-(_ z9)+v6MFF2CEPHYmIs>~C;Xi7GP-U7N_QlEVlkRNGZqKg(!Y=y9Gc^1V<4*x4 zex^T8ny^oL7s;u8k5OA@Bwtp$|K9sSvy|A%8&+%ry9-tFGzI^9>Q$(LuqP<#A zy%LVD6e!1~ZJAjLF3fO)A?fyYIoj)ARyZ|%m)Q`(B(&Bk*o`2!x3zU=+tV5+JY4B_q$c}=rC#?e&Qqn88Zhts21%H-)3-05L)TZ)Z?}iED8Rc-kM^De6D*}}X1025kk#J|3C~8}j>)i=A3l&U) z_ohhZ)p8PgqFSB+9FoB^8;=BpGiXclfJrT(9-h4^AulUWz?9+Nz)-p)#0p7m6*A~; zw9_6>sxbyLL!61dyU_6yotZ?3_+WNV5;EFga=@YchWgRzxVaMdi*|yC6c_bT_1^dz zNEAXs8Y@_8eT}ll2RS~%1?awHO(p-#AS}yT0jwpB|C{2>A zLqEo=Cl0pxlglTxdJ&gdHtHc+QR`*>CYJzGvrQwrA=-!OX`VU=kvErZ(Hs;&G#S;y zwj6OB0hk08^cXsHR}hi{fvD2L&*Jm;cJF}F;Ci$I7li)f2)-gz?>MI!MgQ~TZUJGz4PXNbg}coxlH%1nKJ4W?DhGC zG7Tdly*$0JkcZs{K!sKE32mU1(~D9DH#~uszq_OTn6UxXmX-^eFqA`_u0rncTW!5RLFw5kRb zeRS{@sqjH6|Ad^bLD1gHrip#FNPo|r7kl{@r028iuuPJJE{93T?>Dm6_ zOyr*+-&0JF^un^{`RQrs+39>a`teao{blr{5UqZYeh#8lbH;inCCTldKYs)nO>))& zr#E}aoaRW^*Kl8SqMcyHoBX4b?=I#7ius-gCa^Osv=DD07*JQGjY@rW=Z#9c7qN>^ zc6i7pbx`G%4{XZfL{ImRF_5&Nou59$WV%8iI?fH$IE-?7w!Mm8ip$Czswyf5c>`|F z!Yw-Qo>+$Y!MLm{h$JMSahwhaIN$DGB4cIy@j+^g6{_XiBL^FM7Sjtk z?syyMl{Wx)UrG81oky1_J*@^`s!9$gCcjy z#Gms?I?AayW=8czS*2L_w~>6tJet|Ojj8F1`7Fv>vG=VX*~^H)Tb=H&bH3Y2h_MvU z`mC9##H|M5d`{`)met>xK0P<86XZVPUJ+ZaPkU$x%N9)R;^HMc)Z$rM#P6%#cTmYb zE!*PN38=OolygqIi<`_~F>b@huIa=>*`)gXyO!mrEd#~crcdk#hGn6fq|R01F@bqf zr?IbN$;=oQxfk&YnFKy)cA=b3yx@)NEON`>$$T#~`kU>appgmDzKpUBjg2MRSxX<)I%f~YMR%`t0yJX_P{sY>6!fk zqBA7V1#|!C$+ga_=bPWQHjHu+_{<2Oi;tRa#)FNUNOS?-zyns^+r|&}YO)Fnu>4pp zhdaVmrRgL*U_@=5P|^G?^83;KA zh+x7NXq%3!wmL|`yD913D5OEle}aUirO>YDL>R2M;(>C!2^rNMaY#=} z$O>Kg>GzA>&lk5UF{y5%_{$|iUaI(qUwi+Xm-}6u(gPu+Wb?K3B>l7aZ z9Os7F1k<>!gk{9CO@cON)uBxriG_wOLkoi3?9@Cl9OTTJRQ`_oRu>8#4X}(7o1K^? zq$D_&eyb?YL+S+|ok6b)=6g)s@fY;~MePt!=vV;EM0Vk>iP#3$pNh!!hl)BfT-)~^ zk-z+Y()T?1{yTb0kXn0;|JWwAi3qQ;rJsX+BSy(PpdUM7Y|FT>l2t? zPb{EhH}7nf)Xe@5CIT)N=xx@gQdRv^==q4iAa(&WZ=bobDn7hzuRrAy374do4>Bj< zvJq7e+LiZxzTQ_c2@Jd+1iqAQ^phz&fiQlV-xYc3%QTHnCh03w4imBZiPypkDdPoA} z5O#Snoc3mN4YS-IouRm=?IGO+^|vJl)GFJb53U*&mmOFc-xksI=5x55~`^%Z7x- zV@HsL@HB44Uz&rq%2&K3q`Y{qN2c!zwgmqf9|-yye^)^>-Hcl99Ln)V;3lG%UH?FB z;+u*jS&OiGY?Sh`G59z?ICgDNH~9f^JhalU(z(OJKJ~9l%>*GunzcB#ft@M9#(8q8`{e`3I4$F_Ev=4 z%vx8fzFKHXgfz0=pvOVKS>eJOWV7k2_b3kAw?bTyd8=~G78J=Xo43>glX^4tcS0+# zcDj-ENjSqlK1cYa=0>BuqAuFLO20Zez^b0>(gn2pKf+XU79>O+5wUhA~aW1jY+h z%z1-?%HMAX@cOc{o{f!8LHW%I2()~e9Yrh>{H5Mb8PBM7$-FJVIc!4S56~0V!tLq^ zri1S)qbpxnkU3qzu?r;=n18G-apG8g6Qd#dJgeKNlj5S{;DXISC#zTk zq;0P}+!SxjT64`;6jXJn=S0yvc#g2n%>D&8_uh@uoCm-(3P|JnLc;lmcU&51m-KP? zOs+kbKC><%qX`hYTV9>rFv_#08aR`CAzqJij|$ic_--StIIbVRfKJwaiC#hI6g+vO zWhi>NSA;e@dzIq8+hZ%_idlfrtnkB#WpKB9p}xp3V*Zr-4cDE^Qc^%%iN_sHYE+2jEdPbOH98lmiVunYYic=g=h z$slNKwbYN%*Zeo=lZOF4g#%wwWgfel!4&>$H*`XMwqIUbYp$dg#4Hhz#-pULM)#Qi zV%2Bw_UWmZCBs^;otnr+)QfrZHWk=~v`}0Wc zV#^-%SSp7IL7%gDmc+ZS1`4Wt$tuKdjUV)f4pX;|`2->TsyStH_|Hjt8l$mJMU1*! z5I=!iLo)GMbZ`Ny?Ug^Bv9FFFcJl^h;rmPIaw49rW##=E2+}`i;XBjY13xeIeRk}9LL%f1 z3Vh%TO-tkDy}oRxOc)Hs_C5FUF=+LSxO!SpM$gIlf)~^TXoW;cDnSf71(SErNW0_W zO@B3>K}vstEPZIFeXHKiyL4nm-YVa~^ivlJRoo729*xzE38{4IAe|8vL+sDsgSI=K z#d#_N6cZf#{Aztua80585uMO$EXI!CfRVd2fNyRY+{==S>F9r|ue%=NC0)B&qba7S z#=Hheaq}klR6cF7`D%sq>{(9Qm0Pv#4k^#okD;njZ~MjxDciZ%d!A)sX(>}jW)Vrn46ngai(z@`!JDm(k&S@A=9Yp0t!^DK10i-x5=zMQ#6{lQsrtGWV8KWe?a zwEMGA`_xxcrekG20T2}3voD&9a$MkvSf5Z?R)#MCXhK5fWg?1-LMkefzY;w95&((q zYaQTY00LLvw_pn@W>Vhg_vtZ2N_*0o6r#iGS^Kt#ZaZJcSW2z241KV&+_ z&XqB^yQ~Ja!&@fcY>NdQpa+AyrVNohlGnD*NZxz=gUx;e-{+%^rDMX!i-Bu}wR#2F zl7>8$+|5AwFOSPZSP3iMGx`aN^q_RLF`Aw)vA)FCft}p3Hmj%j5PN*m9GO7l$NKtz z;b-%)l7d}n?&$i)#=>rZJrvnwI*R;{{mQk^e+OMRdI;}TgDU6*rh2YHS01<*pSPV| zx<2FJ`7+ElEubGWf)c?^+J5-OURsHn#-YT8%Y)*42I|HPGAhqnfhv|J^Z0k-7qrN8 z)uJf7pobet+h;DK`&Q|_AD!IuVqPEQO&X(Twq8XD%i>C6s%fOg7Sq3Xb}A>*2DZB> zG_~n6C0% zqGb&VV{D}3=#q0>9JVz{I$fYeP?~YWafNF3P?h%FkHwlz-a=GQJa+a`9G59Wp`m9N z7z+QlOo~f)CUBXk5`pX-Xh`{2L7xa#v?G!Z@(3=&r$gF+v=-0(?eN|m#I?%g`Mnw0 zw5>NkEoj5cN5v8g~72&yui^9!I35Am~tPHKQSmj1By^aB|5&>yP9&GT(BhzAVv>fBPH?=|=Nfr}{88KLe}hcC z@YY4y+u2tm$gUUyFaxAWIAtpWayK*N>Pu-#;!taDu7{#8A2Su=$(8xlVBC&0@ugR$ zAc6w=W|BEcFhM+uuW}Q=>=IoatN1jd45~M24};_xFzx=(;_7!6Dj(lzp=aF*_Heun zZdGk4AgEQt{7@)!)0ousEf{l$_^vt=Py+iVZy!tqVa)@+vQxr{S~`o{{88SmG&=du zLa5jlu6kyLVtv0Le=DSM4!&M;68n%2Uw-3bNM)pfOex(@3kBvs1a&AfcgqCSV)kN4 zr0jgfApQ=amX?NT-6)!IYYCAqekYCz#xH1?FMty?s{5&+S zdNfczZ7I*Xs&T$bau@OPVqPU#6d&H%4-dJ^Kww#ICQU>7+luGy7qT0Bsg-#D*bR?Y zpDey6RXmMey{>n>_y@nj_@t)~g|5 z#9l2XPnbmz&v3eAq`_6wMhzWjIpgH*l$3|vY=jf4)vZ`R9r9vYnV+M50%b=juS3SR zoGxRQlV@g2=9i5hISW4 z&RpKkQj5zCOuK7rl-K;i&S>s4d(t>UH;Vr3`dnfb&6-##dD_oWY3-eIRtz+l_G)y4 z?ST&1&IK~`A4n(aeN#vS0j7#j>W`M)p2Y#3s%YpB%PTATJps&%b>^+x#y@>gO6r+8 zU1@MWd=Q`K!3Lo=c%)rDdY1BTxt9yagzkSGm`UQSMG{7t&{I%W?QdXo56X+L6tcQm zS{cGq=|zuIYZi_jw-`7$dhYM5R#ngD^G}*<6T!JyPR%@a7Gm9H6aG}g@vV^XF$L&E zb1f7>gV*pdxjDpB7I*^%7nhgKGM3&6FC(OrpL;fDlun5_Y&5=H&D3?opTQ-W&_JkS zvL~}&vLjrFF|$b*7KDdj`|RnpM=t1jY6BwWjpg{7Q8p@`kt;f+9Otu@@VWw7Av{rh z6F)tZf+zDhb2r$$plY#uNAtCM_vS{^#Zv?Y2W~!Amvb*XUga{@h>x$MLV2Y5F@OF+ z$N=A2LAJD#esB%WVfbT+uKfuD(xd7y5(qh^(ANCO>RK2;Tx`&=0ip!CV$c|uoL zb!u?)oN(~}eB+gStGHtiGwW7{JkyUlueD8JV$ zdWP3N{q6yle)sDM+t%O3Fb0{VZVncECMl_r%as-x^}0h5-iOuPrn^K-<{yjlr;F8C z(frR4e*S@u#c~_MB8FtTZg$Kd<_XOVJVU<`6lTO5miC!S+QZe7`=$FfOUlA>52kl| z74{q=hHWiY8{eJEV(K;CeSSqScSTJH!Z~S0MfJzli8sHuV!TbGov;_mw$P33q)nr9 zaL(nX&2_uVt%aruR0b%ofD6t=Ev{kijO6FyHXE*XI0=>pDPRnVKBogGq3J}ysOcHe zc0bUw7isk>$u;W+PQ~C;_j^1WF9Ztj}9e2w0~{Wu_%2W}6>LGxCEA2oRxT zVv^~hL|31`rgQQl@k@|422MwHQ&ZS8N8Asw(A8g4IOAG2brAvdE9)&k;h zC(#c+68+$=*B;xJFnEr6%BmTPL1+h~7U05@cE7E?@ymCS9TD)GK8EOn()qlDRABY% z;k4%GwX6W)dBx++g#Yh@`HcAZZ#cV0TVcxGClmkaX??WQPeS0!8w_gg>+S8gA8Rer zXpYAYHC1#82+mhTfLghYAQ0A08O5jL-{o5uxfpj%TXJ$&y4pbDNwvd~srxyg;{${a zv^j1An>m|Px=y%&tS8xy@G9vSyJucgxTxV8sgfHZtT|~lS&cACu3`@hOO>&#--7gV zk=zv+v_-0)?%#Qo(C@}s0Pv`1x1ht3tL*_|^<80UCD)NTP9k!whl5ffs_b{ir3DUI z!)f`fsMHw3zqMVvc|s&-nQ4(d__yw>CcyUQDOX)Qm~t4ytPb1u`$(_&4jz;MFdA#u4| znz~ZCLq*EmO;<*dVW4o;&=s7SrB?E*DJ%QMpm=*KuzVv>Q&+ZNLX>#NYF<#~za0?a z@qBuqlgF9P`mi=g*e=&#vH|E-@AQHfkH8KJ2@y(Wapes{j*homX*jp`4(E~xMyxcg zTxpPusxhk{%P3s*^&Q6|5EiUX>AW8s|5Kl-eVH$|0S@_0CXLB6BkF-8w!5) z_KOhy4x zryw15y{tDNi1bAQ74i~>VL2yul@5|8bm6Q~4L$+_f^Ql9sG}xo_8TaTayAu}x!$Zu z!hdc+e7eoT9iW)-IDa)!k)%5EjHl$H`tq=bxBE#7lNWi0+cE#*%F=epk+b1ds$BQ* zuuzGA$Lq1gB)lI1DAERDtp*lEN~vP*jZ1gmpneCG1m8d6+2?&a4q2&xVX|(%V=e|{ z_j>OF9{Qa*e^Mff^_QJoz!anfqng3LvkI-)LUvk-Ao9+iYzH?KG=Fw~$(=4QtElLX z5agMcML%pg4NOaQQ?k564?5|F|kaF@2>@KV>TCwqMWn&Lh{A^A~8i z-z2g|9RUR#h=&%VnmRgq?p2$0|Dt>EkzM=`^rZfG7zV_fXnqIy8mpK*3~GP2&fG|2 zsUmAS^ej(f-WU*yI!qe>2O#wg7XoEYFAlfE|4)2eXob%1as5`+pu)^|On%r4?p2}x z=+ezE`Y~c53uTiXY$kW#Q2Z7`M&0=~!sAv*bgZ+Thdpwo57YrS5RIvOLBIo|WaP${ z!3%QLGnm-chm-HOH|8Ii$QlcHX-lX8IZ@eTlG(W;YQo#PQ2#m<&LpDfhk1dJUnPl! zdiB2?;42R<^=k;OMmvr$&$h%t!}76v$Ad#JgTTPq1r-v38>rXk=)m?kDjMmZ zMzn{`)!9hRq=-Bi5V7EBOzykFk4*ujxzxoU=;X$q@iSy;)>B0e0A0tP7bB00mnlsQ z`y_35E5hjUrc#=FSo;hT7DA*Q%TH3_ESdr?qDcK!fj6j3#-tB=!zM)yX z{TXY#TJtlvjp+G7;_EYj3M!-~Xw8|Ut#33tSzSl1yt{Z#pw1do00eIfVv%JfFBeu< z6Q&Heg1CzOoXsD<0+N2iVc2wn62iQ%WU*dutyR~?A50sw7|tyo%FYKC2fx$0+<9|d zf7U)-)B1AVm9kNN)n{+MFuyJ?Rv->r6ZT6?6FCAQg>okNpJ>(eI;wG~@r#@M7ERPI;3;7oi^X!2g<_oq7+-j$#23&6=kUT<83D|Q-oj-o#(aOAO z<$CT~p}?knpc}aFyNFf#6&76KCg5mmi+f92Z?`Ov583imT)`3r{QV-1G5}I1T8c)Ckz=6`Qt;|E4OULBNEPvv;O_> zJ(y%p!sg)Uk(?-xOW5rs1_}Kh$+5@hpDvLR;?MI0L#xdaP z7M+-Ct3-vgAv^}667|4wcr<@KySlj=+KT2qYAGD-^MJI7HXVe+cYu)x{`HN$W0<1$ zqn7$IF|S+HLh5?7erqjtKm>0}mI^4nTsi_klKX$4J;CTo^=_+}}@x3I82PDfH~fe(oFs z>@OJ^2kI3P2wE(VcfdTiknwxiM>WtOc_{8BA0uU~Q3nDYbBTgV{jt1wAG2julVZMq z?n{O0XKx<3QLR4h#{%Q}G_D{_~ zQPseSu_EZ%LOEe?doeT9^0({>IEhHbB=3WYoRDjxdextvcoL2gv6W%}${9g@5O`nI zC3(HHz6?ufu*Jdt<0BkxO>CMwI#>Q@dtVpjqA)U``ZAJ??zQN;C$zZ03+FgocgI`k zfsuAXvL{wZ;A%*#wMg#f^c4Ze$L!h)@#VxbYDsQ?((Lh2O&2T>V~qciCR^&0IZL2h zkORP~xnz|WO2>}tYdULP0a9nd9JTUpE4m-R8!0 z(zB~&FOR|*D+gM*9b;%FRxS*84Ur9AJ2NC4^_io*uLX9ARAP&!G`lW?F9sKrGQ=dW zHBMcPW6_r_wkiSkW(u26!H6Y~;~`Mpa&VPjGen!lny4nu(p;aOUf-PU zAg8@9#`3F`$O?yf(E93Zo)YreZ82@-B%!4=aWj?-SMcI znVI>s0uSQLI~~~&MqOQV`^dX3VnI()W^6W}n*Bx%Yv|#gjM()$5LPrloupgtE(UiX zMoIBfiJ-ibUvt5d0W)g&mg=3bBv0ro&RopG(Kz{e@zDt}eHX-8ppN!wfR*2qKKO*= z%O3@1)yLU+B#sA*30O9(%KV$$(GBV{PLk`5qEB^n>$e~x_}ap-saVeJpo6@k5a*_4 z%Tr^k_zt;8_(a=;MDV63(_I{!x(yA>f=|3s(7nFLk)V$SgtL?a1a6)l$^~+)XS9k} z$lvy#N>{!_;MsphCC0-!_D-rHSSz;%eP7XcAUBpC_4X>Squ`TP*ZXTCn45s>9I1QD z+m|M*I$IV0Rdagn^04+yQjZ{V8D>uR`{=1=fVN%HpuQcjH`0&x`$7em*CytX3IB$jbgF!%m8GY~m zV?z4+7f=#a%L7nM)%ewb<5;DZ32yv+npm*a5+DCmfkd5sZX5(|f8o;1@ra_b$ibiM z<~#0i-1)e;xJ=4o!Rhh(dfUK9EZ_fqq(_gDx1HVA=9-(_~M}#E2Mhv}p_F3pmUgDA0OR4~bMdW@BK*kTa zilgk+gSl>7#mDEb(u?Ui8$5~&t@&z0q(`vjJvU~_^u-?g^i)NUBbx87>|3kV4JAHb zUQbr;*_Ou|k+0GcbYFybdfUgRsGekin)DX13&SRS=62mrb&c>g!B!rH(yR5s>dTio zvOZP_HSzVR5Ffj*sNx9?u={Jd#Vg;*ruhXPER|>DyGFTC*tQ+si0n2(9xupI;xCSi zcml;bV5uv{`kxJ@tErCEa7>FjEF}a2k|$}mzVDFE(6<<;w*fsK(d<4JAT30DiQ+nv zYGQGtKlilR2nJ zV2)D=eybJ};{pnrigfRvS*7Raq%kEX?YJRBkSC{~ zYRBr>t2&KH$d^DjBlq~$;@OfL(^4XKVEVrr7_I&>49q5-`1*tU3Ngge5@5{OJ<{`W zew#FVLvL)FBjXWQ41=qQ`TnA+QDLb#%cG-*bH@2)9nEg3$#Ocphg!*J>Uo>>{_6@s z->6eRzy9&Zuc;Y2SCx0aDz4$xY)-ZwL+!XFH22 ze2o+wnDY%iuMcUG+*V8{OS|NgVtRT@oTfXr9!x)%xD`40Ln1mf%enNP)zu80%id*>AjPAU;3P&g)%o# zS6)8AaBzEzxF{_ci2!tp7L)kfx2Y*koVHMdFCC?BOp!ij%8#jez)SU-*5?(opC-&Y z+z(#V9+U#fh~mVcUl(*%lvc>^V^dOIYo$KPDWSbgFso9i+3V0H_{ zR%sZYh`s3keCV8W1&!7*E&F9$NnpF9*v6nvUJVgBgA}X$M9iIW;4{rDB8a;H-(BfV zH&ml0qQiDsxvGDZ)9O;sO;sCouP7;>K**DP9FjY7UKJ zCH*$sDG})j0|OBB_-d|2Wd*!NjEbFaA4+6whbkGl=AJbhcd&y|R#72S8GAfhUyfZa z_&;=VoewLyd(@cl9esT|{A-Z=7?Gf_5#VZDC^>&H2ww?%E05g@ws%Grd>w7$_J8^k zx_tDRmOg>YPeeGdqZ0{@N^a_Nc2g0GlL5y}-e_S?UK4iUhYv#|Uz3hTMx~g|zCwvd z5&AzryET8+rd^Z);X2DOG3khkTiSf5NZALC12FpZm9jC61E%M(+}=_=d~WEuYo+2zQ#Q%nw#A*ujwpHW6!}EAXKr- zp|tVBksg!CY>Lt^QcU-qWtx&dF7O=AnMo_(jD;b7-vuMI3*(wTT!#CoeXnaXGm)bt zI4K$3q;z-#hoppKjhY|guEk(DF?b9xml&MQ*`T$CsexF}NczBrk9+$ODb4=~@w%DiE zlaoa_F0hwt|2wq_{;g9UO#^4Ru;R9+SnY6+P+`z=V>B>Dg31(26d}B4vWWU~*BKNa zTZ&I!zqY+tVBqEDCHj20xM9fR)()8yP@cE>Q!FJDrzo5^3z0^0CL_Xd5&woU1mH*o z1_YmgSPfmsFe_NcV!CHYy8O44yNUUvvWK@?JkwLbE=c_#Hbr=fdwNy-Rk1ulzmSee zadK!JGeu3k&|d;XO^8RfCfox~RI!MSZ)tndVr{3?*sRKmROFmQin%Z6x5cxpz=QYv zh)||No?^-j?gA)Muc=^lEpZHvyiBHCfM@euYK_=s!B}L%shmfWIHz!=oIcZ%udrbeQbn zRD|Fqm&gAXTw3l1eevK%2VubgocBKAYY>5B(^g3DWajsFbcc>grb0SUCjI~FddsjV zzb|Z5K%`4rS_MQJq+?J@krbt+B}BS&=uYV_1*DPAp+ma6V?>&v28NmQ!0-Q_>pdUN z7cNHU3HG!1z3z4Id##7rC|)%5C>a~=X^6+kLgJO(rb(Lj$p0J|bE6r)CYEAcYJ&|r za#GX}rxy99fAVHSp5VL|vG4FaX{)ZlA%%>2pg zx=H=P&KqtV^dV>kUNc}s_YfT|#im;LM>R1(aCnUxI!Pe3@Q-$Z&Gkh)fbPQ_BAl5~Ti@8O zpYkbz1KuqktQf!B)snY%L=jyVoua!if1kp|=NPSATvfkN5DrUWW$Lm5W>N5$?iISgC+3Md?zk2LT6a#4G9@9Fyw8$1 zV!^)Y`9v*2C*hnpC4t+yKrI3EfC7`mR^%j9GgO*mf$KBzr|qNyT>AK5d~P5AzUnZX z^L_TK*L-L=O37j0S}$XqLpUwkyXE0(WU7DhQiM9&C(Tbdxn&z_?}Y7X-Q62IQz9~R z2-NIvZ7F9Oi(j%c&q97CCT?9*+Txequ8R#|)*Rc$v`0tPN90+ z#ZYrIZrM-PLHd#?a!-nPd;%M=LKHiYP}TW>#hPS}uemAWS+EA66>{%}p(=U^3jf8( z(?+rDKVC8qZl(K!E6I)iKa7r7#GJvg>raSON zVH6fK$&mW%(3i*7bvV>>o8i)~!|pA(^i%D&T(!{5^!hOb)EO#&*f&M=i94-DTD}rF zax*@KlOb+xf18YlL^YW75%arn{0<^XNvJlDtjm7pNp!bX#FBs_vH&ln|4*}En{dXO&iqyU*EeJ6_ z=>F%<$E3e&X6L?4jJ5-tr6ZFK0;*t9#i!y-$9wDS_)S{{v~NJ8$j(P4{D0m%u?0D& z_cJLlNzraQDUl5M{s>POzYOdzM9DQ&8BFw=k0f!3)nWc&CqKeY*>t_CGb^IB;<>0)o zOxG@@4+3YqSg2m5`qeOP#|r5tt>@*X4efJt)CU`Up7iM6exn9esGwJSt|Yo5Wu*ta zK+6xAXwsRzp6wk8)el)&A{R7zfoZG`h|kA3VXqf{S${yS!jK#uE)lczNGd{O-pe|B z6)VN*X&fWvr0~Nmgo--}$h~2WtPm>3(w4K!GmIR_e7pLy%WO`IRZ$GLRrHs~RC##~ zzPu#yg-Zy2@AP|++}x7(TOAlbpX;F-tL0@Tex=2v@GPE-iieFwQL?Dd#sMoK%F4D) zwp8L*8wcBH|9Dl-Jdy!YA#JY~H--We>57Rdwtn?!UTmlKphtJ^%t>IAUV)(%A)GI~Iom54&+1+b`BIu$w+4m3a3Xer7mhr%d}>3{Ek3Ew+FTz_5$ z3GA3|jD65zeL5(kAPUH|yv>@wE_4#uU5Mrzn{(@akSTc-rHFMxSMv}WL__DRxWqm! zFCM0hqVm?7W9L71fSIsv66Acfa1tpHQ*y2T*-yJEUpv2Mf;V;Z&VrNMm&{)pNunhA zr9}swpfkkz;22mA7B8z;BAys zzAv7C@XT(2iqi#L9IOz!-P>)TF^P6NP70buvst#eiyDcmQ zprkEy)Zp_i&@(2h&{2>StD{`r`qO)KUT0Cj2TvIwWhN(@1g?6x{RMI9%qx6R&~mqk z(}2x-z{oXCj@d6-ukyWVToP=!<(5x={Faro|?Zy2c0 zVPxIT*)gqXUR6yX|6vij;*{RQ)QX8_a)BW_ArIWdNBSz4!+Ch&7T0gmGlH-3QzJHq zhsWoaeIwSoYHDiH?B+xMnVGGkIIA}gfWZeF#gdaEDZ{6>VYAWC2vI)tw`#Fve4V*; zeaMv{DP7>S3%bC7eq71D_3VlCVJ$8`A5#pyqSHmjp6Ci$2Q~(Yp!@raF5r*M1`r!c zf|ol!C?4c<=`dtNfDHv8YsVzf6!?RyUK=pKibv8wb%U0PDR22MjH4;9MR6tUApY}_ zJn-b4`?UTW`(_=Y+*7t8g@l5uny&fP8{)e|T8Rh_$A8M)eQ#V7uyJm{STjK)g+9p6 z=nA|NFQ>j-&0wm#XG>RCRXe?Zz*-%B+ueCsx&BP`gI;8(KVqcl`{4dhY@Tee*rOT1 z#nnXR3SoM|J|YZRR;T-Oxf1Ei1U#REYJf1An^O*vKhpi{;NT)>Xcu}m+IHcgfkbGdez zhoXZ%zG2gjd~$1fzzCrt{A2k4>m(s|_i=?cdI|4-H7o=H6r>)HOL>Ws#P9~q+kUEX zR00!Ca(zNwE_`v|PK@;RzuRRL>V?``ekn18HNLn%F!Jtd*C%RcvB^LugW|M}H&4q0 zYop?yyA8fwiF&hhISzVB`v*8a{C=7neY_t+Tbr*k$FY`0FGk+%q%PZ$A|zi26y`if zMF#Iq+L4L`-z%sQcgxE8L|yUDt5?A>h*{;HM3yD({h2%*_8ll@Q4S`7fW+i-B(P=V zh~)RL!WbhyGc)%HI~YQ8>{pl~8g?(l*7he9Ch@SXGr1N`n zxRF}DHf<;NUwPks*hrcuXIgsN@#eoz{R4kGr%DRni(>s*KitJ+0D-z0K;iK?_EaJs z_;0R520G33_^|*kIM?XS{%3H|e!A4^VIL#}87^F-`4kvL%HU5`si>f*=P`^|X92jOtVucf2)tN@ir^_L%ao*7E~kJ>M>nbHWbgNBaIMVaq#NXxWq zWeiAg!9HX~v9`(mfAphz5g+Ccc#l;VRiiq5Oo;!H`yo#8Q&kMSLG%b>oK#N|YGM6? zd0NPuNy$@SYpZJxt@?N}H-?x-5X0%;)!RQa6qXA&ISt3N070@b3R~+?k4tUAgQwct z*bJn?zT{~R&20!|CWAcnE-2>C6;eh*b_}LVhWp(mLv8_J}p9~Tb zF2LCc%~E!Oa7w=*prH`gcUL}a*rE#PEeLhy0|XKS*U10Gjssc=Df=Gxf!~-vPJflK zg#<(pXwC20I3V>w$%d162-Hkq|6BO~LJYX{<8 z^w8^Q$hUBw8#gkzdm~>Y*n|6?WYzswsXt8~bV|C+`uvf*rTqFnJ-(GL>&L{CQUlkw z!rfHpKVSyOvsiH+hZ(Q>v@|tY_*BBgZiuuc~{ zmCCkwO{hv(c}A0j*uVLAUY>NTW=XhcLMs2c2r&APQ34Uyl)IIV_WAB%P?8efXQDZ? zcaYNR6WSPXZ+EyW63ch}+e&Od`k!mh`+qp3!s-ho@!?O$zQ%wuF&hwnN_g##iDgUH zJ3UzL#vZ&xCb9M9u1q}phjU$(Gli~1Nu0M0%$#7 zVOn6XM*C_n8YiU2@4?B53PraKy}o|`@Q6*^b$QTb*YvbfFmrcid#^L(>qeCQt<~eI z!h4)(>MFhmC=j(BleyK=%cHZr%HKdgk1$s6FDyXAkdbG0+e21{CRXeg=|Uaj1HUl2 z?E9i|{_KD-52{7>A0AZK@%Nrr0DDCM3hcljJays22yU`pgV5C%k#z~=h54w;)E6W} zS;{tkZ%9moC-OcXd;?Pa1(|kPtzC!9np@Bop<{?|KCDmfSnM_wPT~p>?)S)5!b}AON=ga zGbmmGr?7n^s65dHWSQV)wErST;a8yfn`(;pV|pKwPJ@{J1dOJ#bz-?30>G#Pmvguv zj6N;j*-a)oK&Uz1*7MV_9{B;&5OSFFpJE%o#w!26+Fhd2YiFzg=><7o4*Nth%4aMt zrLUmEUlmJPNXsyaE-!$d6}j2zG{FQ6Oq21o+%A#6zwXZT>us1*?-gRY#|`hMRVF_@ z-RI+d#mO@Ex5XL~(*W1rjK)fG^lV!DD=|Fw&yKbY@AQ>NMzHY-S`W3&rh-V=z zXr3O-_qb5{c?4Rq_^^vTuP=Q7d=H^{|Em;(OiukVoE`AC5+Ui% zinx*~TsUWyG-qe?9|h11V(S^-t*D0X+qHl9zF5PD3x0P!8BFw02NpuCUmkwMCQb&k zOM-)gNyg-WtJID+tZ9Bc;6FXZk{#FpZMx4+P5I_8f)Z5-xg_cDP4Hzbu9>4}-T2qYj@n$#H$m-kHkj&?EBL#?#qw=Tod znERLbUJ2ZUM9Bk%t0O(Pgqjs-{-Y>9p!84HQ9Yl9z>^A1orFq6l;U+q?p&=&I-~0# zM)sNjd1G5@^c{)&thR2Tsm{el`{r3iQn1d1vQ3phN4VG-pKZbo7gR>e10zJC2fihWES zh`W@vmwE%nK*IlM(tPywXC+RBK?Or=YYa!VzBF6Sr_Z8N&6(XK5Fx;=V5!^KPcQ{cF-X!MYU3<)}(BLGJws!cp1*ifi`t8#OyVAOZfFm`VpV68@KF1a_C*^G{~>=X;wh&U zWR>9Ku>$d=4BcB*!A35N)oqTJrB~_OA$1oQ7&*Lr3%mrfQKBT82AUyjV@SU8refTi z%l+@jK+?Xr)mHz$MZqm{;^ zPXU*rVNOhnmhd&>6hAsmG&pQEnycf_a)go9wr{9!Rhn0V`TwbWG_qlX-HR(gik1d+gVJxYt7aYM(OD+A1Eyv30y97=zV0?R_JzohNzyT#Vvp) z6jZHCcVrWzH0798td;A{wDh9|7=Lt^m_^{&4P{t~%#4nH23yzP?X?~Lx8+zL6QR3x zq0&@-giodTkxQi_2E zGrC-wK0lgCh;_DM__nV{EO0`970w;_v5GX*1zBnGP&C|E(gq0CGXU-IB+i@-!%f;e z)m8t&Ek%KRU87>4Sksz7g=?WRY;*ArKo)@(Ae}&`yN3n1K1xP_>o#{jWOsngRgF)%xCa&pVF~&=K|?$9(!DP?Gnt-|%4*2xwZ!UE7VuJr zOD|O8J}-B)Hn+BnaOWj@D*Bi2VC`@dq_WQWkK(jn8ZU+ip4JW+aUy4RdA2txQ zpB2I14yd$O)zE#OCX3%|M6Js+!=HR9BD;aFdcp)UTUI37Qh3~P0p4bJZJMXtlIuG# zSuUgGOn!lr#pu$C0R&tj@o0b(0@Mxg@VtqiyD?Dv-jkG!AJfMiBl7>cA`jiKJ@$GD zawHIOYF+D_&_c?Jp-3kVlrheq!3FbbVMd;}NqwCL+@%ttu>j(PsQkxKia7^B0YGf* z3>`FG*06h<%tTDhgLW@{zkk6O{#|G429Unjcel8^Lb0vR+gyKw1ie_wBiylVZ|hX~ z@Y7OLH-Wl8Oe>@R86#^LN`brqT9{bG&K{ty%J}ckU|i)s&2z6-1u^Yr#J^PW;lpzr zR5Qg2k*21Qw%MB{oNs!UB?XB7zw4oNAd-aoA3vz%3HST5GR5ow(}dKPjmrfg-+_sW z1pARG``X{!fHcJZZsUEdo?|PA0mNTr+AMQQxX>UG4W>|McBDG zEqsl%oBMNgXJCBF$vO1+33b$2S!Q*XodrsN-hZ8!ms4lrIfpk%I>)$}kdTlO^nz3C z5=K-+LPos3F}U^3;c+Jx;dghyEinI-8+7LNFmx1kJs#6JUdQnAtHSvyT=%~u?|U++ zc`IXU+W_zf{6)#OXpwrFjqnXX!7Q2ryJ|2v>o#r2WHlrfK7pq);FZ3qsUV432>yzH zL4&aY8|5C2l|q6&&C%(momWmkPjbBt#@ZN(-^ihN8&mi(oAC5<2%c*!+M6^ByTtd7 z*pJ$83PR5sEYn2$cEA4!+jH~#-aAM54*yYl4bn23nbUO$l&jqI$f2JY&rMJj(?X?5z?km6r zYbNjrvy{^urN2~f%uEm7(dF}Tw+z#xp`tYvn=rxsyGD`%wO#N_lYp0;Al#3I$dNXI z_{&p74nF!FzunUQRLx|zwP_L}!BxjM*cX{k%P6CiX;M;rFHUi*DnXI~ztU3{s%CZ{ zZooa%NJcUxFjS24g*>-k{xBbkPip!5Yjthth+aU?EXL$zyEu5#XY$)ILj+WXg?3;( zNo7GtIUDCxPsE%_%n*bpL3*om-hOb~oPh`&7#3u3?LI%J z7L~W)SY*i=ht~}&ESEtURtyM^)lg=2bqX2uoo5NfxS5 zAWYS=8<9O{fCVjDj;@Au$W=K)Q<=fs) z9>fgVd0ZD>J~$nW$*Tu%eOxijZU~ETKY#tqrS1E?Va0{eRRrb8GfNM?B=ZVlA~MmB z5fZmz$SW-I)2n!eDhFO6E+!JCjo#xu6hefM;Y#Q5!hHu$+0&HJ;1_0q)+48K%Nj_q zdK~&zoP#2G;9w3(&9#*&u+>N3_o-b!3)K{ve0=s@NXqKLVl?C#a>-eNhF8PO}5?r>yqjn4#1;-i8mqD5XZypA+cFMKLtg5S$^0t5dJ( z%+rY=L7TG8rfoq2=9Ok6u>RIM_4sHi*DMHUtr_s+t2RS&!F!9Uu*gqVyDT@?d64SK z9gd@iqpQZu-FX!iMdq%qmkmlP+NF2~cG#G}^pqC*b%L<&56)jpf;~2R@g!(`gtkVS(umVCK*dxNbPOP^*fz z!2Ny2ViRK*k=iNg$sPG2rSRv~ zw}mr~Q&;V)X=rR%d3zEkMCRMKgwmarRuQ+G1A}FaL6%3aS2+z8!eY>KN#o!qe} ziRyjlN&TTijZW?q#(_pjO$$#l$cKubv}>HUv3S@f?KkOO^1 zFW6W(>n)N-Y?P7nyPtq?@tJQ_hVz^^+Qr!z`gPQ<*ZTaZ;@t-f+Q6jLNL724F z?6Yrw$Se^-Dabt`NiG|%X9sjk%B>;?-KxN(=(^2;uc?Tme*4ot3}i9@tGr zOyB3{wtiroQZckY)zOZYK1DbmW~E4)2c+Co$Sdtq%i>8^qYJW+ElfO}bgHQzs0R9S zcr}4Hc5RtniPO?`O5th407KDX0$M)OEz|&Wi{cAce29ZKv|PQ#%f;?)B?5tB7#`CD zb0u}{wXB}SP0?T|H$W&nW>hNaVk-5$#eL4A6pw*Yetr4e*t~P6hh}G2%q><3y@wthu~PWt11-~D^4313FovB9*qSbu{rVZ${mZxwLNxgMciGGQ z#$PzK)6)(empfxh&jIzgj_2(6dBEj!)M~M!@OO1KU=7nWPd*;a&br3vD)_Tx#znPL zmP}47Bc158KHQrp+=TIhn3^Oy8@UI1^7RQXGcAm7LhXZ2^!Z*kf8gRK^z2D{l=BC}vve6YzRJf6g?nS0N-qglj3= z0T5`($~U_Dmb8w+@OiJWN9_(gen2h_Dn!3uW=%MZx*UHMJ4f9eP0n~X;$4@%t|xPh z6!O!0XnZp^75N9b`&wuwcmGxT=tlb*bD%>Sq)&$moKB1JlM&A9S@Dr zZZ$2x<{!R0wpS}ZUF@n#AKU|-;EVPE2!XNv$39iV-)^t>ke^C;P0Wf-KBic?%ilqj zySsqrK*VnVtV%xf8we17!Q5A8e9DKLx`A0y9F9w--)d~YlJSR)4EQeG1|J{aw;%xW zWYpjw4gSym1-oH3dLsGu)pE#DeyfshN``ms`bW~&cR+FB4}6h13q)SxGF+oW+li~C z!Dv0A$Dz}Ne-^m<^mx$Se;&NwZ23MN?5UwOud zT$Vq|&uzL%2n3QZTp`!~6@5c7k=4Y#V8% zPvjbX2c^%`wwQ_vq_uwBcX#C1VzE(y z9XQeD&jJ->0)W0Z9-_n){CI7CaSchAjk&LCt%Bd~8)1GVqk24t`9{bs%DSw6?p}#efAIO=eOWo&$2BVsB@#h+&^+?jhb_;)sW<&OusG!7R> zJ>KjZ8z<&%%=wAQN&O-|d^>zex(#kPJDe?={)+&uNE}avf|9;QgEQTc1>QyT@xYYG z4v$jQ^DW*m>0J2E$c8J{hMq>4*^EU5e4&%+B`$Hz!5wwP(T5aPcBQvEkWXOxq|V*W zMwI{h5$Kg>aDFVR*Xo3W)k7d-KLpcEuv_7WA(U=3syo0OS>PO=Jz?Rokn3=~(9lsS z70r0zvzZjdk{$q!+%YXiP(7M$?Dm7NqMqSoJbkHz>5i-0`e((*GE0rhO$8FEY$2)(<+2Dl(Os9%k_7Gs1_O8?eO!M1R`MegsysHtWM^m%?Rr{<% z{V4w^^zNged8#285mJ0IRNw*4zJJ;{{?ahtd#Z+33# z88++>Z}hPeFv)_{Dl{sK@4y$wX1|JqYpn#yI@CUYM&tc5IX|A;h&u$E)%y@K8taZE zTn$=!0I(oKOdA7W#jUmlXJFhfdcwj7Fa%xsU_-TPX<|uUg>u26Ggw3>l`9)@Y=Zieztom(T;9WE;WNu zGB&x)tR*QgFq+Qq#Bm2sZIIqXsLChC4C(!|FGXw;T^JC!H;%h=qo}B`9EB%Mq5Nd%`yV{d{#r4~+q3 z_xz{CD?Pl6Ds+vPhS5+IEE`eHGe5`TXZ_IA%Gxpx3%*-aRxZeM6VXGESN!|&V<^WA znu+lyJ~P9$2c$upw%1R>phF27Eb|)o3lJiSM^TyP7aJjapf{SfA=+7}qnOsHHb44- zZ6J;&=piL2>kMZbFHh_bN7n@AHBS-bvSeAHsw-!kL%z>N1__F;zfM!O;0){wocW}q z2KM)>-xyBX1^HDiN555=-|~x?;2_ce9E=_jKl{glHXM4i&Rog@56VCLgEnwH+vv$A zdYnpL`3}t!VAwo2yR+zx7Z-x=GrO-c$rIgAvzzmQS*7GWyT4fW2L`E~eCfQd9{dC! zryL}v(XN463LxmwVZ3Y+?@i(^9T?oo_Lji_lxp@iCEWD?q5#uw$X5rB$n@1G3YSFD zvc~@uy38*s(Pv)f^ujbxEo`l1fwauBsssXI2-2)5;=9?~`)4{abn|T*nqwG_cRh ztLp*T(1UIuj(X1fP+C>b;VzvrZNBU&Wq2kbNNSL^8rk`zbwIUgMX0D=NC`Q9*#6VH z$cnwMI@NX~sI;DkRdSH{XXQ@h8B~AK61#fVQPT}s_t7Qq6l!f5prdD#t)F?a1CKGg zxWR6IPyvBI+n+*QVDVVO(Cj|!-;gyBWI>qCK(}u`4ZT^= zWK-UbyrW~(o{5XyxY(HePv)9Y=SLPKx-#=s=q3PXLRFD%?3MZkys%T>|7TfL;TpT( zAaGQNKGF%B{Z>D^d`Qd%-e4PBm=isD*&|>KP?2B01i0;bh1RF)iv{lc%NkPt zGdY=3-xCnM&CNxf#2QYce*xq;5ga}5FQ#s#ROmhBhO~U2g<(WbCL}z@u8;6AfcKlT zYA`Z?c_L`-K>>$r#>VFpm}IBkDkFl%D=mTCj-#L;0M%on`{kXetBPWFD}^=shS|PC z1^olR<^JWCfr=3ttIZ*wCuc&|9&`e=3!KG#)vKux-i7)oAW)@!6$NbbFowT-#?QD4 zyw|3fbn6h0tE$v~M|ocEtR2*YopldBnOscjMzCvEbR0=~7#yyoZtVmgVJm~b$ckJX zF8unlA4B0Z`g5>4_P+$_@(g#I1h2vRRzmV-uFztXD@B=_3Qih)GbuCh7 zbBoWpVX1@X+WI%m^eo-vLP$tp-Qz@HC`(M`_{#ZhcDmn67QJ4p*SKnph#6Sbjwf$( zBd7OT$h4h4Er`S%IP~X00Ip-g}N1|kfjOH6Hm#00Qb^(vp&mYkVJo!;5c9(@z@ z=y{dDW_;&wff|q#6$Rzq{Ydw@>kdyIIY}C5mk(6q9&!kfXP+3ez@{7MGAu(_N;g3M z)}+BUhg4HPN-RZ{M|&9c-}2aAJ~zskla&kHEJR($1XIW<;`FsdIwd3|ncQAO@z*ch zLgyLiN!U_v6SC}vCb%k&lUEwJuu$VFw`3|t7x8hFCT5^2WVNQ`3vCpTTd|;r^|NT zZJbM+{sb{QMKQy}-^WUd-9*z^WgjjY^O-G+jP@*G{T<`sI}a;yF58(;MsM1 zg;>L~4LZ)aPLVrsc6&&_Cz1Jk!f=E1fWHj;pZs4xTG%~K+kX}baT;W^+0N5(Ckw%^ zLpk-;C;ojlQoWgkqf08iVU{C=3);w|V*s>}#8Y`9go1G9bUAgO35eY=8NJigVqw4W zMVp3iG~wj=4}el6X`x)EgGfb!fGOr0ZnGsP+=|}GI4FN~E2n%!RiBu8+xxW=<#HF+ z4~qIMwf)43q|{9U-W?9@3&jOu?0;<62Eqtr>q}u)#t;rUBTY{mnve1vpUq?TwJY4? zwWBNVeon)CfyoT>u;0I8xOVMfsc$WADCRPW^3Vw&OHGk6CP6m-Zhvs`zy$6Z2y)?T z{CxDX*=}9+Tc?uDp`)d~)3_~&+gV~s<~O}Z`+wWPh((oBX9y$V#q{aeDM!9Z-$9mp&w`Y^lAPOA#&3E$6G~dMLqFJ_xAFB-4AWgVRTpZ+0S?njK$s!tUr!) zf#_aknqnZy_RA`#aB_Y1wtq3woo4-T{XlP(!)EyNCqp|sz#Mi{PSt*yTT-q5VC&^p zjtT^w%vEcRPI-&Iqr=-16ShiFb#ih{ge^6fz$WZ-h8;~O64}}eQO$$Rzq^|e{n10i z5 z9LdmTD|A!E#=_#kExOwl7k(=+dG zr17sY{7+L;5(3$iPkF7c@vBdS$L#NNcgs~v!7D(|UtU`1@m-C1!8>c9>+tCH`a9!3 zxd#in#fnzlKz>Ay`$|Zlb8!}H@W{X~X~*o9;H#X2q+k92M@xA)x%x!DSFfC0uLmI; z@pD(c=XbJzrAV~n9n8|)OalT+Y+(=7m5Iq2von9PTU|rw53a)&0um)_=cFO^((a_w z{kf7#@994Igubn_ET*K}B?NdmiTXsKNm}LVdm&7R?nBKbDU|O9ojr20aMAAFmWb^B z(|;7=sOdey$c7OHT3z6|r(dl8*d1^b0B-{^v4T`xA^@Xn-)izDK?pI8Sq@m0DtLUf zhtQyrUy@5j_jB1aOdfTrju?ztnJTr*ock#aL%d2fDa$Xs9jml!!0S4S;7fjg1A$z_ zN5>Y54W3mBGDJhYaPM%5JK7q)!&xm3mPKQ18+8iIF@97MB_uOs2Uvo zDBCo%`~^_!+K=(DJ30mMC@M`%IhzFf*}O)c|5%k@^G{#18^njq@VF_6V_k|XnhTZYh(Cv|44_0{!6pKFWoe^3QkrPyssyEO5Tr_p6@d)BbCXFqK84FldDtR{Q8GLppND_GEixRLyRi&+8U( z+&Q?~lPrde+^`A?jgE>JME|b-p?d{&FGv3l_*guU%#w1CM@*Z&Foq|zQc44sfT)l= zewkC2+x@_UMw=7a4Jb~&_%&BJ4;}xNI#II;O1`%B{aLCwA;RFj!DhK@^=fq0A^HK@ z#tRi=Wc)KEK!qy(F5qJe=a1ovMbMcfv(nY81|DqE;v{B+^c;XS8?5pImlHzL6L*1L zaNrP3Cr1U$kK$_ml(KfN4Q%*1q7Z*_^zMCM?Anzxo#6LlLqa_Yb$9)_}-U-bc`r;3-9*Wh2mh)fD^Pk*f0)wR>v;w$G zdPG-uf{MvB`O;RIOF?S~lLniehym!T!p)8Vfq`*yzEWW-YUPg1KX`y2YWdCqX?&PX zTZR^!Z}2$KlSTf*3pTnP_l3$WbeE|Y^j4d8hX~02niZ-$45FYFWP1!`&#W&`6JqkP zvk%mKdGKG|I;wayJ$I!Dm(_8YIYtc6qZJjukpJQ?LcyWqFUdPMna9_$tYE8`ENt=8 zYWI|5iMA>1$Cl~PNJ>Zxt_l!5q3%-Im-8VyxYc-|7p zE$x%c@VcFF-9-s`y$zyLUnN|<5eVa^0sD(s3_)+k^j09dBj0;KlYRYOks`&+p;sLI z8$;C&{=Ej{xPMc{c$m`$1%!mL>FJ;lp>Kf|6$}^qE0%BTQ6T6rnF`3{&AJ}1h?``x@`=KL)|Hk)4pHs@ebbosz zv_Wzn-&oqjA=E(v#$|t#_GtFiT3DbM$#uEqWwfJaZDEwZS2{DUIHWT=)A%Q{J*^9w z_Fcp`M_~0of6tt*Sr4dlawQiQL?6tSPCGt5MkLOR(}E2u;K|@EfwV^(Z0}{cl7;z4 zSA%UdHsOo01oD7R`=Oma3-TfMr(bq?$!GNm*gX7Bq=lWc)rSJAjuu+_-Fz7SZjXMC zA+!c)=Id~)y2ZYeW-<$FT7wzlWGMdX6B`WnwG>>7ro}#9<~5z_JAG))12^(!?MQNd z@ciQrMNA2Le9wEW%L<(+YJTn-_Ee5{NTTmZEbG1!wg1!7o%r-3|-_G!v4UDuU~qfMu_|>jtZQ@ z8XMOO`m>=Ih~1`w82VN-MM?8EJE^2!Qwwd8tcc8ZA9>hyIlf}H_(b`eUJFOR+i`uF zX|#me{VEx?0CcVmI4Mz(MHXk2&_nj0c*D-K#QfG__|Mwz1PvWbdUD%sK_MZWa456* z?Gj9wab@TL;B8$o-@3WMNPaKRNmpW8+NagcUc3x}MjEuOnd!C0KfC!!f4{aTl58QA z!8*Sz#lP`JuJ#kN=OuR+x$AaNfladL+TDMNI z+0p-s6{N2#+0^ZxLm5Ry7q*q!7Z>~Nq9mg4q@Iu)1y~29@!|;(?H_KkqNz`6&?x*n z{Pq}j+ZIYDgayg5cr{J-q`WGGyi&vO`dTM2IA{PZdjc?eKb7$+rz2V)ZbA$7XIzj5P+UYuj zOeb~5+3|9fqn!e{WBgDyYKi(TmoF|cyW8wo?Gk%nV{>R+4tYBRm-^Sp`XDDIu}hKksMU zvHkRmU;mv~Nl07qhKPyJ9_`!TjRUHuF$WaNt`(@Owv~yzspg6f=V2ef|;b=<^R#6XD6joP;Uul=@@+#$ZFs z^dcrS&kPOVl8bY-z}l1!xNXRS&~&U%#@3xJIusIF!+#h&05+O*$r{+Q*7m-B9h;tK zbA=yf42!SdWTd1RL&sG@AUyrb>Tk9TASb-qGSMj&mlr1;X#_EE<73DyhOR+O zGZ<-UPqs&x6q3Jt#N>X(xb?6y2!3!OoNzz2%k81?Nt!l{+oULJD$Q{n`WE{q7h+lH zIxxgES<3UBf6LBIBmr$YUTwX1;#BaFFEHo}eyhP7!Y|nkYthdJb5S!0$aI)+-ut_` zkbLN4BYrP+djOAVboJpq!s)5rAso!?3nk*zA^v{P>2H>eQ*~FG`A1D2N1zFJ8Prk&zaE|KbJI4dgf%;U(lR=R%r18Loqn)XRwaJSYbTKYp%jG(h(7RjAtMcK9u^H%G9SYxDIxuunNbI5;BE99NvQR*> z@opCHRKR|MQ5O-P)In!N&3^JH!zO~2;)2gY&|C+8P$;}vUB31rb?X7b@P6VoqQ)1V zbFKfD{EC@@DHvvCR}$@xCFH9uue|aU`_EOa1wb*P%#NkM(5)jJhFM6+gw-U$-)lj)F3|QN4gg1}&}_MBTt#(CeCn?;>eLD7 z#K`HY)vVLjvvXu3E3Sn!3*GWH`}2Mu>vnUcR8 zF}5R~Y%kVGTgVp~@y|w|-*1~~1N;qKgg?7$(-PSA@u--ja6LiMBbM+JFaBRd-=17kZw6DD^X`)83C{O-JvLmLxk z12T6TYg;E?cL9puckn`vpHDMWko~^J*-C)oqk>SOQS$TMPm|5O2zkA0Bxr5Qk!`9irozd2b z@=qiG+7UN#GIF%Aceb#zC3|kyz|hXcS%8A#xugF+f1cCC-Qs_GvUU19EXV+vpRX{p zGO;lK*EU3y|M@Jhl7+j8wT8Hb4P<&CeF(C0a`OMa|Np!4KRy00$&ddd$-%<@za{_I zmH$^#&B?@3%+3bVrL*Awtju5G|9$bVAV2f-$p6<&{F&z8XCd<}h{(_U-Vj1hbzq6(2u0+^-RblM1aJbiA%m?$MemXj;+Dp}3 zO7?2v5>O)IF>fV)#3?~Ty_W_7hc|^*@J*9~zV`(!enW>(()s~p9=XTW>lliSuCt=tPm?d(6mo2;VMK{_wv+ZN$`YTTPW|04q<#M* zth!9(ra-X)8~2*%8E2FPTePjbCsrNa(09KdKvjN7_jDIuQKnK-@?5(l(YBLukY7COo%zR%+7~^C~Ygrh!Mb6b6 zAh1T|dD-P5rPaxH!D72e$A8mG{5djG)Y4KjoDK%_e(h?(t~H63@@uRkwp@!&z~#Zy zR|ibYJN@CbO5wc;wu&;tF6NIFn^OD_7ad9b9{k`3uyNDn0f)fN^~w_w3JQw*S>L_G z^%7uxvOu1jm)CHvV&tp$3CniNsbKTHD^!1f{}@{ZpQV*$`AxW8x$_?4ceE*!VIl<& z4-dGHWheAS+VwROK9K^8zC8-=`vsv&YHHL{*z>>gQc~!*1)u6Z>qRz!q1`>*Tl@N6 z0UjPQW~)3J8FKA1+&NFW{VRo@_d=^80v#uOhSM22tcd2#70_l(UffZ7BZK2`ln3$6kH*-5AZT?UXCtXj?fwi@`kC*+G_D)W54(Wc6 ztjGkZp8>euU$WZ``6-dTRE^Pis#@GnYkT{K;z%3vMq(&?>{nY2f?(m-k_+?t_$Bq& zk%666t-~!>ecn0Qp8Bh;unf9Y*gQP9?*Mvwr1**ZqC%p}H`n*QLqk3E%tC?b0+f*D zo)t@#rajP5{nR3KNd^XcD@;!e3}9JS6CmMuQ-^MF*)Gylrn4G_l~c@S{L!Mrul|NF zmx)}5OGr-8q9l}$*En-RLqjQec`^0;E@2*NBW?;yfrWBn1~M>r8|Nb}Z9SxZ0Uo8z zjFI3Z)(#8;0*a1i@R=8b_6UcH|`p`NV{)S=~+nI=n2lQR0Z^PK;BaZjiDK@aNar)>lBdUjcdbE~fm1**Tu`y0O zaZLBlCCK#jg{?wQx4BJr2Uc?xYBwW(y4|l;Xbsjo9XEXTCV11IY9D_h=}YSgG&dEt85dn^SsK$R-NAb^*iYqw7%#?akrlCbqD)d8IRt_ zC{q)u-Z!D2c;dNHpZ9j=0jAPmYh#1ec8*0OQ9<{3<*xz}u4~2Ea$6E#Q`IP3W|cCwCsSW)h?HK zJcbClifQ>;{*vD}aj^}?JIm{i8w!mZ6jEviB&^;VlqH6*fxV9FU(*6id%c~5!%`YS z4RBLx9C&Q5u&Qr4t`2!V$Hu>9x}9T!q1UH>xkG>vENDUDf7C9de}T_=28VX zz3Ut7mlXCVJ#MtCF;0r{CFpx2H7L{X@W=LNhNCN4^K-9dFMM?$vxapJmlBq4YC;Pq z`PG4qJ%;xBXWoc)!h}aklgBl1WHY-GcUusORBx!v+XpCVdsSR3DC!`Czdh`u%@mcx z<7s1ecjP805x}zkbiE#z>EWpP)m5n|WTv6CMK@${&>Fn)^cXUun-=~BtJ^ZL%<9_L z13(YbYCH>*EysK!M<(V)&+xqyvRHgGto3v&{q5n-%4w_L=k190hOV1wXO@e`g>`=V z<+>D-PgO}tiHP9AeX&NR?lD~*XnDc--h7Pw@8&6EhW;=WC`4MtK6&`ob8k|NYttMd zy(R+RF+H7xLI13{v$YZ_5W9`{}7c+tI2_#x2B&wO`Bgnn^P zDuhP`{ci6j{jUr4ABV*z%vNtOoCllBC9!TOIz-^RAx>QF?ky8Zoi8~{57yZ5xpeCY zrO8fqsix0YL)}^YCoF7+UUo~;RGl^IdwUj!=#Z}vTw+cjk?C_%^|YikqJtY__s=8G zB0zDTaGp`r5&ZG$t+4S_nX?pp)bw2*tbd)kJ~T09>&s;XA>I|A!`T=~(W8MzKnC~d zvajnOA^SD-vR?siuJtSto%#+@5S?f0k|G^W%x1eIIN0$zi5U08)NB(xQu_j~_OK|O z=YP8FcbctRlNwCrQ9I~T|D%Xy4$xuv?!2os4NpJu-mQ^mAqh20R01E`W4JwQMuS_B zV0xA!Gf!$pEY!XD$d5+NRTWTdV-g?5`W^(7IT!eqab*)PmxRC5Zlyfl&k5Y!c}PlK zV|y*GV7BuNojLPrb^&+~;L)t(N#8lA9oaV0qo!QzLOltq7cF`6r2D)n=umr?umk2= z77J0@qQpp(iR*T$V;KGmIv4=LtS|u2ljHP&mzS$KcM76v7O1hcjH0^Ty5d*FXtZXL zXIfIpA2T*1=amWe)Sb>=`EFphlky^h^f-2!31yvDfR$^ztDi$jJrqd<8__PV}eUB%owU&Nx#!8y87`mP{(IK9`jsKBH)B*)$snTTHPL@yqu1$3qaHpYHi ziWtzZN4Xo@?2sf+a`EA1@)EJ~jW#k-(3(?UQQ&;ftD#|31V8@QB#j(eEBh}!a}>ec zESs^hcXDd=lap8tt2NHk7A22NS@0S0@%|e;X<{0q=!qH*&%1?ML|l8 zXd`5%-59Y6raAxNU4Y^o0fIqWB!_dAPZJV8o%^$cg?BKOis0?!(R7IpLfR+bF)-K= zvtj}Urq#+{N(A@)djulMHHb$z1QG1yEtVxtPEK9m89j8#5yDd7V+nSX z$JLyaaG2W<0N{QH3-c~D=T`Ani27m$COBz0l$1%*T|7TN{U?}0Ah7H#J8$?_8-w%X zhr)_%jNn@rLqIcuN4*Q(n`wkYC4JQhuDgrt4m+!g^1W+*Z67i0kSOHXo!d}nCtR2D ziz}c{D#lm`R*6}1XJG4;$Cr~t;y?}1ugj}5X$O3#iU;k=zE%X!?jEVM&iP=wMt8Tc~f*%;o z^oU9<%p|%ga>^?sNN|xhl6>wdD?%aODo89;h1IZA9~qkx zDioD8uDmK4Bo!EKSkF zKUS?35^$JZ@{S@%(VB^0rhPuFvY{JP3`n%YyF&(kxLUV*i?lE}$D=pF=fY$;*{Nnd z*k(WG9L4`;^83Lq`1T1A9eD z*}DV3BL*3<$X`bmkzoFz`iDqEI=|sat*(Tb+^N^!1>U8bd? zh$tfOk(isK66j}SFM0QW)^3G`%PG;upXS%L*e;nyG@I8k$;6u>Y|}0mc}*|#C!V4B z_All5upfBt2j%W4(jWK11)Jk=y$m+5Vc^^!TB%JSkL3PJ&%oX+tt`39{5NKEezw0x zo+s66U4{g@k!8CEbiIpcE17f!uk}>MTtPra-eHf+{ABE)UvJv%^Hn;G)IGFhjO*ki ziIYWjlm+RLhwD-7`w9XN$_emYZ+cnFZ)|?xIYtYA_@EdLM&2u$=y!DN2tkPzW&c5K z7gbnX-0^LQ&we73&0#7bF;Eh^imCW5+N*=~alyBajPw@5{Q>W_x#$V1ITVt3fuW-{ zcJ0kN+xS)x^5Ge#_73;OAsu5EV4Jo7L6ta^kg$tZz#Seqr!gKhGBQsavR%7jd`3{u z)vOgAkeP5kM_V&M?&+ktrJo(TS1ZmieXtYRRO>lV)c)uy&j1Mq%9>*REyq@kQ#OrTNn{-S+69VfgK@gDgz zTu#~6UxsYXu{tU_20Ct9>ue6|ADehV9&?2x+~(ODo@XT`Ooqpc6>7`?N{IXZqZ39Ip~HsSYAdy)m=N++ z-=^{=^fCMcDRhdh?T!5-EzQ0nzJ?=BYa7NRLh6cre_EGs6-1aV3aCW`FUrbc*kdA* zgu->UYo(_4Mm>)}KN_~kay3EeYvqMp_QP_tfG1jaH0i`zcKl?Fx@>53VJ+Z(oF;^7 zH3cJjJ$BW1T<(qUJQzi%SUDuiaW49I6Q7?Wu^%K&ez4{l{1$Drk!gWnkH3WM8)EtT z+;y%&5N{jMl;oq)uW{ME-kzQwX-3cY#RvHZ`$rRJ^))@xs+?1XJ_d-;L75|MFodi| zcg8kl>*~}iG3yB%$lqUJmB~SeF;-9txL5x=B@%Gw&E*u_lf~X55%JyDy@Bf?tGK3K z&rAUi3;deyJy28>q(BD8^$vh;WW0V*f{r$V={w1}AMPzsH(1{nO*J)o-Xj>76{2;+ zU-!7>xn(MX6+AyiGU0YU&sP~SblByp44R+|2ra+V#zVU(&yGt8BzQfk$Ud!}BaJYu zL}ceTbj7kD0_A<$*);mT`Rt{++(>S52==R*ZqBgGu8Qi?d?t<||beiH3Vz8Tu>B zD<%t|rj1;uWIi^-Bqe0m&Wgh{#&%m=2Na-?3ctmq@z~C~c*oL#as7<0*H0#Z3P>9F z%O9|tCJq5`5D?H@F5=YP*l6Z&ogK$=#bhhmJoOS#rFDJ|`q*@%Re-Q_aFF9gZL`-P z^aM7-W9L@Rxn&Can2yoYASrP*`jg99ESqCV^wSy>`$k_(y7%?*nrMa&CF1$T3TZs> z2~AKN_Kr0ZlEYW(&=%|r`8~kh+Uj~e z=%}jCtj?K{21G}jx`h_FO=j!=(IsbS2v^ip-Y_#0pOwvyR1Q-jJfgcXYBqa$Hh6ay zi)w`mjF0+#;pnF`$fK6I|7B>^z@ZSy?&hf`)=3GVcHQjyTQe3B0I&x^c#F zGKm#EmdkZbKtl31sw}c|M(@G@=^%+M!#INw=Or2E5bZ1cnC}%8h~V=KJJ$LNQ}5V zftzNwqHK0>WMyvN=>_tOf+wvLQ&d*+x;~csW<^6lNN93iiUqvRHGTbI`%n-*H0$d7 zx{M~&)5FNXd(@=m;2gZGL`87syUVEIH%S7&4ON)V&Q#g?KD$I7r$RK3CO^?QxH zSq0zTy!UEixZLcEX-jh2VaVdY<{Q7*Ue-G3jVq_X^)|f`prTR|R4FZ&Nwt@X`r!AQ zbto7Evv?lgdN}%Kc!Eesj&b<5r@zfh2^qQ`&PKkb_l*%1Mib(PpD0ac_~8jJ>*vP$ zz{Y6J!ihs7=^&P1JTsm6CLN0=BBuKx7+0^SKf#LC`-aT>ac<$AoC+wv_#IE`Z_9@A z*X2{8$wh51QyNP3CtTFbdeL_9`-06i)RT>l#wbPmTegjN)>J*eU2t8f(RsR7y?dC} zDiyQQ5s-|+`&6Jp`w3^(B8{B*b~B!m+x~>bbctPMzgN#?YKyGx`%)ts!mAlxW3!!p z7J}I3wYy5BN5za`45tx`B(@#XEXSFMv7FE^M|!^r1!GN{@5QA$Sw1~cX`Qjuqy{r3 z500|pR;k2Y(L|1MV({%fb1*_xn%XnT!H<=1(jnyHyZthQz)ijeDZ2wIAgK{ZTF9^2 z?3rD5#(7qRHv;aK+UAq!Ja)+$)h(6tmKBREV=#V4Q}qqpSxcfU#wRa+m>C;f9ZLOZ zVb!^=UAe_Z6JnPtab2%iUy4M;1dmigkR7JZDhz zHGVoeQm<~(J*?vh9zk(87{VtYpb2^7>iXG~OvdD$?S=-tnNgd+9t#b3NJ&b*xrpQ1 zLZjFpvcm;>I?lL~e#s7zwZ;^17aN|vXX|pBLn~xeuy$%X>mP8QV41(x-zUa@oAK~_ zgH2QES6VtcbQf@7Q8tt zys6{L%-?WQH9F>G@69zSSVl>=wi3)O$9L!5t`R!B!}U7N_6S*pF7wXY4I*e2P`E$e zx)mGDj5HOy{UA*QL7bC5^fVR3e|$ zUtbWq6MDbVrv3v)A)EtsW?ewu!*O?N0gI8vKUNen5#~ZrT{v?d_rc+T){?Ih>JTPB zye0=ocYNC>P2@N`Ly9vHd{UrUNHE zJJC0%hEQS7K9XREx$_svLHeUJT{XgF3QY+mt%$P0Kss0y5j%@g9CkF&F|ptjrG%Gz z`br|x-rD#@w^`CEMGxwK_bPGKrUF`G=9Zi;0hJLtR}acB(baZsrOv;(hJY#{(pz%G zSO@1oc5uUI@4rm(bB_?5>sZdtUTSH{QV4~cP12-+vLXF%=taViz31t)Z&~8NMa%q; zV1``9qlK`#c1;9Cf1`uvmSiBArC4^JzX6XvG^Z%!L}U{}$;*F_N&TuUKs}abr|TcM zltiGjU1c^Na)b9k2K1~%yuWpBqDlQbnX~jzd99gciSg$AZ@ML}TjbNlK%|)T!&!F1 zIxb%Z=aut^Bra1v&vq7MR_+gkPb@HuFHPvAy3Ry&d!E-!Rev`i#PD8(IT=12qATfd z+rx~E@*$K#ekldpxwgVpD&e_Cj;(5pAJLKiZ@3H!!sR5-MvWKTy~KvDX2RnSL;PXj zH`M)|c`KuWl2ELe*l)u%KAzZXlj@9$^*ou{@}Q&VC!gA)@X|BvtD%d%{t={6XL^&9 zZ&%dT5MNq;+xzajowGDFlUx(rD*>ih;JHG(pI$G(lO$ zHBIdo9Q(_Ak>yOrz2R2cmMh8=k(K-l#i5mZo##eW_!AT^Ef>D)LvPR8@p`1%y@OEGNwJ1hn_qD&Jw>d_%{@*GV~OyLekF^!jk<-xK0{I^99^T`cFRsMGFhsMZZ1kp>hGg-U%M1qOHTH`IonA!}fvcYc=?|2fDG$HHs?fOx7X_I4huv&3&qA-P{ z;cD4zed23V^Fl^F{_E;4N9hc3Evep5(!uNhHj5|(@|HsQX$Sl2NuSWsAUn&VV9hD2 z>a~KaDxIjB$?d~g{o)Nkb%fN;B+Qx|O*uXd-MGQsSVYT3CJ=rS9}lI9~KCnt#Uq=;_z&cY^N zPJPy=m*GL%hXDh@P|PL$uRHb=rZIZ&P6g*4N`37isZniU5$dH2LPCcNoT%N1Ce}9VS=ozwE9FH998~mDmvvkNlh9 zc$&;vbl~{wgF&!7<0m%b#ex#{RJ-1~iSp_WqrBD8J!0!czVn}sbH4@no>}yE<|h0h zccV)p)fx4VbyUOu2>(_MXzSIHin3Ya3>iDts#MlL7734Bf8yox)DW@Y8e?r5zJ*jM z(27vD%a9wlj>pT5n_15E1av#H3K|)#HO5Hg`Xl5F1sz7>JOSr!kM++1I=_MrBfR`XAY^?ZO^^PkfD{*3(26sXcPMHtANHdDABEb*gE$Cq1ing{$AqKx#};J1 znx}{!5}=ein~Fh$w5#vNG8-mLi^j_g5iw_~#hmOhn{5sR;2m!o>B_$qX9@MEcqz!+ zK&$IyWZN?vEE8ZyXbSxSa-9o%<|e)5$=dbap=^D`?O!K7raXB)!l0I8@aIr zoIfixK>jcs0_7QW8i;C_@5p?$A1jOcA&Fdrw}<@u3qNCTP)R=No^Mk+oX+ezT>CK2 z<2;S?Up(1EQIPr~izEUpFuKwHt<*e4X7AfONKhIexVigrI-H4s2E@h&kn=M#co$3T zC$Z?7$DOhQb-Uu{6@|gPR09{qRD$qb5KB?F23WBYrAN+{_8Tx)!eZ~W9n>E8(H@IA zs{)KoOpG=phj@5o7GwQ(z>^Q zdE6v_OjvBTlV~Ad=HsRf8dX)*FgRBL8OLQ%iEnPZbIjpku10TftkcBLaG8LU z%{T9Pxpv3<8oIeXJom4f`8+(^inZvVyLBiw4k%7h{y9x7SZvl4R8ROS*q1j4ICBZ{ z-_}O6RCP{^JDj0hJ>%|=FoRaS2^&^im9Vb|0z%Wi|bWB*{>69e=}lbA`oqIr==ZwWy3l9p#<~aL^P6T z&c5}uYq1yajQUjT2Ma0B_?lRc`}4Mkx|bY_1X~@RShc$0)jgMAw%7K5-b-Fs0}_Va z9G@B~sc87Cg!)P-xeHw!a-f<7(~3w{IaosGNYlxMvRp6j!BJ@wB6d}b)hD#85K%?rs-G2;wvQJ(LH;3TZV{~P)5 ze(~HBeqlfgettOQ?cc&)2s>30xTtkC%!f##1SA6JAi!8ez~gV8@45753sQn1URs^aH-MI49MJlv`)83zve~D0*5;*Q!uXDc%VIUy8G}r-e^j zTR_rXM_{Ibz68`9_^7 zjh5~S@@-?S$n^Fo5L0 zyl68qpHNd%QxAz@YBOGaO#NMWF*&Il$ye^+>?j^5Yl2DxLCp>9P--ezyYS4tzv}};-WW=z6W#|Lq(-GM?I_-%_t)~@-fMA zMVMMb0^J)yFY$7YgQKIPz}8hV4PyltlrTi3A`Sk;-#EPN&9l0B>AtZWN@W?ivR8g|6W(bF|p?Huvg%^eO^z_~Qv5=eo(S8QIjOLU^`dFb2OmMa9ox!|U zn9*BOApiRPMOT8l9;J_EaDd-Iwfcpq4QRSY;Dy@d*8AGFE6W}ZNcgoX`dq;U0eGds z*y!^}%09H~C&Se1+Mdf;C0pauQ+zb2MmT<<0sx_~?6d`A=Zw1L&%jH?cv7Cpy_e~4 zop~u?=>2X;I5?&%d`U>sZx$AD%RO(=W?Rg-L_69YMmnMm`_@M=hzUc-aP=rQ_WXzy z1wT{1>8o>{X6zm4Yimba=}2HJZOb(1DEB>Lo-KDlGS&7HXm4=qp#?P;XQ(cdD)M}e zP@!eLiap((7;%jjJ$lWF#}+CWR5wZ$KZR|09%FK|)tc=zpYx;Vg8VwGp&9xB%_rw$ z&9`2a@_q+Nh^jo(p|WV{+!JF}0_#2fZ2NO{ZeZq8ur#8pfP>J!jWJ$Bc{#>U>TQ&v zIC9!@4Bo@d_ha`f)kb`d6@b8y>!q$<*!r^12p+Z`pyr3I%Er*prsO-z{8D(IUxi)K z$S^Rlx#OB_hx-O-9V>-|&2y(O?<68RBeKx+XZrM%RlggRTXs4VlAV7TZ`GmzghQ=H zeD^1Qj+U)1SCQUb?_I1y2q_tXn|;Tj)1r$aOH1MA&mAQ;(BwJY6vxB&tFK=N_E#A( zVn(=w*xbc0zWUy#Ot0;F+4bK;1->*I-%>g0Y6k?BGsa|dUh`kjIR>9HbS4}&l`4vKg|cd-6sLZ)cMi~WbWC8mR9BCe(tCT<-%@CH<)^48hh zdA^nWL&IDw74&75=7e|r7gVXhCWrO&=rtVd#q6TRl^F`3y{FaH-50o|dO9CPd`X&o ze8!kXCbSMP@Plm)40`(qC%ek86vU&`cZJAaIRHIt3wPPcrDN%Q%Zz_yh>MAdHIC0a z8cV?sK{3CsP98&TXntDQ;8wO*`f%T^40vUf^4Xxi6rsmyndnK-F zFH|(wf)Ib)fD!$w;|NLJ%x&@A9Z!DB)Q$B-c<)=qU?S=h|vxog@C({dGY1yoi-gKI@2peXo*^lBVU`8r$W3 zFTs@*@(w9~!6TO*mFP^s)1xRK_-m?)o!uQ0t8b=T63g+c8`FDlYr(rfmf?ld!;3CR zl!-`t#v%0L1L$7$Vlk1dkm@x+@j*J`CDoeru%2U82(lB~{r`sVi*&Q7~j|7U+{=+QJdKWm-AP9oF_m? zu3_3tNL=~@9<+yr2mqlMzyQX}6|-yGhS{N{aMkg%n)8)(t^R>AW2mVtjhB{J15; zUO>22nZ=BT%e=_7hZ1xvk=2wd{V1L3j_Qeohn!$W$9!c3sqnl)fDlZPdu>)vT4Q!M zkqy&@YTZvcIpM}VTtjBVMQ)d9U$GZI4JJPPk_rhGJ=qj%P(eoV@{aB( z*`hH8T*YigU|aI`z>|+rRW#{KY6hMl?GAH^8z3n(!Anro!lk(zz|cyGYrickwv(G$ ziDxMk`+!?Rst4z0P?d*PPnxq{DqMO(-tL#jWO3jU>O&FKp2Kpi2R?o0N~9OLoPDjB z1AXLBd~OZUj2eKzB9mugtlIO07PaJ?=Lvf938ZQ|ALFbH{_$g`RWLvpP5io1^?HzN z2Qzecb4iV}uqk;^dc`pMCdTYfQn8 z`OQ!MP@nuLqlkHmi!6rY!vh* zQ4LpLY0^F7z^QuhTz{IBu6P`rxl7C`{-dC4GQbUwzCE)gi{Iju^cf^r2SNh8W<~*b zO@UGu=M{#>o?-TY4J09P&^?Jr3vIfXPJrph4~#Yb^=?QKb#N-if8YwN8Hus79M`TM8J}oX*IJA3 zlwzPtbyz}an5@qOY*a=IeH~GS*TTKhsNXRfB)USkCAf6sk!m&^2_3Iff$^QaEWxvE zfv;rpB&avZD^q3gr3_REKkVgTpBgB9#4Rq;t9FB8Qb-N%p=qJT8BiNoZt?~B1b%cN z#Xt|$>gK17V_H4~fWKc=YO@09Po%m5Q#KP;N@FNdkgefcW*!&pc-PKh{LC^691{qq_ zm?B)&@XRP1%Bjk{q(Fx)U3#qV&N)b=?+ij}>Z3gerwcIo!{$bnnl|U%X?3IgEl+xn zn92qsJ84gfp<4`EX9-22`-8kMZ}oHZE)}}3uWM)ORIn_Ji?VBeEEWHh@O&Szh97Z5fB>m~hay6zkUM25gy_WTHK9ON1ZLs$1D29AW5%mZuwC5d7Cbs-n(;1i5b10gf<$@X!R>P!_}d&Ks(EP z5iy+^KCQ*~ek8dUt1_QlF6!h)3jw6@NHIw^qL)Xl%K~-aF#4aLQbY3+i>5aKR;bf+ zRldYmNNtHX%Ra^p#}F$oGjP0giFm=4hZ=+Hl7U3;QyFebUYPLF^EYIRR1)4=9<61Y;3&meAZ3q%p0oHB$6rYJ_CIV z1D^0CaeIXE%T5;|GobfPUp_w-dgpF$@gOcz(x#Ovw4$Lb%jPq-kAqw5w-TahU zCiqEu`4UI&A9`9oo&Sx^-9YbKXv&DRaayXn@d}-s2i0}lH z7MERXa)MCya72!ahTo%hLlL|m6V}!9o&~>xq*hQMRQ8nYdGvwhN8Qw@pqSdv5^jS0 z#-%yqXWj86O@%3v&c>Tb<(bjbJUo0Bb||__;tdC8OJQW>iYjW#FFy-;jV9pycL0(L50Dh1aHVpb zaLX#l!il_`Ivcd!-#brjTEjJy{awmnd(&^SLhkV-h#-fe&Z@dh6=8!kW9g>lY@Nz} zTDPO9zSe6S0q)E zOIkOSkr$$;?F-TRIM>dtLf2HyB z?v|62{jtmksbk@pp4A0@rHa^3%k0EDQVR;-y@?j10qsbFg5`MhtypXNls6J z723(Dqp}mO#;U?Nrbc?Q`y-VkO_4zD5>%|+_Gcc-X0OdG&qm695CIv_iPrKLBBaI< z$u7ZaBf39{grEA}=ZIiTt67^Vxv-!Br*M~RFM=-^v{;Tpo@G!c%HU6VJ%P5evDyqY z>;f~DFWHb`!lQhXOl~)C{9anBhvefjt_8w>9f@hsDdc_67)G;wjYh`VjNAPs(4HtQ zHFHXTrNRKHE#Y@g?9}-=f_p{yVjEC3=9P%=dJ^s{uATpECsx`LNBSVCRhIB)0(!xz zKket`oYq9Sv&T-3-_kb{{-K@$T_--p#2f>ccTo!MW%S$PzPh@)`L78ME$Mr!TwgzU zOb5S!EzOq5$)l9f&1!8n$KNVisoBa;Rgt+DT{b^k(qz!Dhb@-QQj%JKAYQIf^ zrXQ;|DpnZ)`UA(w)t4l#Vs@zM4E1EX9Y`8NSRFzTig4**AlH8Ro5*PmmWQOsI9Ae= z3Qhk@R1iSCgI3_XL`XgtLR*8yt{IS;ji7O;o)fkSXNSYoql-}q$2+;Eq%@kdznyUfawETuP4xig=tKS!SgU_V)Z#o6~a>b9yb~_YMe=YZ|Z`B zrDpYq>SX0x8(<*;zLNGw^Ci)Gb{hRqSnQO*nF_07cmVKvw6`t4@Qs*_8iscu1qSvq znv|;#y@XlSUc=pGv;rZ^!4+S**-l1&LBU$(P2(NX&Q+S2|D)FG#zvq>M~Kl}Z0YbT zGc?GI#8a^S|{kX*6yYvNRI4nbtTlK;;EN{$*MspwD6b23H2ZisI#*11!VLS7tE6_l2C zloqO!v+3k`ySJ&P)Az$N2|t&OMees{%yCNbo@`F;(`4y?Kr%ZuYF$n(CMvhITdW8E zCMCU|IcEL`bh|t&dKruKJ1?(I2Kz`FMPzD713z{C0`ifO MP!ul_)&KN=0GoQ@Q~&?~ literal 0 HcmV?d00001 diff --git a/pkg/documents/document-store.go b/pkg/documents/document-store.go index 07a3d39..f82c64e 100644 --- a/pkg/documents/document-store.go +++ b/pkg/documents/document-store.go @@ -2,14 +2,15 @@ package documents import ( "context" + "os" "strings" + "github.com/opa-oz/go-todo/todo" "github.com/opa-oz/pug-lsp/pkg/lsp" "github.com/opa-oz/pug-lsp/pkg/pug" "github.com/opa-oz/pug-lsp/pkg/query" "github.com/opa-oz/pug-lsp/pkg/utils" "github.com/pkg/errors" - "github.com/tliron/glsp" protocol "github.com/tliron/glsp/protocol_3_16" ) @@ -27,9 +28,8 @@ func NewDocumentStore(logger utils.Logger, fs utils.FileStore) *DocumentStore { } } -func (ds *DocumentStore) DocumentDidOpen(ctx context.Context, params protocol.DidOpenTextDocumentParams, notify glsp.NotifyFunc) (*Document, error) { - langID := params.TextDocument.LanguageID // @todo Maybe it's not "pug", need further investigation - ds.logger.Println("langID", langID) +func (ds *DocumentStore) DocumentDidOpen(ctx context.Context, params protocol.DidOpenTextDocumentParams) (*Document, error) { + langID := params.TextDocument.LanguageID if langID != "pug" { return nil, nil @@ -44,10 +44,11 @@ func (ds *DocumentStore) DocumentDidOpen(ctx context.Context, params protocol.Di tree, err := pug.GetParsedTreeFromString(ctx, params.TextDocument.Text) doc := &Document{ - URI: uri, - Path: path, - Content: ¶ms.TextDocument.Text, - Tree: tree, + URI: uri, + Path: path, + Content: ¶ms.TextDocument.Text, + Tree: tree, + Includes: make(map[string]*lsp.Include), } ds.documents[path] = doc @@ -59,6 +60,7 @@ func (ds *DocumentStore) RefreshIncludes(ctx context.Context, doc *Document) { includes, err := query.FindAllIncludes(doc.Tree) if err != nil { ds.logger.Err(err) + return } originalContent := *doc.Content @@ -67,24 +69,56 @@ func (ds *DocumentStore) RefreshIncludes(ctx context.Context, doc *Document) { uri := ds.partialToUri(original, doc) newInclude := lsp.NewInclude(&original, &uri) - doc.Includes = append(doc.Includes, newInclude) + _, ok := doc.Includes[original] + + if !ok { + doc.Includes[original] = newInclude + ds.LoadIncludedFile(ctx, newInclude) + } + } } +func (ds *DocumentStore) LoadIncludedFile(ctx context.Context, include *lsp.Include) { + content, err := os.ReadFile(*include.Path) + + if err != nil { + ds.logger.Err(err) + return + } + + uri := *include.Path + if !strings.HasPrefix(*include.Path, "file:/") { + uri = "file://" + *include.Path + } + params := protocol.DidOpenTextDocumentParams{ + TextDocument: protocol.TextDocumentItem{ + URI: uri, + LanguageID: todo.String("Move to constant", "pug"), + Version: 1, + Text: string(content), + }, + } + + ds.DocumentDidOpen(ctx, params) +} + func (ds *DocumentStore) partialToUri(original string, doc *Document) string { parentParts := strings.Split(doc.Path, "/") parentFolder := parentParts[0 : len(parentParts)-1] // end of path is always file, remove it includeParts := strings.Split(original, "/") includeFilename := includeParts[len(includeParts)-1] - if !strings.Contains(includeFilename, ".pug") { + if !strings.HasSuffix(includeFilename, ".pug") { includeFilename = includeFilename + ".pug" } parentFolder = append(parentFolder, includeParts[0:len(includeParts)-1]...) parentFolder = append(parentFolder, includeFilename) - return strings.Join(parentFolder, "/") + joined := strings.Join(parentFolder, "/") + + return joined } diff --git a/pkg/documents/document.go b/pkg/documents/document.go index a519117..d07d1a0 100644 --- a/pkg/documents/document.go +++ b/pkg/documents/document.go @@ -16,7 +16,7 @@ type Document struct { Path string Tree *sitter.Tree Content *string - Includes []*lsp.Include + Includes map[string]*lsp.Include } // ApplyChanges updates the content of the Document from LSP textDocument/didChange events. diff --git a/pkg/documents/document_test.go b/pkg/documents/document_test.go new file mode 100644 index 0000000..463c2a3 --- /dev/null +++ b/pkg/documents/document_test.go @@ -0,0 +1,88 @@ +package documents_test + +import ( + "context" + "testing" + + "github.com/opa-oz/pug-lsp/pkg/documents" + "github.com/opa-oz/pug-lsp/pkg/query" + "github.com/stretchr/testify/assert" + protocol "github.com/tliron/glsp/protocol_3_16" +) + +func TestApplyChanges(t *testing.T) { + orig := ` + doctype html + html + body + div + ` + newContent := ` + doctype html + html + body + div.my-class#my-div + p + span My awesome text + ` + + doc := documents.Document{} + + changes := []interface{}{ + protocol.TextDocumentContentChangeEventWhole{ + Text: orig, + }, + } + + err := doc.ApplyChanges(context.TODO(), changes) + assert.NoError(t, err) + assert.Equal(t, *doc.Content, orig) + assert.NotNil(t, doc.Tree) + + changes = []interface{}{ + protocol.TextDocumentContentChangeEventWhole{ + Text: newContent, + }, + } + err = doc.ApplyChanges(context.TODO(), changes) + assert.NoError(t, err) + assert.Equal(t, *doc.Content, newContent) + assert.NotNil(t, doc.Tree) +} + +func TestPositions(t *testing.T) { + orig := ` + doctype html + html + body + div.my-class#my-div + p + span My awesome text + ` + + doc := documents.Document{} + + changes := []interface{}{ + protocol.TextDocumentContentChangeEventWhole{ + Text: orig, + }, + } + + err := doc.ApplyChanges(context.TODO(), changes) + assert.NoError(t, err) + assert.Equal(t, *doc.Content, orig) + assert.NotNil(t, doc.Tree) + + position := protocol.Position{ + Line: 6, + Character: 25, + } + + node := doc.GetAtPosition(&position) + assert.NotNil(t, node) + assert.Equal(t, node.Type(), string(query.ContentNodeType)) // we found "My awesome text" + + node = doc.GetBeforeTrigger(&position) + assert.NotNil(t, node) + assert.Equal(t, node.Type(), string(query.TagNameNode)) // we found tag_name=span before "My awesome text" +} diff --git a/pkg/query/find-all-includes_test.go b/pkg/query/find-all-includes_test.go new file mode 100644 index 0000000..ced2402 --- /dev/null +++ b/pkg/query/find-all-includes_test.go @@ -0,0 +1,44 @@ +package query_test + +import ( + "context" + "strings" + "testing" + + "github.com/opa-oz/pug-lsp/pkg/pug" + "github.com/opa-oz/pug-lsp/pkg/query" + "github.com/stretchr/testify/assert" +) + +func TestAllIncludes(t *testing.T) { + content := ` + include mixins/logo + include head + include footer + + doctype html + html + div + ` + testTree, err := pug.GetParsedTreeFromString(context.TODO(), content) + + assert.NoError(t, err) + assert.NotNil(t, testTree) + + includes, err := query.FindAllIncludes(testTree) + + assert.NoError(t, err) + assert.Equal(t, len(*includes), 3) + + var includesFiles []string + + for _, strRange := range *includes { + original := strings.Trim(content[strRange.StartPos:strRange.EndPos], " ") + + includesFiles = append(includesFiles, original) + } + + assert.Equal(t, includesFiles, []string{ + "mixins/logo", "head", "footer", + }) +} diff --git a/pkg/query/find-element.go b/pkg/query/find-element.go index 123c63e..9e65ba2 100644 --- a/pkg/query/find-element.go +++ b/pkg/query/find-element.go @@ -17,6 +17,7 @@ const ( MixinNode NodeType = "mixin_use" DoctypeNode NodeType = "doctype" DoctypeNameNode NodeType = "doctype_name" + ContentNodeType NodeType = "content" ) func FindUpwards(node *sitter.Node, nodeType NodeType, maxDepth int) *sitter.Node { diff --git a/pkg/server/document-did-open.go b/pkg/server/document-did-open.go index 9d823c0..86fe502 100644 --- a/pkg/server/document-did-open.go +++ b/pkg/server/document-did-open.go @@ -9,7 +9,7 @@ import ( ) func (s *Server) TextDocumentDidOpen(ctx *glsp.Context, params *protocol.DidOpenTextDocumentParams) error { - doc, err := s.documentStore.DocumentDidOpen(context.Background(), *params, ctx.Notify) + doc, err := s.documentStore.DocumentDidOpen(context.Background(), *params) if err != nil { return err