From cb85c2435fe0d6fbd2b6da62381b49398694ea71 Mon Sep 17 00:00:00 2001 From: Lucas TESSON Date: Sun, 8 Dec 2024 08:31:41 +0100 Subject: [PATCH] impr: fix ToS content import from file, add examples and test them in CI --- .github/workflows/ci.yaml | 19 +--- cmd/ctfd-setup/main.go | 14 ++- config.go | 13 ++- config_test.go | 77 -------------- examples/{minimal.yaml => minimal/.ctfd.yaml} | 0 examples/nobrackets2024/.ctfd.yaml | 32 ++++++ examples/nobrackets2024/README.md | 8 ++ examples/nobrackets2024/index.html | 26 +++++ examples/nobrackets2024/logo.png | Bin 0 -> 85237 bytes examples/nobrackets2024/tab-icon.png | Bin 0 -> 1444 bytes examples/nobrackets2024/theme-header.html | 98 ++++++++++++++++++ examples/nobrackets2024/tos.md | 91 ++++++++++++++++ hack/examples.sh | 25 +++++ setup.go | 4 +- 14 files changed, 305 insertions(+), 102 deletions(-) rename examples/{minimal.yaml => minimal/.ctfd.yaml} (100%) create mode 100644 examples/nobrackets2024/.ctfd.yaml create mode 100644 examples/nobrackets2024/README.md create mode 100644 examples/nobrackets2024/index.html create mode 100644 examples/nobrackets2024/logo.png create mode 100644 examples/nobrackets2024/tab-icon.png create mode 100644 examples/nobrackets2024/theme-header.html create mode 100644 examples/nobrackets2024/tos.md create mode 100755 hack/examples.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ced8e1c..db9be74 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -55,31 +55,16 @@ jobs: exit 1 fi - - name: Run functional tests - run: | - go test ./ -run=^Test_F -coverprofile=functional.out -json | tee -a gotest.json - env: - URL: http://localhost:8000 - - name: Run integration test run: | - go build -cover -o ctfd-setup cmd/ctfd-setup/main.go - mkdir coverdir - GOCOVERDIR=coverdir ./ctfd-setup - go tool covdata textfmt -i=coverdir -o integration.out - sed -i '/^\//d' integration.out + ./hack/examples.sh env: URL: http://localhost:8000 - APPEARANCE_NAME: 'CTFer.io' - APPEARANCE_DESCRIPTION: 'CTFer.io test CTFd setup' - ADMIN_NAME: 'ctfer' - ADMIN_EMAIL: 'ctfer-io@protonmail.com' - ADMIN_PASSWORD: 'ctfer' - name: Merge coverage data run: | go install go.shabbyrobe.org/gocovmerge/cmd/gocovmerge@fa4f82cfbf4d57c646c1ed0f35002bf1b89fbf7a - gocovmerge unit.out functional.out integration.out > cov.out + gocovmerge unit.out integration.out > cov.out - name: Upload coverage to Coveralls uses: shogo82148/actions-goveralls@785c9d68212c91196d3994652647f8721918ba11 # v1.9.0 diff --git a/cmd/ctfd-setup/main.go b/cmd/ctfd-setup/main.go index 631b78c..6138e92 100644 --- a/cmd/ctfd-setup/main.go +++ b/cmd/ctfd-setup/main.go @@ -174,7 +174,7 @@ func main() { // => Pages &cli.StringFlag{ Name: "pages.robots_txt", - Usage: "Define the /robots.txt file content, for web crawlers indexing.", + Usage: "Define the /robots.txt file content, for web crawlers indexing. Provide a path to a locally-accessible file.", EnvVars: []string{"PAGES_ROBOTS_TXT", "PLUGIN_PAGES_ROBOTS_TXT"}, Category: configuration, }, @@ -502,6 +502,14 @@ func run(ctx *cli.Context) error { if err != nil { return err } + tos, err := filePtr(ctx, "legal.tos.content") + if err != nil { + return err + } + privpol, err := filePtr(ctx, "legal.privacy_policy.content") + if err != nil { + return err + } conf := &ctfdsetup.Config{ Appearance: ctfdsetup.Appearance{ Name: ctx.String("appearance.name"), @@ -585,11 +593,11 @@ func run(ctx *cli.Context) error { Legal: &ctfdsetup.Legal{ TOS: ctfdsetup.ExternalReference{ URL: stringPtr(ctx, "legal.tos.url"), - Content: stringPtr(ctx, "legal.tos.content"), + Content: tos, }, PrivacyPolicy: ctfdsetup.ExternalReference{ URL: stringPtr(ctx, "legal.privacy_policy.url"), - Content: stringPtr(ctx, "legal.privacy_policy.content"), + Content: privpol, }, }, Mode: ctx.String("mode"), diff --git a/config.go b/config.go index c6aaa63..c13ad90 100644 --- a/config.go +++ b/config.go @@ -223,7 +223,7 @@ type ( URL *string `yaml:"url,omitempty" json:"url,omitempty"` // The content of the reference. - Content *string `yaml:"content,omitempty" json:"content,omitempty"` + Content *File `yaml:"content,omitempty" json:"content,omitempty"` } // Admin accesses. @@ -264,8 +264,15 @@ func NewConfig() *Config { Email: &Email{}, Time: &Time{}, Social: &Social{}, - Legal: &Legal{}, - Mode: "users", // default value + Legal: &Legal{ + TOS: ExternalReference{ + Content: &File{}, + }, + PrivacyPolicy: ExternalReference{ + Content: &File{}, + }, + }, + Mode: "users", // default value } } diff --git a/config_test.go b/config_test.go index 79ec95a..cbdf782 100644 --- a/config_test.go +++ b/config_test.go @@ -1,19 +1,10 @@ package ctfdsetup_test import ( - "context" - "os" - "path/filepath" "testing" ctfdsetup "github.com/ctfer-io/ctfd-setup" - "github.com/ctfer-io/go-ctfd/api" "github.com/stretchr/testify/assert" - "gopkg.in/yaml.v3" -) - -const ( - dir = "examples" ) func Test_U_ConfigSchema(t *testing.T) { @@ -26,71 +17,3 @@ func Test_U_ConfigSchema(t *testing.T) { assert.NoError(err) assert.NotEmpty(schema) } - -func Test_F_Examples(t *testing.T) { - url, ok := os.LookupEnv("URL") - if !ok { - t.Fatal("environment variable URL is not defined") - } - - files, err := os.ReadDir(dir) - if !assert.NoError(t, err) { - return - } - - for _, f := range files { - if f.IsDir() { - continue - } - - t.Run(f.Name(), func(t *testing.T) { - assert := assert.New(t) - ctx := context.Background() - - c, err := os.ReadFile(filepath.Join(dir, f.Name())) - if !assert.NoError(err) { - return - } - - // Extract config - cfg := ctfdsetup.NewConfig() - err = yaml.Unmarshal(c, cfg) - assert.NoError(err) - - err = cfg.Validate() - if !assert.NoError(err) { - return - } - - // Login then reset (required to run multiple test cases) - defer func() { - nonce, session, err := api.GetNonceAndSession(url, api.WithContext(ctx)) - assert.NoError(err) - client := api.NewClient(url, nonce, session, "") - - err = client.Login(&api.LoginParams{ - Name: cfg.Admin.Name, - Password: cfg.Admin.Password.Content, - }, api.WithContext(ctx)) - assert.NoError(err) - - err = client.Reset(&api.ResetParams{ - Accounts: ptr("true"), - Submissions: ptr("true"), - Challenges: ptr("true"), - Pages: ptr("true"), - Notifications: ptr("true"), - }) - assert.NoError(err) - }() - - // Setup CTFd - err = ctfdsetup.Setup(ctx, url, "", cfg) - assert.NoError(err) - }) - } -} - -func ptr[T any](t T) *T { - return &t -} diff --git a/examples/minimal.yaml b/examples/minimal/.ctfd.yaml similarity index 100% rename from examples/minimal.yaml rename to examples/minimal/.ctfd.yaml diff --git a/examples/nobrackets2024/.ctfd.yaml b/examples/nobrackets2024/.ctfd.yaml new file mode 100644 index 0000000..d609e79 --- /dev/null +++ b/examples/nobrackets2024/.ctfd.yaml @@ -0,0 +1,32 @@ +appearance: + name: "NoBracketsCTF 2024 - Finale" + description: "" + +theme: + logo: + from_file: logo.png + small_icon: + from_file: tab-icon.png + name: core + header: + from_file: theme-header.html + +settings: + challenge_visibility: public + account_visibility: public + score_visibility: private + registration_visibility: public + +# Don't set time, not very usefull in replicability + +legal: + tos: + content: + from_file: tos.md + +mode: teams + +admin: + name: 'my-name' + email: 'my-email@dns.tld' + password: 'dont put password in a config file, use the varenv' diff --git a/examples/nobrackets2024/README.md b/examples/nobrackets2024/README.md new file mode 100644 index 0000000..7e265d0 --- /dev/null +++ b/examples/nobrackets2024/README.md @@ -0,0 +1,8 @@ +
+

+

NoBrackets 2024

+
+ +The NoBrackets 2024 example shows how to setup CTFd for this event. + +Stylesheet and images are the property of GCC and were granted free right of use by [GCC](https://github.com/gcc-ensibs) diff --git a/examples/nobrackets2024/index.html b/examples/nobrackets2024/index.html new file mode 100644 index 0000000..0b4687f --- /dev/null +++ b/examples/nobrackets2024/index.html @@ -0,0 +1,26 @@ +
+
+ +

Concours de cybersécurité à destination des lycéennes et des lycéens

+
+

Horaires de la finale :
20 novembre 2024 : 10h - 16h30

+
+

Créez-vous un compte puis rejoignez votre équipe avec le mot de passe fourni.

+
+

Accès à notre Wiki

+

Rejoindre le Discord

+
+

Un grand merci à nos partenaires et sponsors :

+ + + +
+

Le NoBracketsCTF est organisé par le club étudiant Galette Cidre CTF (GCC), par des élèves des spécialités Cyberdéfense, Cybersécurité du Logiciel et Cybersécurité et Sciences des Données de l'Ecole Nationale Supérieure d'Ingénieurs de Bretagne Sud (ENSIBS).

+

Suivez-nous sur les réseaux !

+

+   +   + +

+
+
\ No newline at end of file diff --git a/examples/nobrackets2024/logo.png b/examples/nobrackets2024/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..76d414fe8ea19fd50660cede35c183217f22a825 GIT binary patch literal 85237 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

R_{0N+|D)D2?thiukxP3QrT|9sTj0PrR|7+ zmee;857k$2h6X<2E_FM2wu1-KO4GOtsxZKYz0N|QUZ3a9+IOVKv!=5;;kY1S8TRb0 zDR9J(4of;0VW-wBZp*Et>cw!SXmZNo%K?&bZc$Ivho^$wGo?e_1b?8+&92cpI1CUq zb-F~;99HWHkMfq>u#2ug7dJ^O29XB;nAT+{fLgCAruKZ|EP3|gN zQzo7SEwt?@cl33gT8x)Qt9*caAJk0(+qR zIq=v`vEiQ7>yb~<+{3iByB(K$_t;BCkE`=Hib5(njux2UlY|c@@8I@#{bGBU$l;*Oc?Dn-Ga;L&Gq6`<8M5$jkq6RiA6ncZIXLhC5c5g zjPBacpj)21Ps2->BB0aar45^GIG#h0p?oh0m$&>}r2g`d1=B5Pqv-pLeZ$h3PTx(t z1xf_1qMrrofkoW(^m9~>Nil3V?vkjfdkw{<^A}PL7(8v{AK4=rrR?@HEp=`g(!YBcM?22M*jCgtzJX=gh%}xxb{3$hRi*;^~Mf zX|B~3XFm)fxjDS9=Av`4aSl{6q6l63x=QirkrwNxW!HikQ z<-wLZ8fWb>0Xk} z5DOs>29ZpwlBmGP<+rt@3+}ACNeWqnp**f}p}B(`b2)vf`06Tk4jSRsFE-fc7Bhfw zdB&oUw*@6oI00SHG9Wn(K4VMDaISM(4d#c~vWVfsNYZX+YU!JGKYY2zC?wJ! z91iC0*o_YZJJ*xES*=oJ;XPQPlWMu&%uyl*+cC3M8DNS=MbKPnRJCcf1aO>tacx#z zKX>TPY}s_8gU{6^|I8fK-l3Evi8nNXm{N3eBxRhaZg2r{aR zz{UpbtVnp4wK43#Hy4x+hec3*jZkEe2j1ffU9-Mf*F{+^1zekeH=&HaNgf-wB#pjb zl{zFxfWuuu=9fm^`+7Nh8wcHc`{6~>E2-*|O@<&{h6;cnQ%i&5!K*vQ^N zu4nsK&onXMbpGkOJ4g@F%sPXlA4QdruZR zD?wl;F@vEE!#17^_u}r*juPrmc!|}*7Q;$CJVh4U_g~Wpq}3#SfwW&MpNeyL;`>nw zQo#A0s)g)+A%&OPMyp#rz90G+-V?;qY=VENNqdD22@Pj#zOF=6MET6im0yRXay@c6 z;FZ$<{@qk$&s}V6z5?ox-62Ia^V=5~906xDvOteRRf{RQbE}g zF^6}`IkV#(U#)4!68^;#Wqod&0+uD^2957PUV%AK&fGdkMLLq)KJ%2ZTVd@Lj=LGV zCx`Csvr4cDT!XD_XgfK5j|YuL+`opj`40EI3f8JHU@gcsB&HW{Q&)71pbKHuye^@K zxkh$ts

P2b6%# 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≶IS-iO&x z;g#i7&Bv4+aiezYt}y8wOzJrcwePd0*k~_c2^~KjT8QP+J(yAvJ*tf<)~8l z!3bzG)>GV#*6>NZ+bpY!$LfhWjCrs_!$PY<3s%>WOAbCKOmcRa%G1D8$@-Pb@7L5e})ZEli?Z#pj5f8Oa|ueJ=x4sLdTZ4{vnh zIORw`$WCC7stkwvkOFfQ*@6w5cR`d6l7Xx`r4gd3PGK0qW)U64(ng$guuS3X*t$i9 zi*Oj>UILwz?fjC^o^8YN;`1P0?60J(s7gd{J#ZS9sxlMsQ9sU1GFbb8ouaZ=0u@Bt zb-N%sN6;;JgeWbmNlFJwQtF+mfAEw>h{Oa@t3r#QBfjpbVX4Ad5j^p}ojWo> z{H3kiLd+HJ0(J`80@^2*mRae`7aUP?F>OXT2IT)Re^(nY_W#xYZtSlo<*GoLYeGo3 zU`~|TGw81m+J^O}3eE&jRHPSZL1`AE4lGqTDE_E$N9J%7b8Y^atWj7ZXx5i6_%n0} z=u@E_53GowIjDN}4gTo9#*W!5!Ievk-^F~Y2O=mUm?xCLkvSmuH# zShB!I%p3G`g?(73H5WwbX9=)P&{ttjiJ3ys^+VQB!9OqOq!|S*pzO9zV40zRuYY}T z8%s4)39J&RN8*KIPB?Gm75*{W2Q-RxS)Ed$J+*>pG+RO$h-->HYMq%@VC`vrVsO}0 z+D})F)eNu4Qqp=td&sZUU0MW+e^~flLEv%VRd`34aP2c|OT8R8Bk8#I1XGwV>`W~G zHGfwnuux$Gumu}fJHtG(nrv+k!#HKjh`?@y$3c(&d+zl?s%#ah#OfC}0drjprG{g` zUZC^lHCIpRIXa~q6f-{8&lyJNFJNSUh?%%4J#3S1)__>HnlacqW5D)wi7mU zfL9}&kGObEIaNS?k}9_zixhc^isO_Q!w64HB#%lYy#YUGHC8vY1?!gUq=Ta-h_qv> z|H0F8SqVCTO*PIXKTm5)1-ee)9H0r30x#_5$HmY8S0T$yXHbW7k#TbC%>^fle@neqywu9 z503X0?y4%G^J8S(#;oz>OO+tno$Rmj7eq*W9LS5xCdzO2Mme(@Nk5BGF!}Pn-ISZ0d<+fLI!_S`<&2OAm8EmV>Oq>c2uQnASMb5%V(eC|;M629~Pw z232`ojI70Hl%+=v36+s>KJXTx4jbq^6Ah5$LRWR+;glgUR@-qe0jHyvkf?;@K+Xgf z`Ld;kVW7i)+Q&3RAE!kSX-NjPBrPb1fdM>9lonW?y zxP=ln^MSK~^8`*4jaR(4`OeIHo9}ebUcmgf{9Uz?b#gji;1X;gau)Z^OLwRbDp4uI(y+$`k)K8BUVU`k`f63|{znQ0WH z8E6pedgYU0#b!}@q@Z;|M#XV^bhvjUPL&G=#wZ*L0|2HD0nKdnGvr_x|H4Qf+$GV*c$1% zSXY^u+o$l9*Z|N|v1p{H&4sz{=X))D=3yPnwgFcG4XC;`7sk4rinZ3h6f0hK#*dr8>xdlZB{G0H zJez?=;8@@;iPgZX6G7ypM|5`rZ75y9z;u;hWT$uY>Il#+$Pp}Wa6aB{H!aivn+0tF zc49@B;aMm`5jdtwE7pd)RxI5o>q{6k8T)CyC<=7Euldd*P2bIbsqS)bqdvvFx9RpO ztU&p6lsAH&1F{fLN%?h?EMSL=)e*T~b6zw@fL{OyzEpSFaHtRYr%iWM0M#Yc)xfFA z+2o{yA)tWL1PuP$y33|*6wkC8h5ufE#n}Iqzr85J5nw;68(a{jOAsYOHrT?&e_MB1 z42-RMR(D01gLXxFfQM0CiG|dweF;;6V2v;~sZs<6-dDJz7TEWt z+?$U3>zQ2sr0KgAz!HVcsJ;O>FFB`O3^`8uGK_WoDgb*BIzoQfSXqkA9a@Li2&YdF z!G2N6GY!L7gAzmu9l#S<#KB1i8LS)FO3;mBYuLjybq9GNG{Z6ANhz@zWdQSdyHS@8 zDzMImwODny07w6%aK{)h`meb+xyySJcwhdzS(I9Y29$Gw-vv&=i7f=IwwDEF0}lWX1-$3dEQTUrt-@weeWO@Zb!GDIJsl;5 z_@X&4fi9F^VD-Vl4#xgK;noaLA+TED96ZA)O%#D{pcS+mixkDv`9MJkq6&?VDKb(- z+Oe)CRd|g@T9^lV8qg?E`~IfehrU>MMKQF8{GV$sF9AdE%iqxoJS0LbE{M{`EUc^9 zY+$xn4NKRbHr;llA~V_t#GhYtwMUCil0V7cHXGu(h@6IXle+|)HRL!>c@rmw>Ji{! zY&iBBQ+K~WwA{|RG>x4s!g1OJ=A&ea#fqW`&41Q(+aX~1y1FaJ{58EeKG^cz2*{R-@j}q$u|!q(Zbg)65VyZ)gvqhyJzxioU?Vw}rqN3hRMN?=F`*LDVeP!O#WK^BmTP5O#{P z!S_n)SY|DG^(gR6z|T2?HGjy9$YZE(##86g$~-J(VivGPRlY02Pq9JI$NcrYB&Wt~ z;B4S`1-6l!XE0i{1H+@43dTg~Wm zL6lxYz5-YWvIrPbr54!rr}^6&mAGw8i~T_9%MD&z^sBr-e|t5sq*#nsi_id^t8f7} zr^_SsFN`Ke@gddw2(QscoIK}aSaXtvzyd7gs2ZsB<($#PSaj%!z%z>MPyTa| z{8|3iDqx`^b$0%<2yeHYD&Y;Z3ml2bbP-6Zdr*xFve}9waj8_T8jrVc78gXRVIeR_ zt>}GTvf+!tKCMb4FpTI{%m{SSOI0F_UXOL5djPl(_$f9|BgXTDo{w5A8g!wmUYr;f z3-E?EFGUb_0|n5Xz*C~~R1`h9;O1u$dD{v~7gFhFaG4w+8U@4ic$?s6|YZW*w%Hd2Y z>H`hR8T6&CSL>fN-7x|j6l4(9c0_iA-k+R(Yq6HatCH_%mM`^;ViX&j@hH&oKkBat zy*W)S@XDmaZ7qn4p>%1YL%=hjJzvWGZZLOpP=e@l%P%dxzi{gSHXV6yazVQwN*8NT zE&_T(7DU%IylMFT`P;@&eFotHEKSn|QTnL@HUjkm7lJ$?a3|<}Ko>e#i}q7e}YUBf#BpDf&6kmC0x?z;(Gd2OWj{*Sa^2&;96rfByD;&w3M7 z*8{Iqcpbt8i70YGG_x21o)(b@644*FIW0ODI346PpvDsb(xry5NaRzY?X}=iBSaYk z8WEmJ44dV?e^SLtgmVR+`e4gVvw+dhuerJu}i@7UPXN`Ta{)%Ux`OosVb|uEiQ7l5RP9TS!iEDtRSW1#p zp7dhT&V9fE0&b@8=lSnsfyF5GDl(qc;VHi9V z9KJ!Y#9bbAW9MZ^cqIz2$rPQUVGn`ve{nGkzN} zPw9||3}&LtkcgB%yY`A;YmPqHa+7u8EJoG9EL3U~<|4XMVI#<^%y{5bJnH#E`=N+M zvyTGz2;3(sk5r6i^1$e4H(gPhi7)1ZjknDLmZ-#MAbPP{SHewreQ!B1nh5;=sltsw z%XM{c4R)yd2O7VTaBpP*03ZNKL_t(tg~&=3{uHOsd49>NUH;n2JR<3z+Gz#i3TE^r}w~-`pllA8knd zC>ALSj$kiJvBJJR*ldh5d>^Hbg^97*pvBA@tTkQgC@_; z25b)43T)u;vwy7f8->tOpczY_yhl`a*m}RE*Iy5OzTwJJVki#+hd+@2&JfTi=y3A> zR$&gy3fzH|HV&iw0yuD8-CK`^{GcCfyhSj_&zYE$+#^HjqJ)(vw5iQ(3o;TJtRRYG z27$dI)Qd3e`zdu~fm)O;Ag!3UJxD>cJ@+2{yTVsWD)b0Epvv6DsB}RzGpNLdQ_e}m z(S@oy1l%j|b8OJ--oT!BE^smM2O#q}F*~LjPmg=C9K&iH@5X8)6?r?6)B2T!kx$)I#-Hd3NyK zg2V{$j&tci5(90spk2W354POY4irPICHh3}J^G=-E&agLA}m+sY-}3#EZoUn?nH@* zsN|O-E82#o(ajF)%hC)`jj~)|D@difG5TUDVUC#s@C@(}=%c`%&)2`r9d9qd7wX?K z1PpzkaBEU?6=zX;ur7{kvCIG$m=EnqDON6Cq z?gd>bCc?*S*IW?IOsbMIry@XSLpJ%oDnK*7L0=S#rEPQ|`~dhF%F}A;8>9YuUJ`vG z@t{PdPD=6=Dpz8)cr`AFf~OnhNxSRh2;omPU4Yd{)&r{rbsI39d+rI)pgS1`U2OZs z4R4Jhco%#*jA6N59IbTA$zS_+&d#i$dj3k%Xi@GrTy#=z)@^4~rL+>`7z_ju0e z{VSOO1+hHmnOqCKIL1>p9v0*wR3AXtgV6IYxwnn@>v?H>A@}C^!$-b02K4H1bsm); ztJPz5V6(0o{H_ktArJ$H5bg%ub6vw*g72QF60ZX;ar-ajf=Kj9%+c(E=w*KlD!sr? z5pBSR3s(8wN|hkWVjiB;Q97^*?*m~!bkq*)P~t_vtFZ`y8=f!CM z{aV|q$Wg4O!&@$>^MuJcH?QgidOw)IWdP_EJKk4eO-X!a%=CW`J)n;uJdJYn z^J}gS+bN(r9~+Y1fR#)*=@djwz(G|x_RqPifqc=BOy^nI2p1gH>L zF3LGdGy*(I;9gp>`6S;1wUj@{32J}3R(pYqxEr`TM(z@kU7*LYlp$ww=>i@D&5A|m zF7oqp+QrZ?a2R+Hm0hGDLKiaXTGW|4E{^*ZJs7K1$@5#t^Gj%U*vBRpjRw9G#{Jw<=Gum&nQ+uw;z>V z(O5-m$j0ekHhwD$%u-8Lf0dx?d&?WFJUSL(Fo8fuv>@^;t`?=6-2$j z0hAU+dc-{So|l|1W+}P?sE;Bx5k-5k$>%}xxw@-MKc`ru_X1lLaeUH zBSlklgbf4j3XcO%0==KzbVVHULyJWdPY2xsvJmeqoJPi@lFb5bH4OJ{&%GxO{h`y; zt!)U4C>#>BSzxsbqSO(IwXj~JA{QkeO-t|}NfhN(bwD*fL*X2;*-Ac}sLYWQ|2HU6 zlzEN<@CJC#Qo_=+cB$}fjd&EahZJ}v%bCyRuF?+|ZayODh@jQUJ${)BqA7C{90Qs` zo*Id=dkDPCS90Vo1}+qMC8*!C>10r?qv0O4I>J;$=u;zzK3n(uF);dn=fBm;iOye3 zeBY(g&RijI9?WZp?(Xr9?BJobK)PpT}*P9uF2B$inJCW7p z5MYk79xO7nL(pAXHQE7`K3jj4zoO|EMI(Qe|JG4pCs3uZa{L~^z5kO*5!em<0yubG z-CK@_{IGx7_^nE;&TIp4N^-~gh?SHIB7xm%+teYOx&WUU^&_ynYW{ezigF1Z0ItsLd{)Y%Z1lm8h{M{ZI z3X4%7uMjIN7ZXAYTo6tAJAX`-pMV}o!Sl`n8cbzu>UN-@V+J=Sc;xAMf&fwel`t4ebkjM9uy z3!JIeyl9^9iBwX;+U_?3ht*OxQ{$XUogn(hhO0Y1()g`Dlvae}ScJg^QM!ndUrv$N z0!RP4>H5My)V(WMZ~SNLua1G%kLJInz&^FGew7O%7ev$dY%@N16=O9K_k-Mu()^kF zw;%Ui8!rD;|9ic_Lm$cClmRw@&Q6S9PmP*b4huX1?EA;{zt0>Rb7XVKoJpR{B*AM?g-MfPB z2&FIpJODZ;xya}EGCEU>XM-g)V>#+OL0U;sYQ~IrG^ic|?o?5LHCWeJcWh3Klb{6b zLghb5LDQm-#Si~;)*p1`6*sUppSs402rD_jtzmStF;a041G z2iggJc$exR@Fc=q(6g|{9@Tg^WM@ik9+<%yCF4e4Bf{Ol?tiSmy3_YXdWbac0Dd0B zauv=??(lj3W=@)6pbyv;sosxu_zITog|EnnYK3K7=vi394Ih4Fh!g~Q9P2LRr1)+GHmXMFt43+)8d$_~WDj874)bYivE1uUB; zRirXPl!+n*+GCCPtI~#fL1y83$Y~Ws8?ZLqg^xCVvlSTobi?llImGKT_FMxW&405M z`YJ&zV@i4#ROa)&1iN`Fky3R2BoLVs)7n{)S#M zaq=BBsq!=6z^B%~eK_=o9@UC@z*>QgYOS_CI+WsbSs;&c=rg(B?@r?%kV*mZ$-1lc zZ<=lzP}NRBo3LE+b$C5TS_M&ka-iQ2vKPxe4cxP(M}c2}&KGzUFgp?Djx#09;HCAjH- z0uN&y4pT{LBPyS)ySn(%{Ehus%FR#+$&1z+N!}y3hAz zs+k3x1$sVc@E77|*1e;Yh_+_n$H`^n#+l;)Zl5eds5l2orSX9C;6>i6B51g0I zA%yQEJSM6mDY%O&u!zuR;3B*+R+<@4*KE#6@v)2)Q!9v4U2`KACT>;}MIBg_!8?AX zlPaJAp%ZxMWBD6;fZk8lzoQheD2hK?xUmy>6w8A?8yhm{GZf0jPz(F~n`v|^+>7uu zF!1TzHC{VZE{JrYx>sN~unAa-XMDUE#v6?6Qg}k4B~pz)zvk+oL)(=VtN=EP)ekSk z>%Y@XkJ{X;mMp~{Lhlq@u7c=O_1BDkEPrE*2>XE}DE*1&!39zJsKn+`^n$L(hIj`-GC1_Pdgo0$K96gx%UjG`436GD*sgdHTtpq4ZXmVSRK(> zcrI#MiGW3*uK|u@g`q)zV4t?jM?aRo@c?ie=w(=>(s3r48B^bM92+pX3#2`g^tE$+ zv3#WPjak4fL1+D{p(yB3mSUd}kA5Qep0W~zpQ(Ghek^}O5vvD&5U9f(WX^B?_{V@Y zQMnsPkP6~zqm%Sjeqe1(yVVNti)}6J? z;HiZvXFl+1EDhk^ziqss@9!Jl5&Y#J3k9G*Qf&Y(NWLxan3HlO=x3Tyf@mkoPF3yR zo_lAi=YDN3+z`d88C5bsMukYs85EV!`NGs@vQn@i=EtY@-B2kSX+ps8L#_#gyrG!O?4g&XPi}E;@J{S0Tsx`n$&{Kdj z{fg5#dGPN2a!oYhWM-BeQf$EFqY6)@!RUJdF;tP%Lno?1uz;S^#fqlvQSq;A|3?0DI$sYmk6|@ax zBn?MGMs)>nv6|!Bg>Jg(1C9Vqf_5k}=z=H!DyoNufP3;x#L=f4{)+-bAJ2ci8%v$5!wT+Q5dAV^z)`VgJ`W;vY~OfI(1q+DD||fy zDo|DfuSuFI_`R5Jj)Cq1@)^}*|GoZQsqeB|E}cEpyk;_9+%+o^MIMe#FDn$?26PGW zgKEZ6@HU{reh?LO1F$i<%spD^I4{reYeCtM(2k|frBMeiOhnKb3a2q184~7U>D@J0 zchr|E(pLbrYV*%70O`lZ06Yae0X!xaNf=Gp`x*jvC4b)*V2OVUzvLw70rCn@inXCX zo`UDDPS&vjiw-S!L6mwrf%{P!DU*bSvJgbuSN^dA`tke?UBIKDD}d8o5T%-Vz-ENa zisV$Yhq2*vK{HTM(OF$8j%8zg8Z%TjV9`n^z4&z2>0uP>+_)R1`%?|?NQGg)z3>$Q zGO=bCsIm-Yy_$36EKCrs#D-CyEOYqvPHb%m%Rv{#L~~F%`0>Km+JL_Qo_lvnQd)Eb z$b+m&jQ`bGqa-(=O%UaQhk$*5U;oaIG(5DZ&H=W9jPHN%AedgpXD}XCK2wn3#E>#$8Y_$f z`w?~m{V96x3|0el8t_J7tH4Ikxmd)wY7+n13$d2f^}sgk{-k$f5tpWvyuUG^9kkj0 zl|HQQ%4gMB?bstAcLAv}M8%>*7lWRIW$-xZWdw^3wO|9XJ3qPp-5wzdjfmoq!ePiZ zt9emYV5xIX8kf_4>wwn@bZu|^+8$tZd&9ef?K=1QHCOB3G=6;)IDk-#rF<+-_MxZF zrAiEi{ak{Uvm6=)dIj=`9)R#$ZEr8!kOgMN8n3`oX3rPlwQ6VBiYa=G@rDfZu%<2| zDzky5f7kf+CxC;WXn1E&$nP+ zzl}+{=sLd#Q_pc=ufjfrqn~Ve_ei+-6g?=&BUp-p3!-$hI$6VKfP0cl zAoMoeG0-Mx1?ZC?OR>wqF9K&qh_;hI${EC3?>A$uh0`#1XWaNZ3*^eg8IqIf`R+4V z-Nq}i)ZK>UEWI5|LrVkwz%ydPuAY}(XH{+-Q1~ep?dv8TSuoYWX3(<)sY~wi$WQK6 z)2mjWxSJFKJoMXbq0zrxcX zJAi|qtbbSV%|*8Fy|F^Iw21%1-kV3+Rabf6pM7o(smv1@3CXQn0Rn`19z+n^*M6UV zXnng;Tcw3Y0SQ9@ZAK{?5k)$YNktmc54PQ!_Gz_STLuMW3XnNuuGGDm=TxOCsnm4u z+3z3w6bZBwl2n~@?*6P*tD;$pobx-sbAJ1~N6}M(GeAeE*L5fQFvKGFJ4I!gB89ZQ zm#GXvhr%Y{<&5gdzK0V}PwL!Mgc6p!x;hzeSJxikHHsA#f}DYM)~Rqolth~(P88pM zHBuZQ+JdqQn?V$JGQcoYj|DyfoFpbh;^GPKNj)BeMOr3e<0)b-h*V2$K%8Niv5Fn1DcT4Q4ncA&CCHjiC<_Xj?ds_74D z&B<-YJdA6_a*#)1In_>bISgx-F{M8L&y5P(?ymh@tP8EhJ|LY~%Fi>HcjX+c&9395 zNu?cZL9`8_k(f7As4vW_MCCA$j|yDG{u+rmKAsA!!OIlj&+8lic@VI;KKHq})@OAC zy9L>arHBod@|sDckrBEI_%D>jTHUF4%iZx03|AB@fa66t51X@9g{R6ToqgEg`9+Af zQVLSnxGa?$^sAFD?fB}XOPd5)2eN|XI?rIpfUs`i;1C+U=0A`niiYE9D{Yy z^`4E$h`S0;#j>{XtGUaHU(H>%M_`x0b}?~WPA%}eBZt6>Ak?2{O1dHmVyJ%2_cK5Z z!ttQzNAHAZMkHUH?*o>JutWlFt-s)c)V+(TR_p?Ku|oXKzMoS;C2&%7n2%G)#9b6c zv|;m9mI4cbP5vm8bPlM`A?iJPW?XE=zTa_;5Jh7Fhb*xytgwM)K ziXw7)kIu*d-dSJ!x$X6}pX-R_*`f>*WrDz20w2cGf|B9|?}v46n+lu{It9XhQFDm+ ztu^csb13a7lXsw}R%3$*FNv^7GtzSByfK8yI@d?R^*0|Bfbu4fiup3K5+nJ2Z*A2ig1%?W8 z8fdk8EAF^Iv)CE9J%d>#om#CGb6~}L5UX+o=ounR0Y(c{C+%qnj6?abLX!$}vDEU| z)f0*6K47CLO-jjb~572dI?cc@w`&&_L z0ai+P#bVHfK&{wp5XX5>FTsJo(3 zMD;jeB^HT^+kS5YHYqfhK@my_w16%G=4A--w@>j%C9XN@Jp)f`5zfJ))k$Z9z(r!>E`}Ze*@wtxpqX?>h!pe2Zv&nc z)fbggYf>&g40UW6>RDJ9!^7}Fx@i&Uogk~U6wK99uq(|sTao_fsUhZZTo(P#VxF-I z-|LB`r(4n_&@&Zj$5Q8FU36MM;R*#x_Y`Jr0_G@8#(suJd(w%YH5POGDSd)SVjLlo zP=^DP5bChGK50mK9jkB_u%f;&>kXi*K6_b==Ke@0uoJ@FW}G3UbHHa8NFy*8bg59< z7^Nr0n)-&vGeDK1wFn;qj>J>J)53Nj59GC!*%rNjE{KxKUA32$?#|EJ2HF6u#R~nZ zTo9##QCP>heZX5Jrwh+cpc(Y7=7XZqIO`e!t;@>(soDf6-lVos8kpPdKA`rez<>|Q^R^-4(NJ? zeRm)AH>oZQD~mx{chz2267xJR7FZ;4FW7bdC<(5IH%j{fp!F_*1u3wZMdo z>TwmSBVzTvoOG$)IqA|6b9n8FghSdq8#{s3pbLP-!0v>IA%Y+?CKF^XKsZ^f#dfuy z9Em3sOYzSGuK=6VE{33tq9j3}ZNMT`8KKIFVqP&X4oEiru%T~9gPaPq-&2^i<<9J7 ziFk1Hq7%yK0e1l#RcVMm_D#4)J~aoqh<;c^Ps~&V1HQKL|5PUAy1Nx^ zRvRAtOKcdW6FWQ1=|$QD!d(Gjtma(YTbR`kbE1vLQi5tyxb~wEIU13;ijB_b+)mRB zlx|=z@CL|FLDnbb!tcpH*&nDA;kcgm^SBsF3)`@|?0h7Ky366F%O*l}`=r0?2DabR z_~crk5n&uwx8WZ7G#unGSYVBY;W)8wg3WQi=vya#y7&);CtDEaq67lD=wABy!4elW zq_Gu6LaM5W6dU@~K8U@$iJ!Bo1{f>7cS7Pg|i4&>|WE^RNDn=ZS?0%9JfIly4h z!|{CAG?2kU^+ywOvBHbM+=N_v3D_>MQqb3<{df#MFDq`wdMpJ|iX>6Dm@(La<*vu; zG<|hkl-=|821|D%z0!?zcQ*nqNP{#;htw_|Qc6iKB`GWdBE5o0Nh+z7NJ&fgyU*9( z`|o~s_uOY@&YYRK=ep*LG9#8Q_2g0cY@#@=4n&sF5tq6xK`%$dNV?H(hdYUM$T!9r z^;VIQjm3SPp0}73`3Qyma1-q8CYn5=MU+o!ZS3zUwdg;OR|>Fz_b2HC#`HxkGH~76wMVGHuysBmENxZOxRP zsm6|^fz}e2?X=Xd-HB#2?HrTb*{*hfclH&N2a%sY+sU_nnMisq4)XbW+MQf)5a?~nva+4je}fgHVmW{_0DkJ;)lq(@*BB^HfpxJUdY`3XL2b|urdF$-e|A&@cs zuN)ZwtlZ0*agi`CVY~%8Q_mzX!ndeAU(AhTwuaZzdrogCl(ky$^!siP{7k zF_`Gh%xlDIiKsd3-Qn*Swq!Na_!)eY+fr&kMY@>im+E_Q36M z{;b<`KCpHFl&^luyDOd8|KAHhOuw98A2*enlvonnU0IsNkw9yR{lzB0zu2dVq`fgO zzaFc>lkB*cM$sCu)Gikq;%6*y*Zsv@EGZQvr?p}dn{lB#Ad0C!Q8-fNZGV)zzI^W{ zYxaTOoKN~Bs+SZ|?R8zAgqhlD&lqY(Hjoz+WEA<6-J-`IGf8*)$^fBgi=QpNiKEZ_ z;E%uzL*u!(Hyb6}Vym`kCWwl6m9xYmMw4xbv7sGhu029oWHy(}f@usomLw>^Wf0sz z`Azi^$4YV4a`g#(UFS>4gR`S4WA|WV{*jT)#z!6+fB+}3!2yWT0h^@ftqSMw?V|-@aswsk^wEeBIxr_C=K+%SA6iw} z58O~MN*^l)X^cyAyW&|XK86cGA`l_2R-~t7N3vu|8Hg>{>+nVjW2QF*@Di@FUmOXK zN*5KM=I*}XdTMgnR@2Gq@-%#J9q(_iJ2rjyRZl;5sm!(=2{j8WYAaCmTZG2qx!b#pAAZxL>KR1mG-GHp2SMTbeZGgdCX#;^8A z6y(Vy$t8(tlV#GrMcG&TbbQ`TQB!;>l~nScTJ<@->;r0erD+tOw>kp}Xw#sSd{AwT zcT-J|dO<58=xAnP`~WL(DJQa%dPh1)*6jOUXwz&z8GZT95471u1id4hk=%o>!xW_d-j@;W1!Z5G5 z<)-i{KX*#hA{vqVi3S7t0%#!w$@`w%7Jj>=aH+!s`=!ZA7+LN3=%49hXnouF>O2)n zHYL&u58C~MDMlF+n88;IrR4Na(0e+qF%d4%4@&c-ztZAxF)e39A|cpBH9B^VPk>X- zpNmiB4UPwRyPVKH-jY=9=c|tQL@w7a?m~$s2Ws#Q^t2%vjgq*MRE{Kv8yHDHMSOVb zu27tiW6j$!qm5~=E*FJ)g5ufWkvN# zN>C;QKxZcUa z#JVu9z48RcXvAN{@%pWtJmnyFL0SlsCcVIQbCF}?L@XVDMG#IA7I`+4$l5*D#hHMG z`=`Yk@TWpv-@X|tK}5;<~}b-Dp}Y0XwD0F@ZMy2*?OE!pSYU(%2dI#-Yk zkX6(!MLA`YvmxslzX4_d0_Z)=*7|Mv^Jm(5w9$UIS2Gbiv#qJAPOF8rfKn*loCsXz|R&R}q-T+rdD4 zYBiDx{8v=07Ujd3RL;P@rTCuIuBs3I7)zgg$6tERAjX8OW^W`%QNnH;ZGoXWh;r$f zoDYw@3w;NZUx!Ty3nUn;iHYaC;BU1V^~GA@Efh1JZ}zlO=$!A6NIy8vCjKnr$N1o( z2pwro!go+Iw{j^Hn485EsA%{G6P#P5ZyoCT3 zW%v-2x;xrreHYeR#h|Bbt$XXcz%Y9w0y%tIVqJeFlMgm^qDv+z*pHy(ERC*u4CMRZ z85}c>OtUpRnJxS?jd=SHpPI4#jAuTFF-jyHJ{Sh2gNEEb8vzN`Tc}sVJbp)G`a~!3 zrm)%>90iIZ4x+Y#a%tF++={dI8Kp+BCk+wZ($#hexf61$cQ--ffSK^Nvl>;(j)=B1 z0#?)k<}-0XPhuV)VQ<`rtC9eh!?*ZdI*}6@pZQ+Yx^Qk>E+f{Lo}_oLX8wRvA@#mB z<@6h!Osg)pf23n+0N6GDHoV!xks7_`sjsN5A!BtI>dB zd&aHXW^)`Ax+h6iFs6aOtKvuiCD2;>3fLqO0pvG_L&aUZ?EmVXcyp4=CvOqt4zv@D z-^)3=XN-$EK8l3~NKiK}aHC>r)f$MQKgg^SUHroOAH}OJA4*OUd#DBY zoG*os`|mBiuA=_o_WD|#C5(0zTDL#bL^7qpl(9)_exP%tFROg=RCV$;_Fx}K4Sh*E z?aGfn03K2s{sp?#Sofz-9&%p;+qUkqSS zd+1bMR$KdhCL{Oz@N??!$Nd%@Wd&pv4r#qj#8ZJqE#T1UGgr}sX&ZTq=L6> z_R`A1$tTeO(v;)V3WF%ONVQ*2Iic-D!B&}g=<4z^f)|`98h-~!A<^f$x3(J#16b+y zv|o(*2rRHHsIqGhn@Il#6-DUSOApIUT)4oem@}%AiU_^~`);m_+mGvr=4cb@x}`$b zjcwBI6Dz;o1}Y=L&qRc9@^7d1MqVjj6X?etI#g}IlQ2)oqjm6^2?^lCiU8N0YW!g< zKt!cdiPpOs$&{XZ5{bXA5`nmP(*;A=m=jAriUF(81#;1)%Rc$6twa~>hqA-ewl=** z_l9asH7_{4sb}g2w3v6)f*<%-2=*V`O-LU6`p{R&JrN$c7W9F;leO1-g^Mp{7y8I5 zs%o>XK65NJ045v+ZLbe&JIfuI`_A*(Aq)R{o zmn=d}p>gfAG)`*ft$S-&`X-Wik_!q-)nzf$bPW(|(BE!0%#erccv@HN4V*131PRDA zuX{{+-Rt-alVy)(pqd4*Y&~@6!t20A)W^Hic9+X4w?}WEl4?oMhS6#g*Zz1ZG6IjJ z`6&4*s*0XoVIpCRSCKEdPGwpNHo9pi?Cw2u01M(O7@i#_Y+PqD_=uAAg0YPL=;jvb+xI!whdYu^2!~HK z@6&pvoPq=sF)!aHVbV`}zldm3WD|EwrrU!v7k*t*|3Nb;QNGrhs!|N+6{5*~h}wVq z(=_pqtRy_uE?4A`t&YhnL8Je1Na~(Cj18r0`y*w(_WUyMBg>2N@6Lh*I|NOX(?rN| z2W~A40ERp14+{0yw@w^M=3bUZYhund5$7Vd6*KtJU+E-bw+M!9uZ@HI!K6s*7P@xs zUDsW~9ydEr=+C=qj9?H)`+D@Aom(i~F|O+I8B@+~ePKaT(?TA^>oMC~pJkzWA8h3d zFP8P>07ii{2&S~wIsGHnw@;NKDxd_178eSK`jU~Fl-w~t6m152Q~1lv(q}?8Lxpf9 zl~+7W^wsF@-rcm4PY0T0F(wHlpZ%c^c9HE@=5HC|2RUL9KVHY34xS+o=MD{^v2X)g z;a=5ldAR5&d}_pj;ddr(g(=M{y_J-ck$bzh9*~YSS0YJ9&>-pO9&RZs6>IpfFD1$Z zF3N7_eWuM5!B3m{$|WmpVUk8MO=3UU%7cMjlu`I`z576%@ZMZayPL0vK8^I&XZK~y zL?YU(@j;3k=8_g>_z2*N5&&9sXWg3}#VydkvJVf0l#WJq6B?W7Kp1w?PH#0yQudk* zd|o62;!7M8eKtSmyH{p04Jtfhc8t%B4`-WkWZh5AEabVt54L6%oOmP`s#nnC^SttF zzwLOC`WZS|Nj(y@Ta$BD9>R(3Ku5+2a84el*XH#^YpX4hKPyw-8Kr2z4>!k{q@dTZ z9xte$?owkGAZY)NyUQT*s_Lccq!9~EtjS5A?`MkD+iT;+>8p1)57lg6mnJJ&rz{;w z^MN)xgGPRS`*W>MngW)3;O@it)T_R5M*iVFhDbqz1!S2}F>(6+us<=7k1Cky5Z{dE zhxp<~UVkdxv#uW?Z4B0TUTfFV*}_ z*d*<_6H1-17SSBG-@e{Fq!%Lb6qaUogRY5e^$$?1-`_FWa&C=4Wx;iw!l8Q~Vmd>? zji2Vtuf{SSgW4gUq^mtj)JsCH3#n{fnj!>gSc(-~6mSym0Pyankx**jxN z{;P@a7Zz_{Wt^4OnwkUoLOqThJmJ<-`@^a+NcSt#W>B(>bO%oLdMd$2%h*bbaO6uP z>ZeL3%HQsAYZcv1bEBx5IHR^(zU9H+zKPYyhwoL1J1h=;u|LkbaDSp8gr#5!k)}7$=j&#LEG@w#cTzJ|Iqsmxi;Lc zrk6KMe?G&BZ$x2 zD`^XBhAUNn#8BijO5%RPVdK6P%&5jc#+}RVnnB_=e zAT}v$@2qWdw_-~oU-e9ZnoBz@zGTEDh%)Z~I5;tAx9z8|OeVUQ^_~jNg-8Tx$eIMZ zfKk`&y8($px|PliuHXeHYA5j$W5cXPw3+G*J_Ar1DlHRdYmO~vRHl2fISe*=Zt%Gj zT?g$NfvQn^&wE(2t*H2hE$7TOuPeV}N13~I z)HHNPHSP{(`ySoMvWEJOipY?B5CCVvpC&BYsN(RpalENha={X>`s0*dI2q*n+>s>~ zZ}A&gm(T})!(~^Ga_f5)v975#>l^-LFzc2ec~R}wJ#~{o!O44?IefmfZjrtJ!loAo zwQul}(Sh90%)rS;ae$UdyN&W>UB@bhcTNd)kwW(?UdZjMg&m5FB;U2q^eQZ2RYxT$ z8HfPM>wLbKhZ?(|FBa+X3(AKBJ$@^d5`M2Dup)DJnZOrn5^8!dNA7~6diJn)a7(@x zwKZX=OAE;StU6t!dFZcBoSFj4r&_Eh7YBP{gx>M`3fYqtDT#(Uy;k&_lc;HRCTRgb z$LlQTNmd~ee}!DFmD|NT*Hx5MUsbIWjvX)2k=Q{zK}^p&H#|RD_g4DefxQt!-$zI9 zv`axG4sJjYClKmlxIo0da@bk_FwLzDDF2c5O9Q{Oo!?-!W}$gNcRqYcKF+1~&pEmvXl%S27B(a2B)4csQdg{fli zZM!>pYkiWw(xsnjDkN^L`o^_VX+;5r+q@Q4WuTfN4-5VXfnmKQm1Js`=E*)KF_d1; zSw%YM511`53CLPvE!2-%=O>(G?)c7{mvh}4f(`BZV(BOoLyD_00EbO*nQ4Ym5EgU* zW8qb}9&G}lR=MA0l1kO(?B9+AiD0>4(|>*ucp~>_G{lvaI@}WLs|J_i-_H{&DI`Q- zVinOpJe3YgVf&UZdQv(N{467l^SMlnzDnPNEQ`AW1yLufH_?5K`T~7Q*N@HCl!udm zlL#xKx|h;q0UV=MZS`mEy?wDbL7=tCR(BfgkLi)KJ{0asCgS~*Z#3(enJNG+_GAka zK`zq49}kg8i&(M8lJxW;6Zs7x5-6-ySKG;!`5lVcik;OKlH_cEHX&2K(ihq{J@#YQ zj+`|F5G#59pgwh*)bsdIVq&IzgbnCe(>hdtvumzoLz9-|il!<;Q(Jm>vLcORvTY)f zi2jD#tgf5r+)U=^S!Pv{;PBBKmZ}hsZw~wZ+9VXDW9UCt>h{EyOZL3tgMR~T1!g)Q zy4qLa(?Ux*leRdacH8ASMfI|M|X@`jd+&GU#U|2!9<^kmLD*;_c<3l?3uTUls@^g}>c^w=8OUK5mx`g!gzcp=wU zZ@!A5btW}j?N97{`yLhIghV!u`O#qLZQFlMexcKw{q3cjIcuS^0B3(SsXgK0|2zQJ zT=msG=~wXeD)6b{$X?+HuCDSW3+g)K2F#0?YF^0KkxVQzrXzd_d`l|EKD88r(1zt* zldlBuKihbv=xpYrsUbEqu??FbfIpmm^th8+wD9D6hbK7P$_~$Ehp0v3#hW;S(hIVx zdYmFPM_F&_4cCUVEG_=%hezH#;$NT3&!oy|#VE$(x?^1mYtwIW)iphtk9hc1=-V7m z>icApJ!jc$@@DPTXMCPs#gR#`w!9|r(3dP44k=bq)^p#~Fik|zSmr9CCO-D54$>{} z6-zQX8b35K8I6kT+k}eYcc#CIT3(iW*~?oJY$_FxI(C>AAbj{btA;IuvyHGT%Qp|)k;38v!*hS= zXm1$=u{NXlLaJ6vWRa8Bf%apq^v-7B=4t|C zS#2oY0>S-Td!{q>7-pa!#8a6)kqJY^@on3O#o4}hO2lZ&fOoK#OK?pDQ%>$L?2)-T zpqkLY7ZHbd6Tif+M!P3YrS40V2FQvd8HsraeJY^OLbEh9vHew`UKvdYj}$0AcmBhAc-!BQxoS2?aQTvVRy#7 z*941WPlS7(#j%Yw4cl^$g3II%JafK9Vvz0hhJ}?_DX`{2%+x{L4@pyeTec=oDQh0u z{Vt!^q_9x)C!EM#`QZXQOBh|RB0DL2#+P7E{keN_uw&RIyU-Z`xi`&ks53{Fy zZ47dr@6bnS=fxzkEBU&4-9s0pj2U+hJ%c|4nX7wezuN(OR7%???^qU+#X#l>)4ZXg zm}~t}Zg!XOP2ieBAgC5jjlfsK42FqF%H4EwHh#XcuuFuW$uv4{$$JPDf9#GcByiP4 zfpfISS*nU1_%10Bx9(bhm01R!^2GVM+c6_KGn4yGJAjH^+d)YHARi-T?k0I+H&*0# zp%)thv;ZtLyzzHNu0UB07B3uW9@w+9ydVl!-uO*tVk< zm>~;9DO(Wwa_8WKFw-J1wM|xstKYAl(Rq3ql*ROPcLxK8X=qI{o|eqWR#+Q1FOhJ( zPiWk$X3_;>e;XE-d?rLHNkC;J0$=};BJv?pIH;_(e9z&JO;wIDEg>;a6angur-s8` zNvK2c)(hL%-db2q22H6<>VN#q1?OL;U%%b)DC~M0(wDt~f=L(LS}$sUMQXj%6KI@e zTwgRwwQY&`~E5d7>5O<=wEQRi3zY`^iH_nhR%rj zwcs}3e(k9_`+^+_O)mkJGT_7WR0~)+Dwk&**kl#X+t31P#eDaYKxZY)`m+g zsu^AvTIZvFoYh7jUUCK3jm4Uq_(OufTFv56_I#k^E#2J9LwdFgDYKY;$<$++BW2kE zp9sO6LH31t_QJ)AuRIg8a0$#vhkXdqD3`&hfo_WHX>rgUZg!HGX-pHD+*9^~x;NhF zpjo*UtB)_<9BeSta%dK^IOAL5en$`k-$}-VB5^VO8eFAdGt*gPwj@E4=TUk+LjGsJEY@Nb0>_K#}Hi>GeE)! zB}sCX4+w1*aXf(5WOmtDoscbd-^8AQ)U_LH*~NaJ0tGY5*kx-82f;xeya3W+)jBf= zZO53mD5P4KCTB>LCVUkshW5&oBY(egBu2sqIScRJ-w?2QtD@31GlCg^o>9s`hF3x` z9Wz-%t-|i%{S262d}h%T(azAkWk2ZiALI8LgGUmEo_mBef@=cti2EwLTwiu8;-O4j zcF&KH$Q2KI+=94QkO;so=!3nH-X>{6$yQnbx*zEb;?z0#PDq6?v-RPUttd@lxhr5C z@KO3LIreEYnc}$#@?^1P`6p2w^ml-V?T(49@526*rIO@=7&+-r8&0P!dxJliD`A z{B*zvGcYmLZ|kGmRL)s=(4NE(wPylI9_dLA~LGO3&2 zb=#gh!YDBkPRAF%!%#PP?`5+Y=RJg4`t%!NY>{Qg^7UpU<DO9OPrpd9(_@rqtT$MtKRt#4-+qLh!t47yy;G)YlpdGD<6iNJ zqYT;_4kM__CpDva*B5ozUWDF7itoN8Me-VoHuT zPk_^0rcs1gUvPcNwO13rG(0!5t7ZAY(`QRF5#YL*qpj6G6geCj4iEx8%j7ECp25SV zF!Y5wA`;y|)um|#puN&vL%Vvk2tEPjnWa%^@_5q!tv|H#e)oiQE3EElrxxx>M?pQH zq4J0Vn(*sM`L~A&%7V;)h-w<8^L${n+ly#%TOg*=AFsxz%qJ$QMfjz?zYwc{umJA+ z717b1rcxG)z&5gmMEI)hXBT!e{-2(Vw?P(=LL6CyTGAMZ=QEfo^3jrEi9wYTEuT>8ygQt-r0m_tZjtAwmGhJ3n~nX-IZJt|Hs&yXQ>5Msn^$aqUgAt`-zFAbNSU_pUk+*{hBKc#Aq+}|l0rI#kfDJCS{Qd6>a@`dgc zXM)ZQ=>MoGlX073my%aOkqBJihRYzSn^<&CB z%L!+}hK_fiS_}UjJ1v516!n*J4fWsgh{vC&Hf4=7c^b{kOzbnVfymeJCc{M{(UNw8 z#ws##jY=vVNa(e**=qL(1tUsR^(dzmpaSOY*+aMy%No29H@dWko=-^h>bfS^vrNdM ztdmCpCjz{CxVQe#PL2DPXO@=m{N?Ap51=s|WOOg-oY&y289p0<-LFL-!J7SO#ecWN zo2ll(1CTq0d8BztLD9{~X7~qW^O)O>g)li5D-yqC6g@?%I;X%}&3Q#J@$Q!LD)|wX ze-)ZEhILZrnXAur{MeU5=mef3(;S6X7xtm_b;_9LM(I&q( z8v_f@RqnT5GFHuWw-ZzlY+>(Vw;Q#Skb(;{09%)fRJVnwo@e0(_?D3-pvLZI!HB;<^ei6-||J&l=`s?QhVeeO$ye2B}t)P#fkFI=So4f|a zep9~PW;d9Auxmvnwu#dZF3R9^O+r^OO+B{2DMjJ-b8HOVRYPD74>geS2~)V=P;2`C zX-EWL6wGUS$_d>C$pgRJEqSI<-Wus_m2dG8mv%9$leBKO!q3V_AROt&DxB295$389 zT&46}U5j6S`usb{+v|UaT6rgK9s9cY(L8+X&M-#?JqY$n2DCCP{n3vD_A`yR4Pb*4 z$O_VI6OySB_kTBIh|y=KR6ccADiOMb z_WSpA&-h-(x^kDaqgA!^Wq5u6)Q08!zu1|f zGJb?}c?sw*+pRO;=d)* zT$@xhX+RpbtYI{&>pIx9scMAriR*g@m@0Nze@X-QmoMIsOevs_4_X9bfF*_d!d%G_H(O!ODXM=<3p=Qp-BK&fA z0PwxUvTm4kWp>%-anEg2z-i)4YdC!^h~=eyNn zr&Jta+K&+g{ZN&@MiZ$@S#EpcFQzrJ@mnCZ1;Nops;eoC+p+I;_B+jo>nRK_ivfR& zWy$jG0QiSTj#@Dmzw40E9oCcV7T4b;`rL))K`;~WVTp(HJh9RJ zBx4pUq`OLq7{`6tTdJmiIR){cfMLttOSA-ShHFhBHoM=Fnl2fycAeR521gjtC-T$iQ72dx1a!*T2X z<6}jbB~ggB%%o9#VB(Uf`U;anC-N4*t39}D{c=TqNbM5aE6H~r!eUKmQSXTIPm{L& zh}6p}@xZa78PGH$jdMCaKZ+rtVN5+Hei2vi1u(;Q`l^{boD<51WW?{Pyi{ZCAuL+5W3ys@&_3+pb9I2ir(tfI4)1oYah? zgQzzGy^Qbc&z5b!eoLuLrkvPcA({G31ZM67s*9lM&HjGE*m_sm$2v(TCD3oby^9;jhq)Y0DPm&fcdp5 z3kYl^w|EqnA$y+9FX0CR+kP*gD(;9Z7Qy7d9NOPFIhVf`o#bD)-aLsiMm$uNB9_ES zCQQM;x-1iPZ*Medt4NS1sk_SmsUUj&9%Ihr2~OI3XnNz}OsqFAWAEeJSa?F?)O#-; z!unDoQ(m*+^O@@Fur3U+=FR;PCb5$0;=?p}UgFxCk<#ZbZ%>MYpGaX0z?a)JC>x$Ve0G-t5-fG3l%vUS-pdrkWMKk0{sirN@$UOu z@q@z#8~fYWV^UMcI@h`xn!C^92gVAl$&}eKZlCmb2%;6fSX^MaTo^}x)A~h*Q#qJz zFa+(2hSlMvtcl|P6X4WC&T(1 zo_<>V;8-yS^R^MnNrgeASWULVorMhM8Z(S`GmpNYp=tqWYt_Je@6p2NARPtsAcNvj z3hpeB#1&)Zf#FyBZeTFc3HyYp;gOH5Z)B-~@L0~2u}KZPigKp&?#gpBvXWME_)9 zAElt?&)D09{%P3fSzOmOpwN!FcPOW@zS7V_EN~o!$8*;Rfp0;cNf^6VU;dL!Fk}*g z0eXiAlWOtxYp9tF>~l8zC44sIM44vTfCcgROl2gd9>w^wc{7NkZo-6})7NaBndx_T zU(dp$l36iEpnd7MCl?BrYob4ZVd)w-U8&m}K@DiQo?n3}5CRikh^gH#GUC8%fuZo0 zCz~&^?48rkwv8yq{e%*Br_x_0LpN>7?K3ce;wwNnwj=Ris*bPCp6=D?EmveHWP-VZ z`T{UxeJ$CEh;m@QCP(Sm3JcLpKPw&#Z|TqZf)S~&Y5>up167TpFPeofe9Y$yZb3ZJ zQx8ZsFr~}w&6`m{Xt>qNE_bN@{6wr;R1sM)aWb)l8kC!e5G!?{+mpsF;PsNlk8L09 zUC0BYJNk7Zek2M&gSTV#d(BWmw{Lm#e#%%rh$4?HaQH>IJt3{vcV!{ilI2y;a z{XT6lU`c}wX6oEs!HKpB*5~1Dn{;(0e8(VsCq@vW|{jsskP@X z9WnZm@;;h8=S4OVw0dIW8Kr{1MCqgDoKuCl9x>?CaB=e}3@@8u1xA*hxyR4=-F&E6 zZgn>9gv1xmj$N1H`bX7~!>SHnX*)HRdKOo8$xw+rx$8QbA*)$kWx>z}f;E5-Zzg5P z*watZP+R#yH>$IU-u`q=kwyl0*ie#?2Pa}YCTIH=^WllnyYuC*M`;51LZUrg* zX3Np9Q+FX|ZNi#YMSIm1L5b`&;SaIotlo8~$4aZt zmdGb0F<%a}eH55Z=&kgdK{2vU<{ND$N8R;L>%-p116oK7<&`wax>hEr)H8=6#3oNU zwG93mt^k(*llJqH--FDb^>Bl|t%3jVx;Ms8;k?HQo-YLueztgZHn2${bxoHzcu(*M z_o87wrF9eWR>$|8>ANVHTm8OGUf@@vA5n&ciTBb&H9j>jvBOSGnTdBIWazhlLJ70P zk~|?T_yz0XCcehCL(q~M&c@eJii~1lhz2*SQk)7Qx_wE(m+ng;$XM3^Oxrj${cy}yAGW@(hPhdJSI|XVKs=2bwK!rxp zg)syrPr*&j{)FC-4wY6gtP(yE1n-k$K#8kqeO!W@I9PM<~#qUcoUHJ`Na0Bjky+R!$j$2W~KJ<(Y# z_pB(zbg$3(T$mbDK@eF8zRrE?>IX(NgDQ@L2)!HTHQv6r-wRs20(KXPVPe}=gPEUG z#Qu?W`#U%TYa3_XYn?U=Asr&+-Pku*4Zi36S|g*kACIyDRn)XN1vO@y!Avu>gFeKL z%oBus_?eq<{z&2arGKj}>tKAp?a}@CQh3~afN99xeZ608rXTSKW7DDeqz})`C$ssU zjwzi@!1E_mz(gYc5`^QOZX2V;c5o+b5yem^v~4?ZL=s2KEVY864yN=;+e{!!yT<>( z{GR4|@NJ4CugS-No%4{Q_oN$S?bk)9S!?$OqE79tDG@bb#?70Abg53r`53kKHV=Gl zsNuu=x^AqAPjzY1hR`m4bl--i1{H! zl*q;M%HTwG@;(PR)@6BTa}Lmv6@}4)mMFGr$X+?hdnq!bm{OVhBq1KbA?HCsK(REE z>rYwENxIu5+05^?M5Mui71xOeKXU-|#auTL`dLF5;VkM)${{*%uVcL+SL_Fz z8OM*bgiMILzb~4BHJAi%4yGSGFj8cD;wFJwMsf;$wXMSJ5#3ZSA_Q?}v14AqQ+~@8 z&K^mNJX6RaO-#CZ^Y9}-$8HvE_hO#m=H(({HRi*@ImbBT=(FEzQ)na9JK|$p^HOP| zWQ>Y<&pxA=zk^Q&5AOC~Ai-m|G2v>S0YpOs8=F?R*P~9szxNRAf?1Kyg5LW>QOwr9 zVQX*d-W)#_C;5n5a#F6@@wln?yAQ03pt;->L*_LJ4`|fLc zm?ghA77WylUO}(LDpXCQ5 zx_a%A*{19VQbILzvOuo0bPwXVM`)v;G%p4T-$iyF;$*d*u-XXR*RT3NG~v_*7h(UU zA{0I2tOsc&*(acaP1!h))JXX^Fg!`c?<+`(m=VNVNfA3EnYSb z)Amjdfo3#ShcNS8te=3nC@DrkL~GUVk*^|JPMCRFAMa8Zf;*_oI7{Akq^N6-4Tub# z3ITGxCa8BwH}=Qwo@n>Hj;PyuJ+fIUG<~G|HpKZRE>xVjzS(W_2SE{p_(3-o#@Ykr z%r44axBX?c;k_0lOQ(tV@|6I*h7Z64SMoXrV@<$RE476##NJzpz0B1n`jn(vWeEsv zTZu0W$gveBFoaXtbukQ&+YMQT{z2#7ZFv2?QVS&>k zH>CyO?bloVm+|nYxYuS`bgz={A`(LV z`UiRsdc)gd1?i;PS)xO5b&rZsV&xT$jxYfGy=0Hq?-!;Hdd;s2lEejClT~rR^p~ z-`%zA|BUsmA;B*AKsDH>0`bF8#_Lk&GG^vutHa5o3kpM}t(O6xO!r7SzP@>S4B?nx zFl2rA)qE#YizA|6vH|?`(^*Dn?aHO1!r>&X0k90+QS!UW^2R)za1O7I)iHj|MOPJ= zA)2TWf6D?c2x+-tJ_n3^T8Pb|y~TZ(qc$c}%>6)9QtvKz&6)AX-{GQzOpL=Kx?Sy& zsolECD4VG>Pxp|!`2M={4Y$Vk7od_CD*zNhSYw+YL|@+cWL)Z--hRs8NFk)d%kzLu z;;$S)2e|ud=Y$#H@3lXDQSbxM5=2~1dRIe3ln*29ygn_Yq(^}>sgN?p<$S&rZ+i{@ zw9*5XQIQn!}~OU;_!jEJirQ&VWaHn`G{ZV0;Q>eDBPJ9LD7~`B4}X2vyY=Vq4%Hc?ky|+x6~dF z!!VvR*bzPybIhhHKO_`CZd)hjp+?R&Gyv5ck~#qA_5!ejrR3LoLJX~Pf3h)XW{q<{Q{xz(5kkCuqReHf4O-O zk5}9m%>kLRmM3fY|8qsz}n1FU@x$2jRfS6Mo!@xm4~K58^3TosC+P`)0FI@Az0 zJaw91KEN@vZ)UB#BVokQLczvs!OtcJ%SShi)FL-S8 zCx1QiIa(2!ZYUm3<1IJwI43GB$!`es$*FG>_=Ab(W=QMbGw+I`INp#Dg51IW#)@q7 z3ZbLj`_|IoRsA@s0ca-F{C-{UoU7rfZ7M`15tkOIi^IY8DSeFYm5vYo9Iy_sQ7Wf` zaUK@!I0TWefHg~e_hun~ZAVD8OWG;Us1hC7`RVW{m=G}Fhy(i3JOjhtJj^^7 zKGHezy9$>I^PU|BB#@p|L#PCkhtR5!Q-*;tjy2vH(-?zoUv%vKbEM}_Mlr|s!7(1Yinh+TCm9z}O9b;Q1$di_>lM5w1BiaK+;yBRh zKa*ZG!)ZtYL5KJatgb0=rk>|SG+|w!`KN(v*hqE)z*C366GzbDSG)RNAw1k96w*x*B(kNYnv?3x%hyTNGt@rCYi%-m%v-i38 zbzgU$y|d9)rFok+xf(7_)&xBC0L@JYFDvec&y20y6n&-t-I3wl&9?rsw72T2z#+Dl zNE)6Zs^qahWlrS$(jRB>M~z#+42A+J+Av>2@BDSNzi4}T^We4oTEY*}lV6X8BZb+t zT#`j;cb~W4Vcb7+@`d+n=^9j|C{egYnO&OGi#9j>a_KSp(~nQFRU4KWG^No|iy;&p zs3$#hl|Oo>74mcoW~&^cH!zUHY;+p|r&7lvJ1<+AY}(qZKjv78V#P^y;2C20J-ZV> zFa{M(I_j63^Qa&e$f;+#t#8LRFkGUG*jd>N)6kQM*G^gfYQELM6Cm-uI2NbVybXJl zCA!ds%*N}j7s2&SZuG?Vvi6x}NN*wDrbh0lUQ~~A21Xq*S16+5Q>{-) z>o*%A=sO=0zTQN5r%m{F96r?#VaKde_mz1)0TCunr8-(0ik)m1In#RF1iSBjgB3@0 zkA9+OIDAAHmuJN&1@4AQu(`)>45BZYZ@N8D`Y{H$`G7%LCHlpXKH@t$mVh?4V}Ho9 zb$5G^C{dw*v8U&SWHN}CWkd&33Q?}m9DJ`SdI-4Djt|oWE&dwJAjMne3as*VF^V8{ zuv!#Nh^t&n)aayotUpW#ZH*beA}Si|7+&e(TyrDx8*&h7LoSo*!eS^+-@CH1XTN)3 zu4Jac!@DBfgk5mE<1)&N90puPS=`z@qsyXcCB@MtN>a}m!g4VUsmzwpd|BLZSYP`8%Z#X%O1nzgvd^k(+c5ks;}bNsb&a2u6G=NaVaQA|q- z@ZLmC52N$jSf8SesM$VgXPXPjMaat2i9|>j({%vRgq^>5=18!@3n?diqQeL5D%8)+ z0O1W)?!M?eg<|K2Jw0TDdBB}%hJ|U01}>O*jtO#6wn|p z5T7S=zt<}LZIi7~_`8OTnjSTIyw#7$Z+1)r$L)#`Kdmqs7ngE^mU6m47O(lFr-#0F z@Dcf8RTG9;-az7cNNZjLMK>Qos*nHcE`A}<%cxI182aL_ZDJqXK11;mqK#)5kwc?h ztT8~bKCT1Fq2u6i-?h0@sK)WnG8>E%Qp$_u3$@l)Rb_rRn&Z_w0{Sc)(rW?i(*L=- zNs0xXk5cZpA+I~My>zJ0nuG^2&BG60V}4xuG$RWE@OxiBc^NPeSM<&b2!P_PD*TR+*1#sbg>mXW>P4^$-PWu!4_K1yZt^hbb=Pg0^p8y*Tj1YqHC{5d z+pz)jW`%xda+Uq=*)CX_uV2x}?PP_9vKitAcr;d@1uM7>*3q?yePQZ(Yh!jscH>C= zOb*uk%hHXdM4 zf@=u8%SqjvcW9Vv2vv$+2X3*uDfmWs9<&6Si9E-oEg!BYXhx6FfUEreSA>VUv$yk_7BoslV^dKEp|@`r0D(lw+~q_w!y*bVfs z(sQ4##PLr%TjUL3GnFCYt-lD*@zwXLN?o0aBqGl6k`DuQ!)JBQ6;{=sq7o;S8%~CQ zt64D1nA7lH6ocy4`=5Sxy% zrpNV$uqyU~i4&Ra5w!SM!dtbK&2qKJF`7PocE}IWmuF#7k+^tnW}6RA0^Q3yo`X-x zPxA^!`X+K=&?^zR_2vJ!00G)|U%WK=T0x7>srl;~c0q%w%2 z38D@PRtWIw0jO&uYd$^hpYZ&q^w2`c5%8n<_^uX%uwi8RQG?_VL|xdI*Mzw^JN}0k zNXr!|{DORw^N|8e+)(eOT72#wQ}u(?pDL(C@Fgj}>{whnUAZa9xz7M^Lk)cJz|q%d zyFD)OsFwe@|9lC|f{EddJyLimWnTrgAb-u9adBwlvrUo5Q`=p+n_Vd`Hl4nQ<^i&j z>!8nmBJoVBQr*Uz+MCc7VJ8#`Y!zezag4fo*75m|Lt_(zl=3d4KXp45{bIl3%A;bO zpg}v_@vvfXX4-`e!`t(FLgFvD0+e#uJAC|=?l%zHvyPi!Yh%3(i@8GA-rUTqX+ zI}Odi@hp%N(N~3I3t1Q~WpAY-esp>G>t@NJs zLk9Tp=bclT#4^CUsBkF;@{-!t1n7t1{j0CuM!7$#ccLF}o0329`i2D^q=0anYg?DE zh_j^mAeLG@C)FHh2CTo>AnXUY73jbUnnGbt5>|2+oLQ(Z#)R`M>HMVdE8pCtz*N+L4UY(`Uu@_soFmWV!3IeW936( z&t+F3I6<;%y*j5?zg={`AS6Ja_dMH(@h-8D{<(rQRH3PSbHo`#+o7hx{4-`MvO)PB zO0!OlJ|VVL>d9Ina|i^RIW0dFs!%dL06CpAAeRai3#;hz7^ zED@2Nx)Bmh%YRu&Ard$TA$zK;na9&S$InZGm1_7jx>n~=6qdn!@P(%?dwM55BkT8d zI=I>|b8c|#0A66^7bs%4o1@FBTL0}nmi*jJ(l%yEy=Hig)S+Va`nZ57IcxtqU#>W` zK%2zhKC$l?b^`^DYI4uBjG5H(RBT|Zo&WHfmDE=Lg~3qJR)OPHuai<3*PFda(M3CE zFS?TE4<8GCeO`|rPTdX%vPdusO0|e)H?H4Bs>V4VH-0}>ihW{p^Cst?hO+FzaY%yS z&B%<5l2rIcTb6!L%!Rqm%#5zUwZFbT{i?u?6V7H!rBlLsO4ouJ)=9bLp|7LugmZLq z6f(|skk!I%&FHVyxKj-6uZsjVv%-fvQm2+);R7l{V)QPRmPYjv+=^FdmV?{Djh4!P zBpf&2^qTxN44r@70n-r?~`FQ(78&_0nc;O&5xsYKvC7Eg3ON7|7UumU}3)1 z`A@5YMA?#SckV+CWul`c)D-QhsrcYcDE0hC13i!aDd`*bGqU*o&4ZieP?3^E-^A!h zzZ0A68e|SH}sNScqj8%&HfH#CU;pjFed+qe^Ign+Z zJ=7HVs-50U%YbD*cRI9fLi<}Jbb3BSPGe=mgktOA1`%&84Z_v&ug`p zLza0R;BifMU$r3u3$1}za17JW^L>l-*Z#d!R#~j{>n~d4UlY=sCH$4%cGW@j^DdlG zHc_L|dV)z>b$T++AU?w!BPn&Ta_ros%vD%SuViYx{pw3>9j4 z@vzn2H^ceKuWuz2yrPJ@1YopxK)+u8IQ@;V6UYelVR)0@;4D@wH8Ls&$}5}&<@C-B zV~g{BG5w)@eqzb-Q#8Fs`Uo*vn-d|?>c1; zC}rokC(5;=_yWKsy84@LGnCqfrjQYD+W)+pajWu!S9}3GQkM*jzi8ZXVG}D!oXjvw zwfm6gjS)~#u>(z}G)ybzc!f={_ZQ|^6$UZmCU-PV*u7yWY7&BFFH+Po&PV(aI20J~ zwIYLOAcxX-4A}1ZrAOwcdmEivFls0D5hO;Jm#%F*(Pg=`Y5@!-uikn2jOCNlE&N>v zp?T#jm(pmewH8-%#%Tg96v-L%Vf`6=dP`}=I$Ch^phNm?_*a5mO0`7TK+Y8lCMk*w z%%X6rI6;0&>;YTC8tO_>`%G*`{IkscNjLPxdZO9)RcA2u%KE$%S#HbvaFeE80Aru)C37oOGb=bWz+xM?`Li0*F?Y2z3O5#J0q|;iXSH&E4R6)G-b_Gq(*N|<#>eYzg;}Ety{YxUT+p`S+ElUHV~?M0^a`<)H;oaqUkg+>sa$6) zH|?{2-9F|nmJ~jN7U9N_pQ3UO7+mi$U=#cF2W|BrXvzk{VyCC;?|p)cMyDGEPeGoN z?oS(cCxMNYf`~R8vGf1geUy3qlddn}NU#;WxFIpR9vrKI-Wv{Tp7DT_Ab|YSDbwiZ z4LahraMP*h55&aaXc1L-cy-KVLI|h6_#vwA2J7KBp$U!0e`}})D*`7lZ$o~A-);sp z;o|QQdcYnKpGHN)6yuwg#z?7TkS#EI)OxZ3*vU+)sk*FCbh@E0bq3PqZ6j<(5I}xi z8>7C-Vet#t&(yK&<2T%0*AI#iIT$ggAMw{hxT_0i)O5$w260bjX}SH;;Y#-aedh#| z%&=;zNjkYm#|M2izaPA0uavd!*=?#_D@^{y-?|EuWL#b^sXL{XH!WX}WPgY9L3VWX z(7$MgR<-+{|1*B(k)~K?%#-#?7Vq1OoT@@lp~&v=+oCeKPjx*z^Y>tWA#$Lg7d+*h zw(;vJgbbwDL`!`qXbuxq_Vd%4ftg^l_CV0s+;y?P81h7 zIyxWcNp|fARA^6Smo+7z(@2Kc7*3xCv?g!hf{)K=?g)TZ&nH zpFtU~s#VJnF>QEB)tK7jT`#($rtIA6>tfu-iKhZ<7T%3q(mkw>YTb}GWui z;O~$$JXU@kS;!8jE1B^~(`l&Pe^0VYC^4i=SEU8BNB7ptt4$y3gEfdvP;?uutj=VH z{&R;r{y|TP8XK>PSWuqHDL728MA4~^2U|Z7+$29=F6=oW`RCg9D9Y7~+Z56$TjWYyL)+*|geJxjKv^gV3eWhzBkb}so%u^Kug_}KMVv(Tv z6}Ed0(K0BLN9B(or54E7T|J=Q=id)^Qe4ecfs}+;vzQmNGtr?&f6QSQeyqoju=E%Q zr4S_fKp7T_-s08yXb53uwEg?CCx$1ajwiH&dva}M5V}EtHyNPD=`$^bHk5A|Mpl3F z=?_zFnWgPWq^pm!s&M2i`i(=JSn48kh^wq~;JJHf;u=(_8xW9t%-FCzDw+G@b9)4x zo4DM<+xEZjk5K`_3e5EDPGrzC@P*4niP-pY389qh;XAck-bj^=n48mf0MFB|YL=T{ zzCqZqy^Ev7?Mukc4G(`?Ee`n_yu3dkAX%MOufGSmz5PZh2oj`ehQPvXfQ7S^pX`~bc`-vmoBll;w%yKq;LxN zs%4f^=vA5kr;WUQ?VeWSODYxBL|oM$lsXx$za>0vc1d|!cY>3E&--bFz+6Y%$|YFc zrB;MG2fV!Q<$EN5pBIrtLq0=Jt8t6dnodq^{D7Xa;|SRG+3Kw^AW_o4T#XvQaU*sw z{Vux?L|usoQJ*kYgLI&-u^S;nU+1ac)b!$w-=`-SCrN8-ET7;f3bzXq#9S6{6HH5u z7YPGAhX&YI=m-F5zH z3;+@~@QOEEf+&kUykzN#U~@2E5;yDtstyAy5U0I8u9r;+tHkU+;9I+Ri?6x$_6N*9 zjAPymE1_)SBDBcMlT?|Nifgmc(2sO2T!0ljx%UwPNhBckJM8&P`}Q4FNK7I>Vj&y< zN^Y@a+-Ulo6!dw!8`}Nd%#qnr?zVHyP5k2Mx4lkCn1Wd>kG8?U_5FrNQSJqr_CEda zL5ha80frFPD(3K&=lak*?};w`AP(IY3Rfgq&Vyk>u|Qrf^19hcdr*$;sP&MC&FB4%moCB$i( z9G2FXy3SZezFxYZ7{jMuSza$_Zpaca`|Rjp4cL`ZQlKY+)HnGSe{J>)`Tw~~Sq}9u zjSG!(q2$5TTzwUd-P2~wL!d!)5B>8zH9_Q5{8FsK`_WWQjz=+?<$q>Cv8dNMa~ryN zMc}OWA%=|R8dyfr16;OJn^>!i?>n?KDG^C4azB|*M!ppr znCAkvY#SFztddduSjhwx@;n2=$p=E39EhY*f-Ns@ln3%v+%Ha%DRA+2GE?(EgK}Y4 ze+wXUg-g2LI^VDJTNueWNz1aylk~6lH%Pa^u(5;K3|#B~Z`H2pw`(KK=}8NC0Bq!? zZZ<@DGCiqDHALRnx+EMz!834KH=?xGKTqCWk;3(*7CVGURVyCApc~ zAz?$f%3kd#aQiwB@lNREM3SpiN+cN~v$1vREnE-#^4YJ)SmQRAl4z(I4RO2}yJMVc z-f-UZgr63d%^5g@pLtaVWvEaYV#H`kQj#$v5xIqBTAu%I=pC}o_Ri<#(|g_rfwDj%~QVM=B4uEwHo=QnAha1N4cpo z@?YMpTV15`wvCAtTwh;52^8(ZwMPhX;Y3=+YH!{pD+?%EA;-~DKaVE1p5uvdsCO3w z2b}|19TP_S*P-?Nlb_TvR;L&oO z4z*ge(<$|U15#?z+_poE0`Do%Uh{R-IVAR7IP}LLX^?2$I)$skgIua%QrBY2mqh2! zflh+Qg~wyS34q!ZK}^chD<>F6V*X!{@5ej$t(6Rneb<&fsT)wBq)K6L4nE;??A2<2ZiMdCZA822 zr66Ijs^|9?N=Y0I+He;?f1ra%K0TEZqS#gC(V}rB+!=XH2FgcuI2_qjytCh$|1fc% zo^luhu&qP3nAbpqKfUqxsNXf1h^bfBHK;tE-i~cav!Au?Cy6b{oeWLk&%fzQ4Du9e zipK;YHGSBsUqpz#b?ayCnaLSr=MyV9HdN+@n;%V6rSUa&>>qoeNL}B5B)fiuRY%g> z8Cw!DOh0+r|FGT>dyJU_EiorUDhHg*D_kzdV@VoXt6Qz%wUR=F_RO9e1SHgOzu9cD zUpKyt^JKL`?ye3~{S>%rgQK_k0L=JG<6mnAXhV&i{%FUlNHyVKv0Or|#pI?{iCxI3 zK~0!?JX=UDe4qb|!}?kqiJ|6vWFXVHrk6NR+O{FyJ|v-U6}$?4KusL)urs2s+W2ii zK4p7jc2)G^E4qut(|{|4<d77%SNxY`d2G&qxQ2R*j-6Ev9Hh<$sTUoS1PIs z(Kgg@ehko1JMn61)}NDRZA%F34k<~j#6~ z|JmvI%Z;?aJ}tM?I8(E~k`XeOnhaxib^A@l$ioM=CEaJX7PHI+q*)oCsYxXC^gp6K z56+ZAk?$QX%?rO%$!3!$g>}w8h_#F>IVY|nH@yA2FOR#SA^p z1NvkBkYJpUOI4-W`jP|xc4Agi0Ki%@uRtUo3=^*Cx>T^Ik~+8g6a-@O&{BQ)go6VpL#Q%N4NP-uKny^EV0!}V-RAe2c{;cy$IEam2~yDe zi4L=)`pRK!jSc6T*{Lc{`SLF5-Gfw&D>^+w$AyD z=cZ26^CYk%e7+)``xq_YserR#vU~t`qCB0r&+%Z4oohc^R*i@1rl-#W`Fn`BeL$`J z0>IVuQIEm=kWIWVwY`Yfs~ELBEv8~JA=cwt%wwcNLrOzlSVt#xL**ED0E*!Phij|w zk6|*9yFvr9SRHSP2o|pWYN|9^O$K-x^M?-(ChT4u+jr#(bs}s2<(@I6^DaBY3ISVGH#Ct-j4 zVEY-`zKqbOe(Er;*$NQBW^yEkLG&FO+OFvC#amLV33N8LP}?a^X#z~Zgz}H7AhIN2 zni8eMk4g0EHKFig6BWbILZ^u}$wxtXU&-TWaI$_$90%6&K1oBzetcMzit+OShKDZv;Vg@S zh%sh-iZAJHKx(eTp>#%REAFTBoLi8pg#us{eTL#9vcHdQ8L)od=hMgCzVcSk*agip z{OU^G_U)BF^@{vJ8V+xMP`_2yLx+p;D~QLqD63Z`L0-5z?V!pq-8_v8m?(xn zxJ^)xgR0MD){*%OCFf-#ucF;^DQrM7on4D{xpWXEhy_=I-W{}tEb*)FvM)m~$>XR) z#jU1C-;wCcxA2$*7XLlRp+$TwRP$(2^T{%aSF=FBk!2f)E`HOf zW*{}NTUOou{yGI{uZqKHI1`7GN8BsI8|`h`o!MYyOk1u1Z2wPksK2MXkCeU8n@Mq3 ze0EC&e0p&PB#S=55{=ChKLLVJpCW)C>V{q^jDWi8U^ap> zCY42H0DUGFQ$|WE_oih$_(PicgN~5qQv&P#~Qf-Oi6gx+Zc>Ka|hzCMFbYXe#h2f6cxR6!@1+8$vLu|Q!!3z_*IkO?iH zp4s&Rv=-OoKPR2O^UI;E4k z$kz;%X(>Q25uDD5s35>uVSwWB3MGs0OymFUFitZ|R>|elyj*oK~<9L-yU_rvC6((PS)Kpc72QcOnkDlV=U9kSj zO?CAKb5Ud$MJeN$pjs{+c@HlcdevuQ#|Lg*Hal032ZX7RboUFbQKzf=qgZ{&E3^t$ zqpyN-S#MXN5|@_3wI0Pol8Nep)%wosy0q}akM?|-Nzidt^}pVd{e=*sWr?{WS5mJP zlv#FF%U%D|y7w2{K;r(k4}$!CqV}A5_AqYfEl^-qt^bdp7_!s;iS<*_fAqwgy!R;6 zxQOH4^=S)-Js+?r2$gDKWTfa|1^_ukvt)CmWLlgZtvh8+-zK|^(=7apmojaDDC!+b zC7A|VGiv7OgopY%N7G#*8l!rL2eG>J^xRNprpSf2BhDBVZS$_#Jffd4`Ep|p{8|IL#Y;ELSM z=P@uJ&B*!QkP5K%D1+O9!GsVlNUaB;Kp4j8{R#Qq- zbUgUquiCxmmwH3bM%@n2NNjLPrABc)TfIykF(st~Q;5CE@fZjtXrPorrNO@1)xdpb znxFE*N#1q8w7_ZB8hr7IIRt~06QbP3_50?lp(^l*xB#3CdA96+zv1$-zfJO)i)uN$ z>!+qTv8srO3t__@*583CwlEvWETzQ5XX2)+0^;;vKwW6X7eUG08P_(dC|oGukSj`9#b=V(~8Yuj*sFPLXkxlREzEyJgMpk>on zF(64uAY&plCejw_6igf6984Mp+lR)IVB9`sG31cY&S{LEdE>A?b;d+j24T_F` z*pWqD@+5!p4DR2fbUk^B#W@d%RFs|w(#{~KaDD9Pcy@i~0jphwOE`jL>ZI>n#@zw?)TM0m8pP?RM`;pezDVDW!Z zQ^z+mo+z;Zy~`WpHF#vR^*{#9h>n*R0oPOK^o36|KgCkd2Ly&aH%#`GG{j#un&3(+ z*d7)wCbp0K#Ms~uv}gkASw4KnU}F`{e{ZQLSLJ#Mf{3q4v9MyINgEDCdIs8%2FN9A zA4+2e`qzJZ&H=>WJN2M8POOr?%Da;IIt3PjW}ue@t1+^s6?CoDpx9i1)i>V$9}afm3|hI zv0(?x1V9H7pi7;Tt`9X3vXR9(4W=&K4dcijDv!GQpTXpD&wF3AF1o$aG?|K0R&AV} zEWMz4`}WNADYKZtb7){BDbPZ6a!om`Ae;(Yg*ri*Vo8c@OYQ!LKe*{Q+9LL5yZigV z6)X@k$D|O|@Lp3j&s5&<*L*-Ry%~`^B-zzP6|n^9#O=S+gPV>Ym*X4f$DzvY_=E|| zIQ*GW`H~R)(r<)|vx{#!-vFN#wo|etwm_$=S6@A3Ti?vWBZ~2r+at;Ep{ywH4T-0Y zNdLZB_pR!hskg{TEs$dqb*4`zR$1K{Ju8?yySeCAoX$DCy?PHbd~p9w}`gAcasXDFcoCfcW*{cw$PShFCi1#g# zOJ#xiCYOin<_VY%#exYZzh;yoT5c3eA0Yf)rOlWjlk)Ktr$H>T2=pA%gdRk3buVy` zv@xD_DSP3}>mPR2{`aCd{Ll9>QvFmhr}kLQX)}KkDP1SUzCBbCL=jX0&frTCtGz^h z%1m2aLYJL*i6Mch%+9l?i&eZ)==D~|Y~VZxF`+pz*TF(Q*a$H{x6G|-I+Q3TKtuty zNXNf2?f3$bWE>EONb+x^I>7xy+V@Cg4PsMLU@Eq9q^aTrYRB8xJW3(gD8ngR%2J;; zbBfh`tRm(A<79hiF>&Z+ngf4Bf?%hbeo4k{Sm?>*S1>dBy4XbhS)iaz<4Md`n%L|D zd-^vX7@8G3fm5Vhz~M{vR!3}D330P>0HT9R;9XOGcT2iv=9blVBM(zb{pKYjDPZyC}XKsib4df>Mk8Rr~p6P>kjWxR#$snh1I^%*h7SczH^-a%4 z`D1jk6eAp=!}lD^Z&oku$-J0%>+m?W+@x07Uw=E4k+pq8tXo68t(e-4+YB*y6vN*h zrT>7X1dR2?I`qHS3IGk#39JNsJ<@b@xRWCu6!QyT0Y@Osz1T0I5WM|;jD61}E7G_P z@lsRTeJRz?tKzb%x8@hsCL{hn% zkK)#5-hH5I?{K-8RT$xLm1|HzxGu*9$-cKap8|Q|w?hgl{1U<-9dROsT~FVNC0h|o z4Wb#?1lCIYfUeJ}^k_Qa7h; zQ$(7khX}0g%Y(kn)-L=!#L?PFV1a9GoY>nb_HkCNpylvBfX~%1kG~vAKc}yzm_dbM zaSllv@V*OqEeRo9yN^h0r`t~#{+v*0gWTNEW*QB7)BF~o(GSXQwt*#NEnmNKxa8i9gf@&8qZ1JXHB|3$Ld53oZh8#hp81z{RoU;eF}9SX&?5 zUE9f)EFnkGOkN8y0Z%|*-QS^+j@Gx=quIrgLG^%tkzbWju3&mD_}S=V5DamAXhi73 zMTVf@sDm`aKf-R9?#`A>o3YyE z()|%o5TTF$jl~ZPt~^g@W~9jkNJFa?_m8Jx$A#+1X$UY3v1wl94#pZI?>i73 z#`S4(IFRo~OQ|sAG`tZ}T_3vUWLs&KOaD6tXmk1V-x6N$XILS}yoyR|FASFt`@uiyhfnC8U?Ek@;D zVV!BAA^93;m7k*33oZ@`kRVhLBFdw)o7WBdSz{xUnLNplrJO8G`^YVY@24-h-97l8$5BB%UDM1eEkLncT;Y@j00AZp_N$PRNgzt*QA(lkU; z@r10YK69;pP_so%E#9nQ#bk?;f||MdPSC-hGO}IVab-Uc8{R%lf84yWYvf3Cdgy2Axv01Yl41vrfCRH2=4N^;U8#r{sq&Uy)lR zBDYD!G-g=wPWDfRG*ZxRJom!MJINSa9) zA8sKIoLIwN9)Cq^_s+CHNx|IcE-A5x>8w0!NKV)0mu~uyI9`^T+4K+SAw7&6l2IsL z#H;V;={!-_8Ba)bvhsC8+#992{aJZ|l#KF6m^)!nQaEJU^toaM{=*%L#K5%MTx1H( z#b*70{o56^=GnXwM4s4VrZv;in(2ROO7Is2Z4b3;#cMlUl59F!1Cu-Dc*?svBA#W|kiW;NF z^DW6F+Gly339Vt{k779YYg3otySWRUzhfNJ5zsWmo@`WUVSGmZGm5W6FDcC+-K5uv zjqhFZjDw5ORqt7&T5?iN8MLUTXgRj3_*e(;a+5gIRT{shfo||)a;Qs z>jz~H#wgD_CdDJg-3NlCN+*8TkIsOda`(!OMkMjKp}W4lGv&C5)Bc)|qgYa4?QoBA zLCFvINN9Ko%m$u|+r@?Pry!D808{Hq-1#y{jcQW$c+(Nb0Lpv+6KxjM7ZsoB`|8fo z>BDzMkz(&{g43aC1-O?^{Jt*=0NVh7|A+SAyLgOGxO3G7Vy5p#IL_~H%6t*&WB{hq|MONd>!kPv&^ntqy_)`HRckk| z%ORz#nX~#~(41j9qefC=Z4K2qzgI+Kn~TSda9U%czAamfTW0;F!cahjyb@ln^~2>B z)%0&t-9|iGBtO3VX?=l7PdsODAjr{RXcv0Rn*7%>G_&4Na*`r<32ptlq7RzFui(e= zUGOR%p+(XUAXB`40{uzV3VNFE9V3iK_?hXwSp*q`OEdOSU@tdx7Jr{7q~5{ZmANzc<<pv)Ct#kk;({wU27I|FT|7jWJG}8uAe0S{4Q9UDfOqp^i z(lmYR7w!3Y{OO|J_8@|7=JMSj3f(cm<`-OmAh=`I%a3lE1nz^7;Cp1;e6c|kW)E}K zB^S?VPavi!YjR6=S#%S|_{+3(ESF~b?cK8P@t*j}&Ee?QIXc=oZE;4-WIFmC-w#R5 zqqkluRnXSh<#TlDZ%v#hwkrDCd6qR%h1jbBA_&9{zqoeW+a^{q(nqJ%9+1^?zLI>Y zgxilr&@L1inhbTUMD~^!p*3xKxAK?jow6ndc-v~*Iwyu=WH}_GrTfBeP7bo_=421& zP&!H){j4HqP`quvmARiyTw0ehfC6i+ee)<5ty+PQBL4VMPQbb~rMp}na4ZSGgA{?U zGJqHWN^YHLM|k$K6Sy|&PI7J2U;iv4kUrx1+uVN~lz46BXu$@vz;3YZmSj$68m>hk zeZ&i~XEVo2zn2~H@Itfx=TA&GbiOR*exK2z`a^`a9Nn_`Ita#iUk24)fYz^i` z`r0>kfbiBSv{37`;UBGOzCnJfb-Z`^)L~xMC=j&3fQdQhRN z^=5)f(?3AyQQi1fIW6Tk=``txBm_VVy?oa{|63B=X?MF literal 0 HcmV?d00001 diff --git a/examples/nobrackets2024/tab-icon.png b/examples/nobrackets2024/tab-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bfe9a6995680200402865ac08fdd50716bc95e8e GIT binary patch literal 1444 zcmV;V1zY-wP);3+GKHu;6zTYqR3y?t^poJ(Gff*U0Ql?D$<66c>8*FF9D$~{vnU*db z8@XYNAG0V}npD`V&e&QThMO9H6pFW4JCTS(nYM%b!58lP>+|FN>dtQ6w+qhW{Hu+} zgDb9hFIMf`&E3!cRd^4CN&4!`X9AaQ+O9~8R152N-Pkn1BnXqR?r+uWEcWLj_QMQO zb*G#p?RysnFLIfL%dq0ro=hg)u+cOAw?WeUH|I3o6NZBi{qaMMeN2!r5wE=A=kr&s zZL+~8gUsPSG(iaw$uL6E{({Ee8z}bgV)2X;??M>QD<`MWFs&WT*AY998lvtPVYnW3 zy`<7VRWZw{A?kXRWCw!-yII`Q$0Z13*c1N@oMVL|pBK;noFX}D2%OhAdDOaiyR)(u z)tN-mR{YFH_3UQG5GZRBJuA3h*d%&BUeFR!L#TE9WCkzj0rHHcT144J6mJz*nX9R~ zA7JcqhDG5H!sK_OH5a(~R<{F}=`V z%{12)fCh#nv3`-h-ly_cHQrjSmnRcrKb?zYTH0ci)+5nenhAM8qNDc!%W{;1-#h+1BU=_c^Q}AW(>^(c9GU7$YB@ zf5`^kGTz}nQ!bUilu2bnAOLLhy!x3Dm1huj4Gl6AiY6gqm?fcBR1Ww1DX$F-!!*%D zds|mJYIuw>#g#fN_Cbaj?rca^QcmS5L^l8;X?`n}-ZjP=ljQy1D5Y{j@c9_hl#LnJB}~m5P;LGlpS|pS3+m zj?$JqMe-EMNx8it>3e@&QoJ`$kvv6m6v|N5;|KDOi7=HRl9ErJd*jW`Q|3&&Nks1r z39%R~9@%WNrcx<8ohO@aR);blEJ>x_qhmR9D84XWRX}h zjPT5qqh(j#A6KLOVvX^AyAx2Hdk)nzYP^#=p0*ZOh1o`+P6i;uGN$;cNUtQjXSs z;@S-fmtYykfnRlU+Z}TcOrL764+yUhi13Mmj7@TRn{3e}KH<6es1BCz%Vo;jd=uXv z5D^d&5O*Kr=xHN*7o+}RoLj9bXPsf6h}_Hw#T-f0U%71l zlYP7kVS+l3t+qzuoz}Q}7*$cFBtjD-oXT^F2CJ7``^xc}Ban53^i zp!zAF$ofQ{Pn7YA@QKvowhtD(yKh|7QD%aKN$Bpn`J*W>`lX=PFhr5QO5|<0df}mG yxlF<&z16ieClYTKm>wtct=X+ddbr~M(Z2w!lV4e3c+(&N0000 + .tag-Introduction > button{border: 5px solid #cad3f5; border-radius: 5px;} + .tag-Facile > button{border: 5px solid #a6da95; border-radius: 5px;} + .tag-Moyen > button{border: 5px solid #eed49f; border-radius: 5px;} + .tag-Difficile > button{border: 5px solid #ed8796; border-radius: 5px;} + .tag-D\u00e9mon > button{border: 5px solid #c6a0f6; border-radius: 5px;} + + button > p::before{white-space: pre;} + + .solved-challenge { + background-color: #a6da95 !important; + opacity: 100; + border-radius: 0px; + } + + .tag-Introduction > button.solved-challenge { + border: 5px solid; + border-color: #a6da95; + border-radius: 5px; + } + .tag-Facile > button.solved-challenge { + border: 5px solid; + border-color: #a6da95; + border-radius: 5px; + } + .tag-Moyen > button.solved-challenge { + border: 5px solid; + border-color: #a6da95; + border-radius: 5px; + } + .tag-Difficile > button.solved-challenge { + border: 5px solid; + border-color: #a6da95; + border-radius: 5px; + } + .tag-Démon > button.solved-challenge { + border: 5px solid; + border-color: #a6da95; + border-radius: 5px; + } + + body { + background-color: #212529 + } + h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + color: #dee2e6; + } + + p, li { + color: white; + } + + .challenge-desc p { + color: black; + } + + .challenge-button { + &:hover { + background-color: #212529; + border-color: inherit; /* Keeps original border color on hover */ + } + } + + .challenge-button > p{ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + table thead td, table tbody td, table tbody tr, label{ + color: #ffff; + } + + + h2.challenge-name, h3.challenge-value, #solves table thead td, #solves table tbody td{ + color: #000000 !important; + } + + h1 .btn{ + padding:20px!important; + color:black!important; + background-color:white!important; + border-radius:5px!important; + font-size:20px!important; + } + h1 .btn:hover{ + background-color:#48808a!important; + } + + blockquote p, .card-title, .modal-body p{ + color:black; + } + + tr td a { + color: white; + } + + + \ No newline at end of file diff --git a/examples/nobrackets2024/tos.md b/examples/nobrackets2024/tos.md new file mode 100644 index 0000000..3d29aa0 --- /dev/null +++ b/examples/nobrackets2024/tos.md @@ -0,0 +1,91 @@ +# Conditions générales d'utilisation en vigeur depuis le 15/08/2024 +Les présentes conditions générales d'utilisation (dites « CGU ») ont pour objet l'encadrement juridique des modalités de mise à disposition du site et des services par le club GCC dépendant lui-même du BDE de l’ENSIBS et de définir les conditions d’accès et d’utilisation des services par « l'Utilisateur » participant au NoBracketsCTF (Capture The Flag). + +Toute inscription ou utilisation du site ou du service implique l'acceptation sans aucune réserve ni restriction des présentes CGU par l’utilisateur. En cas de non-acceptation des CGU stipulées dans le présent contrat, l'Utilisateur se doit de renoncer à l'accès des services proposés par le site. + +Le club GCC se réserve le droit de modifier unilatéralement et à tout moment le contenu des présentes CGU. + + +## ARTICLE 1 : Accès au site + +Le site https://nobrackets.fr permet à l'Utilisateur un accès gratuit aux servics suivants : +* Mise à disposition de machines de travail durant le CTF +* Authentification (identifiant + mot de passe) + +Le site est accessible gratuitement en tout lieu à tout Utilisateur ayant un accès à Internet. Tous les frais supportés par l'Utilisateur pour accéder au service (matériel informatique, logiciels, connexion Internet, etc.) sont à sa charge. +L’Utilisateur non-membre n'a pas accès aux services réservés. Pour cela, il doit s’inscrire en remplissant le formulaire. En acceptant de s’inscrire aux services réservés, l’Utilisateur membre s’engage à fournir des informations sincères et exactes concernant son état civil et ses coordonnées, notamment son nom et son prénom ainsi que le nom de son équipe. L’Utilisateur doit être inscrit au NoBracketsCTF pour accéder aux services. +Pour accéder aux services, l’Utilisateur doit ensuite s'identifier à l'aide de son identifiant et de son mot de passe. +Tout événement dû à un cas de force majeure ayant pour conséquence un dysfonctionnement du site ou serveur et sous réserve de toute interruption ou modification en cas de maintenance, n'engage pas la responsabilité de nobrackets.fr. Dans ces cas, l’Utilisateur accepte ainsi ne pas tenir rigueur à l’éditeur de toute interruption ou suspension de service, même sans préavis. +L'Utilisateur a la possibilité de contacter le site par messagerie électronique à l’adresse email nobrackets-ctf@mailo.com + +## ARTICLE 2 : Collecte des données + +Le site assure à l'Utilisateur une collecte et un traitement d'informations personnelles dans le respect de la vie privée conformément à la loi n°78-17 du 6 janvier 1978 relative à l'informatique, aux fichiers et aux libertés. +En vertu de la loi Informatique et Libertés, en date du 6 janvier 1978, l'Utilisateur dispose d'un droit d'accès, de rectification, de suppression et d'opposition de ses données personnelles. L'Utilisateur exerce ce droit : +* par mail à l'adresse email : nobrackets-ctf@mailo.com + +## ARTICLE 3 : Propriété intellectuelle + +Les marques, logos, signes ainsi que tous les contenus du site (textes, images, son…) font l'objet d'une protection par le Code de la propriété intellectuelle et plus particulièrement par le droit d'auteur. + +L'Utilisateur doit solliciter l'autorisation préalable du site pour toute reproduction, publication, copie des différents contenus. Il s'engage à une utilisation des contenus du site dans un cadre strictement privé, toute utilisation à des fins commerciales et publicitaires est strictement interdite. +Toute représentation totale ou partielle de ce site par quelque procédé que ce soit, sans l’autorisation expresse de l’exploitant du site Internet constituerait une contrefaçon sanctionnée par l’article L 335-2 et suivants du Code de la propriété intellectuelle. +Il est rappelé conformément à l’article L122-5 du Code de propriété intellectuelle que l’Utilisateur qui reproduit, copie ou publie le contenu protégé doit citer l’auteur et sa source. + +## ARTICLE 4 : Responsabilité + +Le club GCC est responsable des contenus figurant sur le site et s'engage à rester vigilant sur la diffusion des contenus. +Le site https://nobrackets.fr ne peut être tenu pour responsable d’éventuels virus qui pourraient infecter l’ordinateur ou tout matériel informatique de l’Internaute, suite à une utilisation, à l’accès, ou au téléchargement provenant de ce site. +Le club GCC ne garantit pas l'aptitude du site et/ou des services à répondre à des attentes ou besoins particuliers de l'Utilisateur. +Malgré des mises à jour régulières, le site https://nobrackets.fr ne peut être tenu responsable de la modification des dispositions administratives et juridiques survenant après la publication. De même, le site ne peut être tenu responsable de l’utilisation et de l’interprétation de l’information contenue dans ce site. +Le site ne pourra être tenu responsable : +* Des informations renseignées sur le compte par l'utilisateur, ainsi que de leur appréciation par une quelconque administration ou juridiction. +* De l'usage fait du site et/ou des services par tout utilisateur, notamment quant à la véracité des informations communiquées. + +Le site exclut toute responsabilité en cas d'utilisation frauduleuse par un tiers de l'identifiant et du mot de passe de l'Utilisateur dû à une négligence de l'Utilisateur ou au non-respect par ce dernier des consignes de sécurité prévues aux présentes CGU. L'Utilisateur conserve la possibilité de démontrer qu'il n'est pas responsable de l'utilisation frauduleuse de ses identifiant et mot de passe. +En outre, le site ne pourra être responsable des dommages pouvant être causés du fait : +* De l'utilisation des services par l'utilisateur de manière non conforme aux présentes CGU et à la réglementation en vigueur ; +* D'informations diffusées sur le compte de l'utilisateur ou de déclarations mensongères de l'utilisateur lors de la création du compte ; +* Du paramétrage de l'ordinateur de l'utilisateur permettant de s'identifier automatiquement et de laisser ainsi la possibilité à tout tiers d'utiliser le site ou les services avec son compte ou en usurpant son identité. En conséquence, pour limiter ce risque, l'utilisateur est invité à sécuriser l'accès à son compte. + + +Malgré des mises à jour régulières, le site https://nobrackets.fr ne peut être tenu responsable de la modification des dispositions administratives et juridiques survenant après la publication. De même, le site ne peut être tenu responsable de l’utilisation et de l’interprétation de l’information contenue dans ce site. +L’Utilisateur s’engage à ne pas partager les solutions aux challenges présents sur le site et ce, que ce soit via internet ou directement à d’autres personnes, sans autorisation préalable obtenue de la part du club GCC. +La responsabilité du site ne peut être engagée en cas de force majeure ou du fait imprévisible et insurmontable d'un tiers. + +## ARTICLE 5 : Responsabilité de l’Utilisateur + +L'Utilisateur est responsable de l'utilisation de son compte ainsi que de l'utilisation de ses éléments d'identification. +L'Utilisateur reconnaît que toute utilisation du site et/ou des services, et plus particulièrement tout accès à son compte avec ses éléments d'identification, est présumée faite par l'utilisateur et lui sera imputée, à charge pour l'Utilisateur d'apporter la preuve contraire. +L'Utilisateur est seul responsable des informations qu'il souhaite mettre sur son compte. +L'Utilisateur est responsable de tous les dommages qu'il pourra causer à https://nobrackets.fr du fait du non-respect des CGU. En cas de manquement de l'utilisateur aux présentes CGU, l'accès aux services pourra être automatiquement bloqué, sans préjudice de toute action judiciaire qui pourrait être intentée par https://nobrackets.fr et de tous dommages et intérêts qui pourraient être réclamés. +L’Utilisateur s'engage à informer le site sans délai, par tous moyens, de toute erreur, faute ou irrégularité qu'il constaterait dans l'utilisation du site, de son compte et/ou des services, et ce, dès qu'il en a connaissance. + +Afin de répondre à une alerte de sécurité (contrôle anti-virus, etc.), à la demande d'une autorité (administrative, judiciaire ou toute autorité habilitée), à une alerte émanant d'un autre Utilisateur, le site se réserve le droit le cas échéant : +* De conserver, à des fins de preuve, toute information ne respectant pas les règles fixées par les Conditions Générales d'Utilisation mais également tous logs ou traces de connexion en relation avec la gestion ou le contrôle du compte de l'utilisateur ; +* De conserver, à des fins de preuve, tous logs, traces de connexion ou données à caractère personnel ou non prouvant l'imputabilité à l'utilisateur des comportements ou actions en cause ; +* De modifier, rejeter et/ou supprimer l'accès à toute information ne respectant pas les règles fixées aux présentes CGU. + + +L’Utilisateur s’engage à ne pas perturber le bon fonctionnement de https://nobrackets.fr. A ce titre, sans que cette liste ne soit exhaustive, les comportements énoncés ci-après sont interdits : +* Accès ou maintien frauduleux à https://*.nobrackets.fr ; +* Entrave ou altération à son fonctionnement ; +* Introduction de virus ; +* Endommagement ; +* Accès illégal à des données stockées ; +* Utilisation des ressources d’une manière illégale ; + * Utilisation de ressources d’une manière pouvant porter atteinte à d’autres personnes ; + * Utilisation de robot d’aspiration de données (« scrapping »), ou plus généralement de tout autre outil de collecte de données dans le but d’extraire ou de réutiliser une partie substantielle des éléments de contenu. + + +Le non-respect des stipulations du présent paragraphe pourra engager la responsabilité de l’Utilisateur et dans certains cas, engendrer le prononcé de sanctions pénales. + +## ARTICLE 6 : Liens hypertextes + +Des liens hypertextes peuvent être présents sur le site. L’Utilisateur est informé qu’en cliquant sur ces liens, il sortira du site https://nobrackets.fr. Ce dernier n’a pas de contrôle sur les pages web sur lesquelles aboutissent ces liens et ne saurait, en aucun cas, être responsable de leur contenu. + + +## ARTICLE 7 : Droit applicable et juridiction compétente + +La législation française s'applique au présent contrat. En cas d'absence de résolution amiable d'un litige né entre les parties, les tribunaux français seront seuls compétents pour en connaître. +Pour toute question relative à l’application des présentes CGU, vous pouvez joindre l’éditeur aux coordonnées suivantes : nobrackets-ctf@mailo.com. diff --git a/hack/examples.sh b/hack/examples.sh new file mode 100755 index 0000000..f641258 --- /dev/null +++ b/hack/examples.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Build binary +go build -cover -o ctfd-setup cmd/ctfd-setup/main.go +GOCOVERDIR=coverdir +mkdir "$GOCOVERDIR" + +# Execute every examples +# WARNING: every '.admin' must be equal in order to reuse the CTFd instance +for dir in examples/*/; do + if [[ -d "$dir" ]]; then + ( + cd "$dir" + GOCOVERDIR="../../$GOCOVERDIR" ../../ctfd-setup --url "$URL" --file .ctfd.yaml + ) + fi +done + +# Merge coverage data +go tool covdata textfmt "-i=$GOCOVERDIR" -o integration.out +sed -i '/^\//d' integration.out + +# Remove traces +rm -rf "$GOCOVERDIR" +rm ctfd-setup diff --git a/setup.go b/setup.go index 8e15ad0..39c7da6 100644 --- a/setup.go +++ b/setup.go @@ -167,9 +167,9 @@ func updateSetup(ctx context.Context, client *api.Client, conf *Config) error { ViewAfterCTF: conf.Time.ViewAfter, SocialShares: conf.Social.Shares, PrivacyURL: conf.Legal.PrivacyPolicy.URL, - PrivacyText: conf.Legal.PrivacyPolicy.Content, + PrivacyText: ptr(string(conf.Legal.PrivacyPolicy.Content.Content)), TOSURL: conf.Legal.TOS.URL, - TOSText: conf.Legal.TOS.Content, + TOSText: ptr(string(conf.Legal.TOS.Content.Content)), UserMode: &conf.Mode, }