From d01421f13e5e84597cb9973694c5918407f6d84c Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 23 Sep 2019 14:01:03 +1000 Subject: [PATCH] More docs and a few cosmetic code changes --- README.md | 85 +++++--- doc/standard-redux.png | Bin 0 -> 153354 bytes examples/micro-service/doc/wireframes.bmpr | Bin 32768 -> 50176 bytes examples/real-time-charts/README.md | 167 ++++++++-------- examples/real-time-charts/doc/wireframe.png | Bin 0 -> 19817 bytes examples/real-time-charts/doc/wireframes.bmpr | Bin 0 -> 82944 bytes .../src/rest_client/fetch-api.js | 183 ++++++++++++++++++ .../src/rest_client/fetch-api.js | 183 ++++++++++++++++++ examples/theme/README.md | 8 + .../src/card/pageR1/pageR1.component.jsx | 4 +- .../material/src/card/pageR1/pageR1.style.js | 5 + packages/material/src/root/root.component.jsx | 2 +- 12 files changed, 528 insertions(+), 109 deletions(-) create mode 100644 doc/standard-redux.png create mode 100644 examples/real-time-charts/doc/wireframe.png create mode 100644 examples/real-time-charts/doc/wireframes.bmpr create mode 100644 examples/real-time-charts/src/rest_client/fetch-api.js create mode 100644 examples/real-time-charts2/src/rest_client/fetch-api.js create mode 100644 examples/theme/README.md diff --git a/README.md b/README.md index c07efed..0f32f9a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Motivation Most of the web frontends we are usually building are for a rather small user base to better use or maintain rather complex backends. Many of those systems start out small but over time expand in various directions by different teams using different technologies. Most likely a common scenario for many business support services. -We use micro services and similar technologies to avoid any unnecessary dependencies in the backend, but our users, understandably want a unified UX in the frontend. +We use micro services and similar technologies to avoid any unnecessary dependencies in the backend, but our users, understandably want a unified UX on the frontend. This project is an attempt to achieve that while supporting the independent development of the various parts and components surfacing specific backend capabilites. In other words, we want to minimize the amount of code changes when adding new functionality while still supporting an integrated UX experience. @@ -18,44 +18,69 @@ Let me explain that with a trivial example. Let us assume we just delivered an i Approach --- -We have found the React/Redux approach to be extremely useful in managing dependencies between UX components and cleanly separating state synchronisation between front- and backend. In addition, a purely functional approach to component design not only leads to much cleaner code, but also simplifies testing considerably. +We have found the React/Redux approach to be extremely useful in managing dependencies between UX components and cleanly separating state synchronisation between front- and backend. In addition, a purely functional approach to component design not only leads to much cleaner code, but also simplifies testing considerably. We can visualize this as: -With the positive lessons learned from defining a web page as pure functions over a single state structure, we wanted to see if we can push this further and essentially select those functions through another function over a _UX_ state object. +![Standard Redux](doc/standard-redux.png) -![Basic Idea](doc/high-level.png) -In order to do that, we need to define a _construction_ model for a web page. In _Pihanga_, like in other frameworks, a page is composed of hierarchically nested **cards**. Or, in other words, a _tree of cards_ with the root of the tree being the entire page frame. Each card can contain normal web components as well as other cards. However, we restrict a card to define an embedded card only by a tree-globally unique name. In addition, each card is stateless and it's final presentation and behaviour defined by a set of externally provided properties (which may include the name to be assigned to an embedded card). +With the positive lessons learned from defining a web page as pure functions over a single state structure, we wanted to see if we can push this further and essentially derive the above function _ui()_ itself as the result of another function over the _UX_ state object. -The _Pihanga_ state structure, different to the _Redux state tree_, is a map between the _name_ of a card and it's associated property list. However, the values in that property list can be queries (currently functions) over the entire _Pihanga_ state (all other cards) and the _Redux_ state. +In order to do that, we need to define a _construction_ model for a web page. In _Pihanga_, like in other frameworks, a page is composed of hierarchically nested **cards**. Or, in other words, a _tree of cards_ with the root of the tree being the entire page frame. Each card can contain normal web components as well as other cards. Current practice will not only select the card +to be embedded in another card, but also declare all it's properties. For instance: -Let's demonstrate that on a simple app consisting of a frame-filling `page` card which will show one of two listing cards depending on the `route.routePath` property in the Redux state. +``` +export const FooCard = (props) ==> { + ... + return { + <> + ... + + ... + + } +} +``` + +And that's where _Pihanga_ departs from current practice. Instead of a declaring the exact card to embed, we employ a _late binding_ approach, where the embedded card is only identified by a locally unique identifier. The same code +segment as above in _Pihanga_ looks like: + +``` +export const FooCard = (props) ==> { + ... + return { + <> + ... + + ... + + } +} +``` +where `Card` is essentially a placeholder for a _Pihanaga component_ defined separately. + +The _Pihanga_ state structure, different to the _Redux state tree_, is a map between the `cardName` of a card and it's associated property list. In addition, the values in that property list can be queries (currently functions) over the entire _Pihanga_ state (all other cards) as well as the _Redux_ state. + +Let's demonstrate that on a simple app consisting of a frame-filling `page` card which will show one of two listing cards depending on the `showList` property in the Redux state which is expected to either contain `cars` or `trucks`. The _Pihanga_ state structure is defined as follows: ```javascript -import flow from 'lodash.flow'; -import { pQuery } from '@pihanga/core'card.service'; - export default { page: { cardType: 'AppPage', title: 'Transportation Service', - contentCard: flow( - pQuery(null, 'path', (s) => s.route.routePath), - (a) => a.length == 1 ? a[0].cardName : 'carListing' - ), + subTitle: (_, ref) => ref('.', 'contentCard', 'title'), + contentCard: (state) => state.showList, //... }, - carListing: { - cardType: 'Table', + cars: { + cardType: 'PiTable', title: 'Cars', - path: '/cars', //... }, - truckListing: { - cardType: 'Table', + trucks: { + cardType: 'PiTable', title: 'Trucks', - path: '/trucks', //... }, } @@ -68,25 +93,35 @@ import { Card } from '@pihanga/core'; export const AppPageCard = ({ title, - contentCard, + subTitle, + contentCard, //... }) => { return (
... - + ...
); }; ``` -The `contentCard` property in the `page` card definition shows the use of query to dynamically calculate the property value. `pQuery` returns an query over the _Pihanga_ state. `pQuery(null, 'path', (s) => s.route.routePath)` selects all card defintions (`null` wildcard) where the `path` property (if defined) is equal to the current _Redux_ value `route.routePath`. For the current setup, the query will return zero or one records which is reduced in the second function to `flow` either the name of the single matching card or a default card. +In this simple example the mapping between `` and the actual card embedded is determined by the +value bound to the `contentCard` property of of the _Pihanga state_ of the card (`page`) embedding it. That value can either be a +constant (`title: 'Cars'`), a reference to the property value of another card (`... => ref('.', 'contentCard', 'title')`), or a function on the current _Redux_ state (`... => state.showList`). + +Simply changing the value of `showList` to a different value, will not only change what card is being embedded inside `AppPageCard`, but also the `subTitle` that card is displaying. Beside the dynamic nature of this approach, we can now also +develop 'template' cards which can dynamically be adapted to various different uses __without__ having to change their internals. + +## Further Reading +The [examples](./examples) directory contains various examples on how _Pihanga_ can be used to quickly develop useful and scalable web applications. See the _README_ files in the various sub directories for more information. +The -# Developer Notes +## Developer Notes -## Pulishing new release +### Pulishing new release lerna version prerelease lerna publish from-git diff --git a/doc/standard-redux.png b/doc/standard-redux.png new file mode 100644 index 0000000000000000000000000000000000000000..dabc1abb9ec90e2bce065c03245f2ad406b00344 GIT binary patch literal 153354 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¥t$X7Bz`aiPOD8YYK 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%0Am?CEe(?5RN&5IvlR%K}Zu+ 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μBP&dy11w~GCR3^e zToQ+Axp#UuU2f7Dy}*4l-Ny+2-oW|OXHns=PSP;=D(OT03;W|k5~iO$SpigxwB#i| zn%GVTze=X2K7H{e*)#^lW{U227T`JjsMl}_Xa0z}A>F4mByP8p1)kOt6JhuqwX)YA ze8GNUL)7aRN!Frpbgv!cuD>XL{`USm1QH(1o%QkuEF{_!IN)IFS0M0 zto0-nLZdBFX70NFFGs}}VK0ss5f>(<`-A3ig3qWo8a_^T?9IOupV7F6LG!r~hh4S` zObnD^JHr-tiOlMU@cAyw|P){QbPC@iRXgRqzNQ>_eZ>g9_U z$h(pvLdq9v$pt4h>MAWKS6sR~(1!`Y0U5w;IlK?{sMa*yt13VAO-u!}9xbZ3x2i4v z1y)$@*r`#xsf4*O=flM()05_Mo;Lj(Bc_N&ve~#(XKiXwO`s5$^|@j@F&D3MGPKdD zsEN?dbwX9_?jJ2gEvDV}p_7+k?%PPEY0~y5g@OV1xU`~-S^MD{hZhrS2Ud%c-07T8 zlE%D|sA=(E`54D|j}#JBp&I+OgPT?o+M7_Pr7aZZ3T764Y{HUwJ+`h-K3(&bO~g&} zDSgaaZ{}i~k9)aDHk5QXg*gKf9B(;Af@#mGGyU;T9S~H9{=j(}(iH_M@oTakLuU`f2y9KRAE$rm20ePg9D5WkY2PE&k(eeBQ0 zhkIhe%@^LBdn!d%$zq!wSi7tJAhSGPW4;(JAvgmFx1B&*o;o)lQtuVqRc@hH;|+A; z-)oMScZsIJxrqt))GT1__YNe0Ig~no%DkW2v-9}d`1)J&Fnfo}w+D2Gu85be@!&=Y zz4FC1AZ%bht`11fosKzT29gEDMSd4NyN-F%KrJGfL>lmuTGF=ev!h7uNOg#s}`;?F-F{%SRbZ4+2; zOd-v$W~jFA3Ax(!1{IR#vtoY9{09pC*W_lX^@Z2>E=#mHKSUv=maiS?eF>l;RAu(7 z?oAS^5SFK7bNp>Ya1*yZlptS|P$Jw*>u7$J5*E~*K4TEpUGHy6a=1n!oanrbQ&*Ti zS;Br3(x>J*Xfq{;n_&4DvlE_~%}(ENx?~^orA?O4JgJgbe`Ez6Ic+VyQoe2B-G+yZ${_2671n{xAE|091P47s7%-e*@*>E&%Mlz!qL_(j0>mqPAmj-$i#w zFSXR#Z97la&{Vz)%RMKVeFC>ceg^qeJEzqw^nCS5bzVHKT#9lED>X{Y4eNZ)^n{ry z&L_8Iz0LIxAO7yRIKQ%#067>}bs83cZ=iA>SW`dq54V$ALpR+S+6JA zq0V`b+tP}-x7ArXP+($da2vG1J1YICfZ2pygR3akZBm2W;QY_C{7(np*9#*UKbKrP zG%~7vy#5SF)g(^^D_n7VLH%MaCp~}rcVA`53EN$z;2=HK3G3b5@;~svKjtDM(qDl7 zUmDQ!Wz9Z*FrqYU9y$+Wj-+FRQ7l+~+X{u+E z$#Ko{|8=s(n9qxnDzP3#r>NnGWt$`tuiloH{m~-{tt87 zC;uX0uYPa&zfQJD_*q`f>`K>l|F7In5PK%c%dXM?-zWS3vs1CLo5ml-#vipnY Om!zniNa;6ypZ^1WLUHf_ literal 0 HcmV?d00001 diff --git a/examples/micro-service/doc/wireframes.bmpr b/examples/micro-service/doc/wireframes.bmpr index cd7fc1be1d3c07e62510ee9aa171bb1bae526fda..4e5e09b631a3fdd44235795470223d979319fcc3 100644 GIT binary patch delta 13641 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 A-T(jq delta 321 zcmZqZU~Xt&njp=~#lXOz0K{@Y%sf%UoRMo|!a`A1`1K}#;0u{t$8R=yh7!-@Dn6yj zNB9gTKedpVoWQR(c@MwXSKt5(-PGw-;%$y38jbvu^WoeXUoSbOs qv3ZlapN{}g9t4 s.step, - ... - }, - -`PiSimplePage` is a card provided by the standard __Pihanga__ library and provides ust minimal scaffolding for displaying a single child card identified through `contentCard`. In our case we -simply use the workflow `step` from the _Redux_ state. + const page = { + page: { + cardType: 'PiPageR1', + contentCard: 'graphs', + title: 'Realtime Charts', + footer: {copyright: 'The Pihanga Team'} + }, -The initial workflow state is `passport` and indeed we find a `passport` entry in [app.pihanga.js](src/app.pihanga.js): + graphs: { + cardType: 'PiGrid', + spacing: 3, + content: ['cpuGraph', 'memoryGraph', ], + }, - passport: { - cardType: 'PiTitledPage', - contentCard: 'form', - ... - }, - - form: { - cardType: 'PiForm', - title: 'Ask the Ring', - submitLabel: 'Send Query', - fields: [ + cpuGraph: { + cardType: 'WrappedCard', + title: 'CPU User', ... - ], - ... - }, + }, -![Passport Page](doc/passport.png) - -The `passport` page consists of a titled page and an embedded form (`form`). Pressing the 'submit' button will trigger the default action: - - { - type: "PI_FORM:FORM_SUBMIT" - id: "form" - passport: "44444" - question: "0" - ring: "0" + memoryGraph: { + cardType: 'WrappedCard', + title: 'Memory', + ... + } + }; + +The first two card definitions are rather straight forward, while the +card type `WrappedCard` is a locally defined _Meta Card_. A _Meta Card_ does not represents any actual cards, but will instead return a named list of new cards which are dynamically inserted into the card declaraton list. Please note, that any of the returned cards can be a +_Meta Card_ leading to a recursive expansion. + +Now lets have a look at the definition of `WrappedCard` which we can +find at the beginning of [app.pihanga.js](src/app.pihanga.js): + +``` +export function init(register) { + ... + register.metaCard('WrappedCard', (name, defs) => { + const { + cardType, title, + yLabel, metricsType, maxY = 100, + ...inner + } = defs; + const innerName = `${name}-inner`; + const h = {}; + h[name] = { + cardType: 'MuiCard', + title, + contentCard: innerName, } - -which is 'reduced' in [workflow.js](src/workflow.js): - - register.reducer(actions('PiForm').FORM_SUBMIT, (state, action) => { - dispatchFromReducer(() => { - getPassportCount(action.passport); - }); - const s = update(state, ['step'], 'spinner'); - return update(s, ['question'], action.question); - }); - -The reducer first initiates an API call `getPassportCount`, and then changes both the `step`, as well -as the `answer` property of the _Redux_ state. Changing the `step` property to `spinner` will, according -to the `page.contentCard` declaration in [app.pihanga.js](src/app.pihanga.js), now display the `spinner` card -which is defined as: - - spinner: { - cardType: 'Spinner', - ... + h[innerName] = { + cardType: 'ReLineChart', + data: s => s.metrics[metricsType], + ... + } + return h; + }); +} +``` + +## Realtime Updates + +[backend.js](src/backend.js): +``` +const METRICS_URL = '/metrics?after=:after'; +const UPDATE_INTERVAL_MS = 2000; + +export function init(register) { + registerPeriodicGET({ + name: 'getMetrics', + url: METRICS_URL, + intervalMS: UPDATE_INTERVAL_MS, + + start: '@@INIT', + init: (state) => { + const m = {metrics: {...}}; + return update(state, [], m); }, -'Spinner' is an application specific card and defined in the [spinner](src/spinner) directory. - -![Spinner Page](doc/spinner.png) - -The above referenced `getPassportCount` function will dispatch a `UPDATE_PASSPORT` event on successful -completion of the API request, which in turn is reduced in [workflow.js](src/workflow.js): - - register.reducer(ACTION_TYPES.UPDATE_PASSPORT, (state, action) => { - const s = update(state, ['step'], 'answer'); - return update(s, ['answer'], action.reply); - }); - -The first update is setting the step to `answer` which in turn will display the `answer` card defined in -[app.pihanga.js](src/app.pihanga.js) as follows: - - answer: { - cardType: 'Answer', - answer: s => s.answer, - question: s => s.question, + request: (state) => { + const lastTS = state... + return {after: lastTS}; }, + reply: onMetricsUpdate, + }); +} -As with the `Spinner` card type, `Answer` is also an app specific card and defined in the [answer](src/answer) directory. It's properties `answer` and `question` are bound to the equally named properties in _Redux_. +function onMetricsUpdate(state, reply) { + ... + return update(state, ['metrics'], metrics); +} +``` -![Answer Page](doc/answer.png) -Finally, the action `NEW_REQUEST` associated with the `NEW REQUEST` button on the answer page is reduced in -[workflow.js](src/workflow.js) to return to the `passport` page: - register.reducer(ANSWER_TYPES.NEW_REQUEST, (state) => { - return update(state, ['step'], 'passport'); - }); diff --git a/examples/real-time-charts/doc/wireframe.png b/examples/real-time-charts/doc/wireframe.png new file mode 100644 index 0000000000000000000000000000000000000000..9a81f5f3b7fc03f0d0d63bb396c56c192082c515 GIT binary patch literal 19817 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 literal 0 HcmV?d00001 diff --git a/examples/real-time-charts/doc/wireframes.bmpr b/examples/real-time-charts/doc/wireframes.bmpr new file mode 100644 index 0000000000000000000000000000000000000000..38f963d97588bb9f8fbbc5e1a778f8e495d36fce GIT binary patch literal 82944 zcmeF)NswpTb{_P9Ro;46&+u$xV+$i+``&Aws$NG&ra;0Z-2UTbozY#{L_xcM~w#$8vo$aPaBQKNWN$D{nzsSSM&YR-FJRf z{~k6T|MCA?KEC(oNaOK8|C^6;`$5y6O7yQa{prL1?ZH2L@Xy}+#D^Q-tOtJgM?d=P z%eDuN{l<&NR%5$y-8gHUG@j+}^ZfODjrGPwJ{`Ss|Mwbmjp4?8W4f`JPlMIx-)pqJ z3D&=rvCFwtH%p`}g#$=wHYpmw)@jSiS_|1Hh>q2#RAhlP*{3}oX ztg-yjk3PG3{Ox+<%?9X;H?KW<`IjGj{Mjd;Jb1Z(-xFi$g^_e){rllpwY*MLT0E7O zOy2d+*SC5psVCCj(w`;$&l;l-fArb@C*Q8EbuF~9{+xOCE02ECG|+hTaJSL)e?Hu8 z+HLx^hyVDSO}`JRKJ>u1=z*U;Y#RG({f*PcW@9fR=`!+UF5j2=e3tK{2(j))Z{y`( zc=XZi%f;6d_D7DL=h6KLA~J0|kNk&?&y&?@KCkCW$zZ7Zyq!Bg&n)jshTZwumY*Gs z)<%1yr~2zRbN@wBKF_mKe%`ps^K#nB&vN}NSHEoh^rNQ!PhPLeNNReTM-{q}-^ckY z|9<-NjdX9eZSl0}qt&lXl$A~*wx_;BscUa)+}r4EJkIa7>g#d->TUGp`*Bir=2L$@ zbtb*m4dt(nw00z4?*5$zP5pmkzUuMqs?JMklKq8L|54LaqiL$?qUnEW z`ln6*{9BCbhom2R;6o3*(gVNVH2dIniSaJs_2_Rk^}mtqRl)Mn-)mZZ7ywr`49d zk>BgterW+ixq4P@;``Z0>rK3D$)88*|2%gOvo*hnw*BgM?do>Y%cG>T3m-KOa&94zq?)8T&Wi}XZ8H2m?$a1MdW~A5y!xs6+`YYfsx4c8>9g(1TGJCnEqcA~lm}@k z8J$sb?Eep%{zW7IKm7a910QTJ zjeU^laY}_~LLr{r<^3Yp3$$Plei5MIS-$M3MF-isYuEFn+sw6#7 zm5WN_P?!DW%gir(y;cmSmBUpljLC2{4n|_QGU^%oeYtBSUL74hHIhCW&ezCYUFZvd zjfLnk$N62#(5~yWt|cu77Jp#{{N;!F@s}Rh|C=6W|NkE!{)?t@H$MFP&;!4`J+SsD zV(~#|)=f{=9qHGR&(>96B#BRCNPE5>SF5r=(xisi$eON5Epm}_qvti5*i^C}OhzNQ zHIilNvxgyagkE?4ZmlwGuYMPiNZfW+i@qmU2?NOAtK#HAU+0ASVcjuJADnJ?p2bJMzxU|l&)V7^ z{6{DEPPeyxmv3MB(N{U*-cJ55CnRU%t4_ezU6fz%ij;!B!~Mw#TAX&SzT3H3yFuSo z?$4qYX)9bd_CbcWF^%-SjHxi{(P3cN;z5cB6v#kAJ_~u)S zi~c(;{eSZ4VMNp)emM~7)e&h%#ViU7f5mYAew=O@tfU+{*pa(LY*9AvrC(oC3`P3! z?@(pd8@silJ|J~PAnza~3YdAl5@2*XTzfj-rO6mRaCYQel zq8^>(>G^;v<%-SVFsj*bo>@v6l;(@nbG5OYPX{S?GgogjMSF8)GoaCR>bDw2>)(q~ z)t37UdGbkWwUME6e@BR46pCrXz>Uop;j-;HET-i)HJ9+vfpIY+wr7`^MPhLFu(aTR> z{_*7ZrDJ~IgEEkgeRWU<)4byh|5duG49Z+|{o%I;r9C<<3uZPQ*p*?}NRvm>AurOg zv+11a{4^;2dDd#^PJSyHi1yrhnqe{k2J$c+wwn}F8L+Wj8_u)m8PdTF%TaabC==~E zU+M)-J4{C}>6B~zgA&yG~jLXo>u z+umH6O)XdReVH_)Nqv@f+~#_Bt{$c2XK7tq@_3%wFDI9i^u$nV-IF^DsliZ6noG$` zsmoYeu#s8XlV^95!&q`#u3E8~zq-@L!L&o&F7kURaf%jb#IzBPY0 zC&g;&)s;Msl4n~+X*y+HS9Lqcr~TAmDB9^n>e!yr)>7N!r0mTVeL0-kb>*4oDSteD zf0caX-JPd;(g%m>o3-@NRDPbM1szE{l)5b^&)wvR(0h>)eU>($^71-#r$!rD+Y|XY znUa=rbvGrPC6|emq2Cts*KO`E=Goqi_Hxqfqz2vjHa}?P&vWfGwcE?@^VIYz<TFV9Rde7vsoQdOJo#cbv-D3>hrWE8O#Ppx%*~YXBxM+f7wHeV zYEM^HxBle1pWIH92R_4Geh;PfSLyH5{571~Ugt`8@;lGZnUrW2Y-R>n1+8gWfBI`L zWvwLjUhd3iPFyFSo#Z`L)nFrco~C~X^6Zo3g5|K69zDnv#^ICXG?ARIlG|3wS*+^D z4q*~5Ce>7accn#Vd1^kh`ZRw(PaWoxNB;d*y67Ys9aW3xd5XJD)!NfJyO~sHNxq(k zN76AZ`8rOzt~@cHhfmXW8&z?;DV}rZB;QA=9)9^^Qr%V!9ZyHRsM0@814i>a!{|EK z&Z;4Mn(EACg2;b6_eXMnE7#ic^z$@>Wj~VI+~g{QZ##9FN}fY`YABzZQ`%6<+D`dv zxvmAz(}shpZbx}`D($<-z|Q7tA~~F;ORtjeQR>erHkNh)Yu0k-B!jY@r-yQVCc|Y4 zT_;D@_H6p4uWIK}@&wIv6wwWB7lX5uuv(4L6-_zVNHA_uRr1kWTvWL=JruS{0 zYD)=ADYZ4v9i*O^sBIbWzFa>{8cfig^yu^S*+ud{$mhP~bewzh)je(A$laafJC!;x z8n@E6>-6?iro>8eK1w~6YiUpBYc6G2@U6)QUW4e;mDCn#Z&kOAq#RGLY*h7Mt`@;% z{@%}MbSAg1v~WLpE+mJc~CX;d_SC3L71~fIGyQ*7zavG`HGnbzoc@CAhGik2#iFv%2zc>Sj zGOvi|=SjC;E%M={fxEu9ExgSVDPpwLcq`^$SyYj60YJ=q79IMtM_pa?>BKdRYJkN8JDPuY{S;%t>c?#6Bmvn8( zo!r|>Uv8w#&U~h9_NLt9yLGI+leq?KGna{C{WzQyZJ8}oDS_ewfZ56Sll1;*S~;A1 zlnk=6Y`J5ZOUCa>dTKc>B|She*n@ z*skYO53+=O?@oEEd5Xd^m@9D2%lw|J=E+#DQRvX|&N2!x)BU7hulfysxsckJ6D_HE zOM1;(Jx$$r^2Au~l{)EPpUkHM-_2y~N@Z#&(2>S|1tbXDa-Ng!XQQn!Izn@vt2wYj9V@xDk6x>DPv z{I!-`o>V+DqI^vzMZ<+nD_GpiK?EZZMSLt zcj3kBzFv%5=`{!byt74x_-~pX-iss zps#54PYi$B=^A&3vP$BEJLZl2k@ zm|^(M9oc4ueszZJgtY;ypyn3tb9*(CuQS7@GLNnT`b?&*n&I_n(w7qcRq?~VFVwiS z;+yirzWv&>8o4Zgh?UoRHwK00&o^c+?C1CW`mH%`h4IEXI?l-R+U-RuyvU}yp1%*O zC%(L6{dn`%mD_Bpud)+AuhM?m`1jKzqz3hh zw7N(t^6JT54t0)i-d}#}{{5_c``P<@Z$8Hux{vuQ?GX8=+%NN$e}CoMN!cHAr0dnD z=k+)$L4EDb9;$l*X{w&xulI4?7d)?Z8b*v6bU*5Y8J8DPs*Fy_=jyI>hIhx^wR#RP z=sWMO)w6)7r@r>SdGMQW>?U>kx}{)+p1XYi<+oI;zFAAfkCa||yQN0TY$vtv`?u>Z z{e4UM#NIt(-)&64N-i*^pH;g@J@<_&PaR@PSq0YTx0x6AmhQV2)boN_RJXLA7dXg$ zcj?~lt@hk`ySM6m-!}(<0`Km-``Hf0C~3Z`XB-r|uc?=6ult%VGIXjUQ8%bSja&;dvG3yfQKBQmOGxO~}bm#3ptk+RJ z(w3R>{*^^qyxq<^{rlz$*8jWPUC$L5{5PE`-*lFU8z_0cK1=L< zFnRM1`~KU{59{vD`9YS{>+bFO;m+IrRq?|Wx$?fA1d-J#z(*?gY9xtoJz9^D>fS=z!fyo!Fdoqpeq4tSpHQej+_ z6t7Fg_s#eDs;*#Zk)52$fSfn47B|3~R|iv)5qQ_W1VR^6Tk3L^-)i@2FJAxR+S{Wq z?z5i%Z?6}U^IaofOW-%hu$G@+Kg#!W<*UZH>`8xCNn?Io2Ck#UUsa>e>>lw<{Lq{ zBi}vw?#*{!zJH$Y-_G~%c#iSlaR8p@ z`!H$Ob8R$#9p&y??(wtp6_?4u-#n3tw4QrwY2$W&F63{gOpRAhQ95?>jG)b~c&$(n3SR=R??rM571^7 za~<`BXMHC1M^ITxo;N9ncL_V;MRG-M+Dn}#QqQs6Jxkm10J>A!L3-dOB_8A%A;BkU zBYG5XHr~TTT29ScNZPgh&7X!^kKC?qDElR7mA6@4oV|rvvJ*x1S*}c_S6Y(FS%!;M z>4O=WtJM5S+B2N;=h91N&26r?BVl(%!2YAF!^BlIpTJl4d6XeJM_}34Tog){w z(vZW54Kl z)CcuGNgLGxf;*Sb1d$;#;gOkc^8853?M@kmRJ2?50^Z_uQtzd{7?1c{YKNaSo}5k7 z)8xLMej84o4_19_dhew!6Df=He=+SIOMc4TOI!8Z^VE^$K-dw69m$W@+nG`1`#4D3 zMpDW`dh>byE@Ysql!CPKJmn!apawn7PxK7a{V@5wNRAkbxM-KT&R%cJC&Yx7)L=FB z5PPzfS|YJHI|u7-I#-`mbwdCmAcaOvBuCLKdKz78JvCWQ`iZm%3r`T$UUI+5NX{jX z&7^2c&G++J0M~NW_LW?1Pd`~UJ4qv|2jyZppD^vtQ|IE1TTE?t(g)*t4mCtyU*-#; zOuvn!_Ld_Q{y6p8$@fay-JTS!Da95+6cclV3Sw1Hu5#7)rj{$|x%Tv`;4CaqCm0AC z+evQtvir%)lk+KyqrEl#>pY(E)UP8cjqO}Ym`cB0=hH}1cBh@{)|I-6Fgi_7FQg48 zd3rlf8hcw=Z|-;HlkhpBWIfM{^4ZG_7E3gi=hSUF{eO{iM^i3ZkC{1>yw*~V@Z_`9 zzCX3hzrTK&TJ>aP(AF+f@_g8a_jb}l7pdoJYIL3cHIIzw zZCZ(LxRW{<=ZkzsQA7VwH?*GNT=&y(j$uI=P&FtcJM-&=XUt-3N&^&8GF1z;!Tkhv%_*Xb>U6~xH(<#Sy)2h`MDcP>Im{RPIt|MXYC4E;)LWDxIvo6q_C|T%z7pY}$#)9oa zN!iPF?D4`&N1ohH4XCi|d0M}rOBoOA2=Nmid9ms}M|?Ma6|E0}vp+q8q^Wn$QVVi* zIwhDpTlov`zB_l0lh1a3;(^apUr4LgYD>zn_fKRcjijWului>^$Xy|=*8tr)j0#-#TANj{8YXQp_X=6tU^l6>IxCSD{7I$#=7w6J{TtGtcixY9J(+ z48?>$%->Xfbu!m5uTjLVQlsaoLwD+i^h+9TRU?f83OgB3U-qOl{Ya61l78t-2}{Yp zH97W1vKWuPq`}mu8@1<2^JO(xOPr}T2=;ZTLr3bgR;@f_XJpgXs<%e+*KulL59>{f z$XZ0|-sE8g&^)YPiX#f@YVJ^UkE^;Zq^GzF$)+G+ez~zy+@hv&u{X>%GDBM zMFQE=?3t}efn0f+79k01$3$u^Zeby_$ewDa@67WrQj^t`X+GQIN2}4tqDMJpuArYkDzb~DnNHhga+iswRC4+}Ei<2PQi2d` zGDt+Ly&q+ID4)(#_wKZJEqB{;|1z}_L#rq33TB4+X-u_yJc5tbTmKl`^gCLBfCjwjx!Ors#Kzh5wywc#grk9 zeQP?YP-Kr&7x&an6oeMs=G(4}<|kHyZfpgSQ;7LYOh${9wVV6mR#s9oQOryyCYsl#GwWz|FK(WVFT7cF!%{lo0kgU&=6Pu@eR*Fj3SOm3o%=-TLzoB4}|dYjg7 zBn5IZ<8Ucgjq7PuT37N$-(OD+Km#+mqc_ZmzN&7<6%AX60ewas46U&{BQclObyhvx zll~T9Zx3c%cc(8Gt5l-E2U9yF`>ASNNi7n|oD!ople*BJL_(37B+g#)n6B!qF7UIy zv{Os3b8j*Ir{DV01LBHkj#fVz>f|Zrz8Ou6rGIRs<}ImRDQh()kS1mXax_DqbP|fd z`yrwoHM+!6S#jF1k-rDh+b8+W^4ZBxZ7uc{IzCNMEPEk2vkOR9gy0e#@5qJ0)LI0+ z$ob~{JWNfm(t@r0>`jZ&sZnX$QjXnBo6!2nqyE%Y2nWMf&3kHGraS_1W|6IB5I(NkP(j zav>$zUrF#n#TPDcmM_{xSqrqCmb8uZnoO(n@7Ge0kTZ*v*rL>2<$E=WsF5bJ17D1BO%|oVlyzW%rD7U0{PxnFqA+ZxfCU?_!GxuhGtMc+B5VqlQeq&e(_LxI zRlcXvA^WKru_zp|9CV;;2$fowa@(r~f#vTBU1nmcn?(#qBxZHXWv&p84s2kkIq5^( z3gv+rY$DozY`;Rih#^}KZ0<>}i2_=x^0knljEE2NTS^MShm$Ey7hk0=_~so|e=shY zgu=u`&8VC0MhuKP;%{?h3d|#%nN$ojUNPQ;HOvVy{GAop`=|)PVg;J zL3`DF5VZqpux$$qWR^Jv1u{05_BZFA@i(SSkJUUSOi*YZv$myb0Zf!oqu#(JecQC) zlXLkA+1*Hsq*gb}?>f0LvjidvrhJmz#xk0KBu3^|>fe=i?xr^ISdjO5^|`yMDPvE| zEt>6=HITO9&vT0cf`B~4A2S$3eIW;I-y8unt{@>2M>$HlJM|mTxt=G=fh^phDM7X)NSk|(! zr{01g#IuPev3eLdRC0%$IK*W=brrLqRwM+Y7kHr0NC>JbQ;SGlt?CEVo6Qq)ewKc> zmD~KpT`&)e%F~h0lsSTLF8!$dnf$&^dHRU~1Bn;)HIOunsjEB#W4DQlS%H+2bc@y8 zJV^haq$ZsFPm(wBI+9QN?l3v)yW7;7TKqiqwOJe|od8<_wKg*<5{39Qscd0_GP_bg z5sv~$5fE$_+FOe%q#&h-&zbeLW$Q6XmDNUl?t`2mKi=WOf7vq-?+w0S%^Pu=w! zpTS{D9!qOQ?uZ;QT4McXQVT$dmsS}6k>sjp$zBK1kkaHL<$5-=&ZY+yH&Y#vBc4zI zHJIh58o!=gF@6-~GCn{_3a}Z&hhgI{a0g=ms(qb4S;`l~S)gir@}EzAn0`0OeKj>0 zN*lV8$86eByaPu`$D;!v>P&w;O%CM9b?V=oxdy|gUO7bPDqoXP(5IujI@2;xt9?%?WUuuAnzJ5nQ;ILqN*C3bB6{>xrB0=`;%7lfd_N@~ zce@%(GOa**+sO+I#AJw~r02Y}_zX))q~ja21GX;+cA5$%#NGKxw)qh;1evxtG-asXYO8k)d&# zKuh)Pbkfr8HqxfOJZYi}1vKSZV>jv0t+dZVy-hkyaGIHkIh(qSrbqZj2!p=d=Vh?m z*b;q7wVpQ8)A=1b^9*N;jSK=t-yX_O_SjNV6XYet?649uFo73IK_7;mZ70vGj08uj z%@m60e0m|GL&-rns*w_+29vRQa9gPx6n-Lo*qTz-s@zzu-KjlI_dHL*Y!8wv_Zy8L z$5YreH<2Ld)}(1mzgdpN$aqGyH(z`m*J-!lRP&(d=hT++KCHdeiq+sto7s)F!HF!+ zuBvWMm}pHMo%}%6;q5t1?l#qd{G866=T*O(H4uqn2eFf2LwbHSt#ID3(;{qqdO*lD zFHfzFB^RF-GT47tcp0j5+HbDvdh9$=J+GT~NdKQ85} zItie>P5leTP69$Q{pBD4N(t2gLxmmAKp4qY$T4}@nwm@|kF9)$T~n)`R*d8RFWtJl|4 zKL(ernyI&x(k|0(m=$E|A}Jj@fc8*G48>>03#fh@DHjq#A-ziNspgCt+b4u&J>z7x z@!w!kQsT+{?mR`cgg6YPG@cadr)TUm5C*<6CBUxu4Q$1*2U3w@1y$S1@8aWRh7`X5 z4;od=2DqNqaon59tI36$c95D-eDnicmnu4!FN(4pnxks^_Nsr7|YoRrD-_PGhm1LpLlFoc~SNUx(;$5=e zY^Htu<95KONkxINld2c*B^8sLw2iOl*_QOhY{r1Mzz$$m!U(8Rq_y+^if31lIlpjU z(l4exg_Y)ihRg|$gW!;+n$!{^S|f)RkmA;_4T%1{!X z%r^srr||cru6Ay%v_ejkr`}*Bn@d#Ro}}j$q9om<_w3-XKxValP2KdUF?ECl?CG%T zb;=UelG5FpXSVZ&li=(Y{`xB$eu{-2&rbzQBjW(H=9Gd^_4i}W}} zA9l#lI84nJQcl@FHd2x?<;P=oz{TvLv`c&IR%Q>$#3+Gr3Bl*Rn9omUkF$1oY#Dpk z$@3!Rm`D63{G~8#YQIA`%r~fFPxUmlcsu!><(m%BmHxC>z|ml+q*1}%H_~FOj|pVN zjlTm6`0+6h22wlH$_fT}IRXR}#Beh6rc!4(;7zW#Cp9j`c+x>})$u0R$QFKW@E7=q zWU=RUrq!*f3C$O*GnUpcN_mU)8wr1&Z$>XUa*^K%b(2Zq_#Q?r$p_qG{_;vpRQ-wV zVvad7WHULT?S<=y3IJjsOM%oIjx3vWj z;@q5p)QKw)4-L7XEXm^x09&5Q3mMo;Eo`PmQDDun_-<0pTuM93lTa1*wyDgC%XZ>^ zW?>&DJz4{Z7d=5QOjRvK)^L~;R|8C{E$uLc3%+obG?u3BCo~I}%Y>dvZu?cA9j3Ph zP1!IC*0`F!KCGsivqA{H<+KAhe3hEA5%sR^&JnQs&`BTrN##spCka#LEJrHLW%4J| zj`G_mLhGOp6KM-E4fEo>=%}Wa-f+ssT>71YWSg{=5J}p-oomA>jS>i{VhvN#;bD_$ zkFBIPX}OG?-GUNzncu`mK|_wK-g%KL$Ek~D$*P56Z6-HZ88rc&qUIZRre&tRnKhoz zkRgh%d~Fcs>PVjK%vHx^P3KAN<%;Y{OXUh_C_Ui393~HBO1T}WF$)@R&Iaixw~l_& z&KG$WO@M&4&EOA0Fo_FF_I6b_v^h(EG;K$MLxZELY88QCNqP+k70Pm^+!0&Pat9es znbs3D&-M&sGOxLZ(YucF7mSLD$xNS1o*a~B+gNIKozfYg3z;RTT3gAR>rTJfoGEYA z7p^JT8HeR~o?FQJZ>u&0TV6T6iJ?wea2E|go?-&1fMf2U`GWnH8+~`1cS{J<7FftA^|hRrA88rBBOxm`{$B z)veT!0qrCqXsQjR9PLa=D}2f_-soN1)!3NV@N`b50t7haY%t&Egjw#)94~`$b{d}n z#|~N{)tb@-ry?;AGn0$NY)+pr#Eh%8LIuB0tyWTsFX~S@`wYn7plW6&n1sT_WP{Yh z+@SYJ3{WD_hx})fmdklO-^HK7fMIO%1VFG?lbXs!*)ZEFSi8v$0l=E@v#iz2lqgT< zHE{&@=NYTqQG$Fc&XnS*f#o59QSeAv4#~rmPjP*cYm}rycOj38IqRIH{-i>w!%tqw z9dg!*a+C#5X-Z;Ga#1_Itv8F$Wg$;gg19N)2;jBRP##KRH|x z#~8BK&qT`U%-{CP0$yZ z#c4;Jsq?8hWoRXJw11JPj>*KACxy+H_B_jtYd_=810o?HI3td;v4Bz_hk<-%^J8}+JK-L5If@3 zA~em$GR<02McVUtmO7B#;z6rl&XvRDZxe;*nP5-yTlaJA>{WGhYNQRxfpN3xHbTy} z3JEadJPfF++418=Uz`*Q_dJAKrED%q~+(e?RXu5 zx)0>JQXatp>g5>Vl3Yyv2@J>_tWF>7rw>>si0+AEMWOj61S&SAAVTAj^0j8%g zY%PDI++WqjrUe~yLMJR3uz!*#VFo6+#mn}md-vw5_S#%ds*%%nnlcvxhAmB-;)c7z z{?c#DRh^v@%1$aEH=7bY9dh7+EsQM@EZ51`S($2#bGVe+0M+->WB9=fRZlEeJSBX6Tj=q)#~b+x zt0-r~!o^td)`tG*OWojC*qJN>N{WR})LiE7c$Mln^NnI=>|v<%d~XONtZs9~*3_4I zN6odF_ze+&%lD=y)eZV(rI^Eb!P;iMI-+hUea-rzoU>|i_i#nbLR*+ELz^(E{L^L_ zIX;qFo~3+PMQ@&6N=hm|RStr3nqI+}!nw2V9C1hqFn6I0wlejzVJ##dvfw;^LPuqmR<75PoY*&k*D=bWB1DM|1iHSLr1AIJu-R&lcWanR7eIWg%%{mKb_s z08k$esyv)SOeW7J_i_{}ER@PZZ4!sU-Q<8xYQJEUzLZa9k_vj@^7*pO6+mqu^vCS9LBi7q^@)^xF%$L37iZ=`|b0jI|3q^FP zT4z)|z5`5gI2+XfWdxF^-thkJ^eL)B2_gF?Kh^Dlge3b~jSKonre@Y6)54({BF6o>T1l3~{lPdRVjVi?R z&-#in@yhx4?@VRH;phw)ygt&+&ddj*{)`q_#Ivy`tSXK9adFmdH*tpVR`@ z)D3+HJ_%(e4}|<3=Wlx$2?2jXk`PZqH{pxGs00^quwu$FnyAZ+Y|h?=^!j0HI-PWU zVRkzP4aB4?PnH~M4G>mnQgQw>!Rzs7)Igkso+pv? zu6!Nv2s1|V*vQqJl;r7W`NTXars7J~&pbr~NehR=%x_N)R8t5!wUN|d=JP{B_tlM; zmTGJtM>5(<3gn@_w3^wk9p#HIc$23blPtafyUZ8qXa~WJb#SF{G+rVyke`!UJ(=>R zQgd1ul+B6hOf!@y-`H`bzjl&4*{5#fNsDB~tAQsf$HJ0b$|q(#WS8oUN9as${CLn2 z`2pfk4u6;ZqC0IOVHfixGf`OFS#khjzy|4i_S61+qonBpn6Fv0l-8QJ%c)C=YtmPO zTtx}+iFf3FL8irZF~I8igNi{e?xk!%fH9!Xp6g69 z{!n=^?Rkjxo;`6dwdIdw2r~ye@|Sadm~%`Eu#EWzO0>6-kNT-SX-Ee3lOG7M_%-d% zKp-rE`6@^Af)C4%g0y3#^%z-18kwui#D%K<2w_`QyNoBW32*z=@uZ8OZ}8xqX8Z?} z2VWJV_&9&j^KdZLO;k-W9v9OhJYKz~FBoa8g`zW-ky%RF)45I$B@qCm3$K+8Stsjw z8(2)<(WE_d>7zp0vd_2XE}7Jx62W=M91vmA7%iFeWvzl=Xb<2Xz!smOu@_0%UX3Uj z2o8IepSZ&Urb%-+_-=k8`3OxF`*M))o79-TW!J_hC{l*L+?n)s2n zIW6fZ-+cUhZ8S*`F#TJf;%wVr%$(!o(wSMoUvEtLFSHVP#nyBrz5NhmMr#Dtf;N;y z9~R+g#p*W_el|~#i+10O^wW7p(2h|wZ6F8qemVE~C+Q82L0`=?C7yw=hE2YjoXQw^ zD-j7qcL2kZn~S+;5ZeQ2@zu~yB^rSvNO#rWADuagoZ z!wG17V{Cj-seS+=k(j+HW38I~4p+8EiWfOfOYE7O`Swl&k{X#yPqOi>eD)@~CIYTq zx$GKrW)Xu@s2d>gJiQLSa0~$dqe!`()Zj2RTu8dItI$HqZnc*lps9IFHF%SrQv8#} z!$O9TY@j?01`(oGi=EJJ=~V`1I2~0<6RG>tw4COu9pG1W;~}%J(gSgSc>IBt_~Udo zFtWG<8Z!SP?mJF|7%aM^xr%;9R@004)OcL&QuaNtbw~P;Ma>f8OTusTGV zu0VP%q|M%Rr*1WHYJLr;Ei9&1KI2Fuw zakD&%`jMN7cMipv-UFoq(phKl5c@U{qZ-%`@oLnKrSv2TT9c2s95%Uq8fMm#Q8#iM=~FBO)*wnPfL`sux=&J9maH{ZoLnUa3B$v_dz3cH z!FV3!n%~w3{*pZf)DBfC(M`Bd_*{BV9GbdeA1-8c0qh|0iPX_vKraF{lU`mKaGl(_ zHK1sCf}*UUEOSY#*Of{WWDQ@Y?na;Qbtd(vkI)0*m0pP|@(R3-|Hfb3k-JZG-`vFx z7)krpP5%M4$pM~T7G;sUf-F{ZzbALQ(xWYzAJ&2WoW4wI0h;MyRz8%2^$2Z+#p0*A z&b!Z%VFj`=I?{TP@vx)j)Kwlh6G)=8I*gv;6tR}!Z)D>{`WjzgI(08r5DTR}*Xayw z4}26M60pgcs_r7IpCo@L1o&F5emc^`egJ=lws1sn-;nCh^O-gS#)n58rasy$q@*|b z0`ALtAR9VzrRX%I!CJl?#KGOTlDUc@$SNTB=uKvX{hofckSo)v1xc}(8dyg!@)z07 zzOV}0QzG2BIM(p7o~C^_8K<6kt?&^GfFeUT<@ ze=TofwLgeu;vj`*@23t&d75@Ula{xqrJP?70BG!JO0ee~Bro`9!LT_1OO4_3^wRRu z2Xl&6%)MnbFIWAGdFr$eOf+ms>=3OjNI`3IuqV^ONNz4Hrzxlvy~J)xdwP<3>wWsH z$XXT+P24U_IUmLqf*IyhdFIC~=?&RG23 zXv(th*-M@Dz;y#B@$X+?WaG?wX(l? zD=$YC1}9v+#PE>;g3ip;?y81HRx109xK&z)nNb{8Fd)0Ieijyl$qbQZ4up?mB7U5i~Ozlb%D7aNdg9hxp=jgJ*fBJx}O2Rut<5KEviPR&>nyjD!eq zn26UFiE*~y(FKZw9L5PpC@a|M3?kgM)mf1C6toqi#ufiGpZIN9isTI*AqoPP&;dy@#B`Yt>m@EtCkye$goe9wI?-tKv@!0_w^2wbXw+ZPSXL+=VQ+R;jQH z$t2PpU4X?X!dl<4*Tpq(2M^>k_AjIwBbYVA-79eFe*d7)uu1Iy%c%(+-MUjZ5efD} z{sVNTlhlQUvz&YE8<;kI#=d2b=F{Q95R%uN(jg`+^n$OGJgfkLPgXDu*&N0qvxlyv z1cUM+soUitbIzMd7z64a-^>6A4QT zFFr;%BArLS866k^WRz}%NPs|P@0rOJdxhNCzP-r_+gOeq_V8QWXDtyPbduVNK{p4F zlizKgK<{Wv`RD09{x1yhtCTvI-u3o8yFFeiDU2|{rnpY|Wv#N!`ECc20#a*#gm4I} znap3Mm$gz4!yJXfz{Zfy_yMtmd(uy4G_E2va5VS44hh!Eu4lor_t1rKV0K+$hZxq@M6P^My`p z=a@~dleuawI-^@&UhRc9tmd>++)`XyhlJT-Hj=L#)kodvJo)$cdQEVb`SO#jhg6V6e0>NP^a3k@4r<4y z>wjTdPxlwCZwI2>M2a~yF| zAL9x4qy|H|rvLcEut&}A1|wiR z^>TU;|L%I~Rp>He!dW7$Njt9y4zDM~x-f&;HZ&NI?1rvrQgV9 zXLWeNAp4JGq+ye&EDAd6VSXN_1Sh`GfV|Zd??9NQpiK;of|j8@(g{dJfq#Y7YbBuL zurv#H1E(U9#g^IopI5UI&)N#@$Zun~nx~*T;seC-V#U$3dcf(%c(@OPpPYloZHuG&;e>W^;3%#z3Ks zVBELld04L14*`Cj5uwA`1D&tnbdMrO&}4-`o14zU;F&-!bG8U<^CCHup;qg7#*M!N zZOd+Onv&3US$t%Pk>Zbm+OW~!;k+U3$<_N-d5@mu?sCeYe~6fb@~!6E40gtfJ#4(H z+j2_k%c$^xh*2RG?MA#vW(+T@7rybWcco-}cRMY8+YULMzpWq=Y9eKj2Ts{w32s&W zXvR4&Nvt3#eUVyO@uD%=7=lY_SFG~llS3rdZ`L%)!OrojMF<`JorO>SLnM@9-044) znJeTLRD>)T&tGO8Ox>OfC8vj-riPGPfy!#Zu7;-b063pW(5rKnL@o5@r+tZKL=Pv= z)eV`E#wV1xJHMTgHJx(A;IIfF0*-g!4|cria@Au?sT--HCC)Tt1G3VcS4D!8Li9;3 zfmGR3M0w!<=pB?z%&Y6vktIcI>PnrlC7@shpLRAMgaX>;VOkc&^fwv z(YaCHX}H3!9g0Ac??_F=4%KUlW{x+spDRe$*lyO%Rmz2bKFwA1Pvmzxk}(pSdYn44 z3iTUI;d$CVl)n)f^Y1sEY~t7eGD_qLCZ9E+%{(#iK{L2DW2r})^V`150zvHMS)Hl+ z1?vPK<~XIWXQ2hKDxMOS`gY3TKZOAsb11gMCF}z`RsBRm+J)AW`dQM_2aBy$tWvW_ z+%DD+Vke)Ce%(l}2N^*eM7xHFS(u!2VZ_T$CMBE6uFGp!uwoYFL|QPPo)bGEURH3o zI1MZ_D?vF$KR3r%4WjpGm108l3Qck=?SzDpGInyiH+{C?=JS4 zbCqb(qHsNJ@1kuj=QCf9{a%PWW(hwq`NqCm%4h4yxSFSqtL@G+P!42#Sd%$}-^W%K z89bLIO}=zpSTcp*+S2FM`K_Wv_>=y^Hi{Ywj*(+{t?yO-nVZIET0u7*w!&zO32Q zhaC!QE!>2bJVnnfzKGe>%J|bC@uDC${BitL1#eKd#pFe%?4`Y(siAcZZ82kUGR-V| zu+>4|TTa_Y(l6Eq>Ns18Ef2Ta%rzRew{;-fizXEp4cT{|l{tk0h>lLeK_PKjp;sg6 zb<%}}&dO1@u9WL!N1P~{HEUs|DhJMgUd?d`nORn(;AUDnniduxvU~o*pM)Ta=7M(6 z0>~Pq<@|g6Bq?}4pz!>s_ECEnKUvvzk1{u5JUpXx-oo+2Uu6{;d-JmJHM9a}iEPAq zu!mnI4K2$2Wlg~B(CW=Bdki#SF4rL^^k;J2)BHrrgRoTsd(zSNP{#L9-0pIEqT6Ej!6T02W)?+A^ylAqRQVDl#fP`HUq% zCbQ?tm|6`^+tVhxm*_OOA+MAdXU`>n-m0V2kKJRZrH9;9ZQ;u*K7`J+giI++GSQZ# zr+pCiDfoa!)1G|zEPK+Y{L5IxRtD+qh$L;q;<~N+&5ng-T9_m>A-*NjVmvM5L4!eh z3dXpaIkl8_iUNls(KUS%z@V2`QwA&p7Jisg%pYZ*=P$^I6(uDfjq}~`(fJdh3p`z- z_~=pvpLXARGZV>u95&cXv0ay{XW0&@|L_KU6Lr9j)pnd8G7q+cV_If^Tjt?v{?gNM z3(|HqDK@M8)Y+Wn4=~p-rT8r|y86-@hgO+y4klr3KrQU_#rAf#W_AAW7gj4x-Z4m| z5+0fuOI##g08A1(I18Gt4aJwDSQF0bWwr1%!YXQ(304LhaVjb89>ojB-r^zQ6NRO# zpE+rylp*ZPx@5WW#j+V{{l`vLJ{OyZ6{BP!Mr^s8YTh`6y|$x@jU%UmkUNN;bQibJ zw}_tt~ygq+>i8S-@B2had>1NJsw)lI%Im4%D|-H*M+*2ZIF51*t=77GqD zM!MMuwPEApH|cNvpsiN8&^Z#L?iX4NPmoo{4|pYugVXRzuS4X78ELVf*a(p4-pmqvd*Rw(snIGo za|g0Ll~&_K@QUyOVrye?3wR`fF@%kaGjK7Do~2y^+@Lbn!cy+TdGV@7Gee+n^l3bd zg6-ksVOU#j`1(9Z&r>S9iTBisH3OjiWH`H88TJe(F$&Vcu;=Zr{C~-fX3ukeRpro~ zlGrm&gr)DW*6fn%Cz#gSbxJW$g*hT38jt;?8tdcaPrrhR*kvIjXK5+qSuiD}oxi*_ zPqIMZ8ho#-)hsLgF4!Yo!;a?6Vj2OTeqp<@aqU0mS2?-0@NG#d)+nuv7LTc6m14`o z)ala@bXqpQ7fysU=B;Q4tRn1VY5CvC1t^7?DS)obDEM3PTU{q5M36kC%h;C$bdq0( z`SS7x(bh%A@p1_uzD)b++V(OLBd}$>Xa^Yz9K(r(vckl$_Mr>-Z&)_wAFhqCx#QFV zB4AcK&)M3>M;Llc0a6>MMM@=wwy#72n#vfi8}z+#uL z!|{0g+fy#CoCBm-(Ds;?jK@hzGgeqtB!w6ca};Vq`*I?xzTL=QB{Y=Hf)Qq)3v#C{YzpJsza3@x{J8$tWJlQ^L+Le@J{uAGcp!R^XEzmluayVj&(ZP?q}Qd0;V z`yX@Jd=Oi~3&5(xS94Yn-H0a}BhS2{2jcJzq_=4-#uR@?-$O(&^mtXv*Kn?|plAyh z=>yW&JKelz=+Dmo7ko=*^Iotx9_L%6oloY9$h604H5t{LPo25ySVq1`S4cHE;Qv?e z|9bF$H}Zd!G4LJ#{gX!zAHDqK55N2-ud8k}n*Q^bpS=9vKjE8q`t@*r(_SCv6VGW^ z^{FSH)!u13tRtcV$!SciO zg{Ao7Z!Di+kM>Ns0Gmi&rdOz#luF_^!FMdRM_q>)A>25VOUH@%&7?aFttkmboc=e0ci zC=S%XrS>e=>2ZED=Fr_FsMM z+sJ{(>0YOa5LRVr7ve+-i=)E!d{0aJ)gUbdx%;KfQO)R_k1#Kbn^+Yz`TEiZh=TY* zj6i0F3gR#VVgWjfE4nTBg*|d~19IJWmPK=(u|N$eK*nZ`ij5>@^Ipz1qG4!;2q zo@Ahf``Kiv)r@;25y25c8xayf@g^bD*?FiO61Vwm+Hm{k-)Dca)08#;@{fNT$Ht1V z_I0@3LUa4_i8f1LC4(`#N#j@d4G~_Ra;JW8-=9t1-VcggUmX-O)Ct|R(K0A>W}ep9 z2gNGj^@9+JrFHrmMvxPdtN?npHSZ7ydj+j!G4;ot;HPG-u4PE@6Y#S7GYs?;s0ew0 zTP=WoInNj-IEbZt-@O6E96za$~VrYXe?Ne@o?fkFFXD&34lFvktakk_a-;G55AweLJ7qJiOOwD ztzhh8(2X76J3Y;=lYf6F-@p>;IRkb+4+~GR0fGw=l)zanNv^t#b7#$PUkPuhL(&k{ zg`tA}fE$`F%|Ve-561hz7#NlWHFMIf-g>zACR?HnT0z!(*!-%sjaA`3^>LGK<*^p z98;$$1Kjf7hXT#oKSFl#ThgbS0%bwn08wG1;NFQuCC$mA9<17LJq zB+1g6`h#ZY(yzi07E^!0W7KG&3zYWGL0G&R z-)0=ZzW^EA1J#~M%OS4cv<{`ofuvvxVP_mPLj9AfXS2u1NA`2zV3r>(2dh<8O z06@dc0J|YaGPRxhZPaXUz&5h@Dm~>eLMa(&z&LJAY9!E_I~o9lNXt~9zUg76pX26? zJ7-CA(jfZ)7}aehecO>Ig}HJ9a?m3C0R(`mLRANot7GjrDge4y`FkeyMZN^&ng2{R z^euF6fuTawxO|A_`LvNyX8Z>7n^8-dwevX5hnb1e0GxGPt{14Nn~{E&-vSrys?({h zmFMjpfN&Ob_`}bBm<)Eai-@V+CRP|e^-+piPyWjKPmfDqEShdQA zbn-dWZ&J4By*owyE@d*aep~ui^$p?U#E<>-Qt2HF-sWBMKg%8dy>ibUT&|zz8sSi` zLu_~u^gmldgymN5z5iX{>(#VO~_3!^CDC+mfzuBktoRj8$ULIve;Q?Wd)w4&GPCak$@7K>0+V%RuHR7j& zn7z1rzOC^^_57D5{vQF3T0lwSJ|HXXO5AQ-n_S?iEG>~n=vUl5B#4xDTK5nan5En) zs353zC^NTd3dm|H&n`tK0dL7CCwAGx1;xy!JiDIIb%wCL1_6eGgLp-wb*LnW`7*yz z(VX|!QY!7Kt!91UX6Lv1PQq97!c z4K7Ezj$Ib`>_w<0^y{z^A@&^YwkH63IFs$q_PhB!>u^~_HozuI10f3x7T^h>1>Xv= z5Ojdx$)NPIHG+~;c_;U^8t5n3SHGbH15fP*h*%9j)qFp7z^F+Si4#6dgxsA~hDM z=HLPZRp&J#kqdfrn1h}%8?N&_6S_Co%>V)WKvf5>P^bkkq72hAxd1sAxCLma-rrIT zb2JNjr{nNEw)!W;m~1&seO&`tSDt!$!MI7bwp~Z4PakCmPaHiSHky%0kXwpV(Bph~-aJ z=S!s|;&u@pkWH*wJY5PgAIgh-f`KxHDNPuqx<}j_{svYcPd2VF-NXqF>V`i}JvGE$ zKaQWGgZXCJbQH+$e6i7pC|vuwYM8z92-d>~=Pi-=iJPeb?g4BEI}5`G9*$uSX~Yt- zH}iOlgrMXW-k(;?<GPx222vzr9-Clr3fc)}!}sDgEtQ`c-oJ-8h+(JOIRXjX%#Aew*H6R+JXp_f}7} z^I1Q2Z;{3In7-Xx^*(vOgJu2qW)p>43dLg2z%PqpSHhwwa1>(RC6=;-dnu;q{&d=M@nm)zN&7N!cG6A*ckxJ|F(T58KOV*qe0K~Z7fh|wUz zlk~!I>aD|hBiPy$a0;-4v`|g1EA@?^&EdKN2OLks$H#iD-=A5+Ig82Q*dVk3eI?X` zCEb~)+0wj*)G|a%&M4s~$WoL|3M&O0x{ox-(FFPB)X`F@gtH*xp*AA3YcbUr(F!$^ zhr=j&sZ*gNQF+Icit;Fwk$1r1J}hn`3F(U2#JuCd;Rz6ES;7U_?F+egl9YTM2+}-~ zo<{D5;&@>N6&Lz(m{LnH8)Hq_4p*5CggHVfhYtu!pbk4)KnOc3Dw+=pGg^2#1DlV> zkz70w4s>QV9Oa6Dsjgg`&eemAQ+INkNS&$G#UiIRPvs62iiZJuf)>nI>R>*VgdZDH2v*AAc&{?05pN!=N<4xoWM6~x0Pz)h%s7z*Wp z1;+yL&a979jy?nKGktrLi^BoEM-c%Hy2E7P+w4zij5S2h_LKwx+R0rZY>v6%P33D7 zkn1=@zEg4z?VLh|!q<~)1^I*H75X-F6U4!zB;ZJh)335jw9 z1$d|>^2C;iwQ-g5(U;6BN0-@8cva!Tt<_(AssJZcasdq_8Xy21p_bOXBfzwh>5mT2 z^d;57K>{uH`f2)#xorKTJPqZFqfDBswF(tQwij?C?9j2Rr~;R%pKvzbL6m5uLT}H4BCFqU6*`bn9 zPLvCQ66N@*m83^*@EkPQikVOQ$UIU^fC`Va*WR1&EBWRf(4$>hDFR*jSLrT@P>@lt z7_i4<=K%0%5(4p#a$lW=4k1N@IR?ajG@pQgsw3_w@8=J1uM8v3RVRq4Gr8~Qp57*;y*b+PE+i)JH~B9t!M-=2k`eVm)>b~((JwM!ALNa7>unT^x~#99uga1a_^gkU;H zYdKCs?XeW}6rG(8%fQ!vbO3!vZ=!#gVIW=dV1JEd>P zI7cTG z^<1o4Xx<3g!RDAwe}ImKzBth7HqRaBiNoZJM@4R%73ThUp0>Ii8zq1cn~8?LmHBMm zU8N5EHM~1$rlhklVRf^cky`vt{9op~7gX5$=?4zsKyRkw@=-eEkdv6J07ai4m(L4_ zNAL)aBgsMv36c{S0z42bkBMaOAuYAqZc2(dycsOMoO+uvo`yGJ7 zUIC8dRZS&7$9w=y?1-Hy@jTC{8+`-muIR@Iuk_;Hu?IO< z5IpG0v&o5O3eqRbpC)hb9K$AcJdl@#lKc(|>dZAQEAQSC%B$~$bDUTAxF{Sb!8_00 zU?-MJkRorm_o^MHG_*>rQwJ~6ejS5ylJ)<$D57&|6z6$M3O=v0W@3pd=*ZvBqa_qd zBr}&I_c1_#`A7Yx)|v>+LR?X%u>ld+@5BMB3A393Kyf9S{l>7w^0eh52l_-^!nCx^ znN^5UqA$Hs2G-BuVL(xYOjV3er*BY8ElG>qMA*#}lxPb~6fQ?A&y<)pb+e3}U+AQS z@>Wq;I+iZ=+0gQe|L}7lHR?H+1>S`brQ=*%o0KV-||4JFLy(th&>2w|Q( zAI4nXOB=nf03cTSjuIe7gs>{{Tf`s&3qm+g2Iu=;VpSqEu6;IljoeeE<(W^6alr6JiL_78YAe4N#jX?ml~Rw`x6_oPc`xVn{=(3(kO@3>4RoU;zz zp>uil(q^(1$Z3~jc{sBAFn`lPVRwd)^byv#l;8A43>Q`aW{WPGPA7F%i^i+lVI%EH z>D{2*uXZM~5$@&C8;5P2=Nfy<`xVLF)8t9wA$G4s2-t~geUMJTmORZD{hrO{*dn@@ zaAqtFJ7QrS(XndXPu&PO*d>l8clA+9z+qWQ-B1=K zFd=St)CI(>+8;fS%;(=3b{g{y@MDUjo(Ro^~F^3olkqcOs^$(kY%pZ zPR9!kB?sz(O_e@_X=H?G&KT#`HEqdEg65b+MTC}7Nazjp{XTdDt-dPara##@MJ_n}#&M)rZPbs&w9*zYu0c?=SL6r{q!07qz=$qVGq@}i zZ!AyPS|IsmH{8j}+fA;H=#_#N3<0IASw(DT`twX?FI3dQrQ`vtfkMeAVN9(MTcFoU zk=x{A(TmAtEK{1QgY5N_RW8EGVTv8;AzHno72!jRx!YOwk3$yRC7FFHujzC25#Inx z4!d6t5FmJ$_EVi;$p~AmRozxoE)-X+hQm}`YKoJzcd6e?_j>^_fae`p*ji7RQ6$#r@JOzAXE&b&1l5*4&#LBC` z#KNGCQ*O++<9xEt?A@D5%fB+7T3BzQ7_1<+`(>^`k+1TZ{{I(K0=6tgb0jSm@K3Tp zS*Q=x4X-nV0XVFS?1XcmPqpVWrFlE)pXA%PvO3^m@MuB%c%g6zN4f4LH#j+K@-qE8 zlN1hbn@b9FoN@?<9B~Kd>`I&L z`o(`^-P<<=vcuchdSoi~A1fB`)m*ZI9YDr~3gcwovTGeRLn6~TIx^A%-W?n0uso|9 z7Vn5w6h9J^2a3|Yk#P{WM>~NNIBEsnM1^0@XZ_|7&70K7ZY@yWI3K6>jv4T_TSp?b zWG3JUGl3Wg6ZwMT9#^9QIRBC?*@sCA5LX2$BVIgX+px^u9F+zvVBTOJ{`c3 z-!v>cq$6gb{VaXx471Toz|a&R(@3w(TOL5~eb+MAwT|i!KjUL`-~f!8wt$yT55Oh& zk|R5YgJ$)ckrZKOb_&p^Wt+(Y(3z9->1Sll!KyS=Nc$ozY@jL+$DFzjh42zgQeYx= z;FEXU5k5LJ(2mC6D>s~MdaS*Uw4F@fF`K+x%PTmBa!1{0fPGp2|1MyOg=ynpm%B+R zD-I`CD(4S|ESIcP9H_Rv`F)eDSS)1=rBD}8^(;BD&=ql{eku-70lQF{ zI1{N!g}Z}0OlUi=9XD2}D;2dnDNGM_>q`^MS#ry%87>>(obv!U3Xrz(6YFQ07{uXG zx`W+C0b_LFxB}-H5!b1UGk?T?F60R(dI=3YN~)Q(1JXh4iM2F%6c5`uGh!~eV^dD$ z>7uBBb}*2kBc_s5o=jB}*K}sIETq=O%Hzmo*$`06Y*`Ad8aewL+|220>);Z= zZvxhGAh1;h5X_~H3^J3CySghsoxNDN+~q6{SPAzmI39Vx#!BreGz;hRU?6jnf!P2= z$l^qzlSqe>^1Pa!)2SV3dn#WztInnMK2Xu<0`$xW3z-O}Qo|0!uL=((w@s{(_xtI3R zJJefq(|caHqu>YHKnQb#5;85Ri*sj$T^A}tF%q7or+V^?vA67j<9f<@t6W{wd5R(C zupR?;GLjjY46%;n=M+35+wz`FTRA`BEi?JdJmGc{glRs4=3zhj+uN&^<-BX^tKRXR z2u%F4PN$Otwni2%vT<6O?c$&Yt^M$S!0~&4v`Qpl?e44M$ zfM+z>I8V}-qp1T4FjS2pR1NY47GR)KkvW#BSwrc6qYX9k1dygS zTLFf{`<$yqrSQd+D2`$wyJQ-5lB!SnV9qgVx01(1@)}H?)OsoDoNfuy5q1P$WmJNE zNamyDz`4V$*vyJw$koj}O}=6Fn;D!L2r}jXgxY)O3dKXL3Q`6sKU=L0?};h|pOw@F z{D5R&ukx%DX4Q=Pi64sGBv={FI-W0%N{)YF!HanguIfa5@h6~k=wngB&(k_gSPpYe zLHKbACVrIR9b{#HgSufojMF$`;9moM4u5k9enzQyNGyGYvU|AuME@N1Ke`XCc)STB_H!0g0VYm6qn{G(~iaps|W)r}O z?C1W2XSXC3`Tv34GBaHl}S)yZhl6?4hc$|dt$BUQx} zp%FUKTEM>uW;JQgX9O`)f%-O;7J@I4v#d#PsPjgErQ|6v3}MHaq$IsLD?+B65VM>+ z`fb0OP5sH)8P-l>0L+y`4?w5(QSlpXX(4k|q>>fNKqnQ+P((@wr4!TF^DHBOrRpQN zd|PTK7|khHPHCfQ94Ey|a<;=*$G}c|cqyF=uIwAeXECX{|Q3aB-0<;$G}4z`Wx2A|IU~$AFs4 zRimnIhykLo)WHc`PEVbwMvp6*W6t|VKpenT^TliwCnYY7!REapXraI;FwJhR0jl*m z0LgyJ%m8vi%8^1imbn_qLObk}q#%PhIqfB7Ei9*BfyTS}8x$>fYm6T1ZACOvv2zR@ z{siVPLy05PnRKJc$?4^S^{fqqnQ|%{`TyMq1Q+0g(tkS{q{o&P)N-~f=Ol|~~hZ>;71_8tvz*gX(u zEgz@GjAwiJb=HEppoL=lyvc&6O)E$WR1Rmzg2U-fWRDfbx+r_HbEavtv~Umz+6||w za8_f&Z?T#?PHjfo@@6gJnuxwDsR0j2d7l)AKVk;>jAsNKoP+N2z&I~lin`-8^S0ii}c5phYd#@Mf(ouPYwU*VrbIqqCwMX9*%?lFwSTi)deWOTN-_w5#Dj>k zDOYYMGDsXIt(MMT`?`59SE@cC+m_RR$bKwMI`(q<1{Jn9_2JBLqF2Mr4t>{adm{Yo<{!7yA-`&BQrr6-+YC+xWpLP2J9I{Rp6Qqo7u%H=IZ zbS3S|d5i3-%UtQsPh$#-oJfAa4}Hh^L=WUZQ^(%qhj1)#nq9%WjL1zZp`)RMiWvo} z(z8Vm7kzy`pW4zM>;wpe9f=)^&}Fu=R-g~%y&~pv(F$pTq$~Mq<+Dl3-pI0L5sl_a zZcv}u3m0h}2+fJ2zzFbqC!vN9D1HK zMv;CC5T8vRNG`Qq)0{MT7W&P3_o!v&7DpMp#IC3X_Wae<*3L_B^;T1n&-R+t^z3*_ zna#+tkL-nri{_>^CLa`WJzMsQ#q^#aa`Ft#$m!-RC`bjD0tqQnn0;PiY>_1S@yi+( zwqQNc4U26lAe{`c!vJTka=-bcPf{P+CkxZ8Fq(8{E-kv_Oxoa06x?J0boKxzD?N{9 zLvOc2kY(5^B6R5u0D1jJXOw?S@@18w*MKqY#@so=Iv`I7|HXb3pux?C25cv=JDR^R zfQekUCO4~DZ|%@8%<{A30$XszgL6zl%rp53Co{rM7e#|~GOn4WZgh7ia++78$+6%& z){k+f1CvHjC>92Aw>dRH_Y@95hemAcN?I=Iw$y=@>4+tKk+Ltdv}l#A5t=J`F14(3X=q5X*jL>QTnZ?Kb_%yXnn#R_9Gm@)(#2<4$EBumgaLzKKq;7T z`gv3MsP8}M1|Ila!XjZDz-8Qzr?ncMOv|-i`yjq-0~KOboMpIRV3tf9ZWthl5DNSW zIHmeDY$4dHK~eMrKDZ2+rSk?E-37@E$3%Y!P6UpWh;A}K0}Lp<%H6zwa2@*1Igm9>K*8K7r&-$Kx4sA*5AD z_2z%Qw#TLjax8GlgG2Iny7GGc?id5#;MQ+8d>hKcxEs}}GnhygQ_DZ4ET(MwNeF{$ znkfnfqNwn=Er2lo(*ssPJ>VvR2&WfEp#O2nb3JE;w9D1;_;ZE!AMO*|gp&X}WgTc9 zcj{3f<>)Ukr&s+pdiK|S|9!vj);i;GJ&QnSLNsGQhz@8U>5!rq$JsR1KP`qsQ8QbuAbh75o%!cQEmqK2j|4V;4p5TwOrT+n^ID?hGf8RA8 zb&h!eI#AbW`>r6{?4oZ793P+$Ae!;OodYD!L-3A!#!(uTh4sc9;tXtOEg0sqyTFwI zgMMCqyRJv>miv3t@q#$uCC~;Su6N7~0lGh60HhX{PB{{wg7GFy!NzmuJx&ftVvJ4* z3bXxlW>WE=C!UTbfFd!NP1{C z>I0Exjj(=M$7inkw$RS_v-Vjbj4JILO2D|mje{Hq>d|g%E2w4yM6M6FZ5|V6cgD`k z9Ro+x-5HnW!14gl?B=AQ4)D9+6#KAsRJ+Y4>%YDuyrjvIZK1d^86iMmM3`Dm=t`;O zIO84UH;*);>bC;R$N-Y-TXRuX4lo0hA){E%A<%KRZ=7@{4v)O5M~yvRf`atplPE8P z`TeliCVb>!2zasW6Yy#hm6s|Jp0z+Nb)7 zszm;y(U0U31YvXfXtnRN_XhtTV1KfSwaA$g|5MXeQTr`WVIVr0Y$kEI^gH2UIj--BSTG zAPUGdF!^@Ykfzc>ppLYUz6)@7)^X-8t)Cf8lXH^obott{n)Nch1eo@60lx4Q_<|&& zTYTBKXlFju7Z=^l54C}Bf)J3O3eui%M-}DkTC2(z-^8q@7~;(!J-EQgX{)PT0$EMi zaM|3KOK{|?BTaI%Z(De<)Z+U;8v>Wz z@-N+hmEKni%JVo0`9%5ZGg)55a%2_USfU9}%WxYk!&o4j9VwOx$GwE*{E!WAx;~Mp zD2(WXZKAWau4{4UI*`W@dKjR#e|WZmYI@k(JzGy+fjFE5Sh6%BA=W^EA>9{Rc-ryM zjDy}2adQ$4TN9h0SuefH9!`f~$>JrVlb|NFU>g_50?++07(Jzy8}y`iuR7yhN1Mv9 zOzDo3HYpO88zI&`SO%f*bFfK31OhM`h=W`SK@26iR9BNv&;lXhR0vp9mL@8>T+aHY zs|_A$!cZ;9m=KT*W;{H;r&K~$vGBxOxOe&pPqliJ)s{UA)O|<8K9!?;*}ofIhcz%M z{O}K1V45ln2}8K+b5DDIT;CAym;$mexb+qn$^80_`hX+tUTk*V)n0Slu@w?wlsv$P zOIgN(=y8FO4T&&P>a^)CI3%aC%#*Q`KN_j}{I_f#rbVU#DIPQqiv@w;Oz(CE86@tL z1^?q>8>d2`F{x)3@PE$|F1vnl6jp6`UH41jO2vMKBlIkuMR>8?cg~g4g7AUM#bN;~ z#L{Lb1^6NOz>Vu!>V&(_^ses{gnzE3a5LHp{q|s+^JuS@oOYxT0;eMgFpJD~_mKnB z&vO`qMd{1ZLzX^U5iEo=$QAlfFRyn-sISDSlddahBetWz+3FjZ6Br7o!JUBM%{p=1 zyX+$$-R?+14tz$T5Cw{dC*U+0U+^ob!%E}JN#b1DET!ACezhyfn(#F2!~VA!aXSQL zLb6v`U`2Rat7&kgyl!?KGh?-Lm=%(FB|^&Cm|UQL_RdN6!D7E;>q-A^);fi_-!6Ap zZA8cuj(fen;dsKA01H+Mn*cGMFwU6&Ju3%GHPdWQQWUU#TymK&`W4!AlckOk!g_8P zhKZ1v5LZC#s!2(*v=sspg<{9eJk6=Hf?n>*V#542{41(PPWJSw90UA$moBm9iE$K zCopTE&X4*Z1}bF(A}ciV1S_tMG6J^pt*(!?F@GfLJ?}m$E<>ZGWipzelAJm)51d!K zxUI*FZ7hMI`o^rcP|{Z&4UF)~Vb|pdDhkfw6&5XB-F*3H7Ab`Bb7#Q$!H(%GAj%*M&m{tzP;~*ANSrUas)SfQeq#Q=xab^G z6u51qsqQO|pNJnPB)bVJeAxfH9V>t9bFV&iEjy9$oYrKwqquYu$vv-@Be&7m5+WE& z++#tq;KnEvlyK^=YVUr%BHyY>+u4TOZW|n{;zdB zj#JQd+$V&RU+ah6>>v!47H!9|Pfp?9SyQn?AVc$syXxNaC}zB?-$~KOL!#><2la~W z#IKN50pSE8!UEjKr@kZo!~C?y2o8ZKGkZLDLRh<+&E_8-^God!p4&nG>YS8oc8W;= zqGbV3T=vJBNP#Ha;+&f!N+ZoY;gaJO@Y~Y0Ms};;ZhCFc1=CU&8DaKtdo|~mt8YiO z9^mN!RQN!ONzbY0Z)|i%PtI^nFe=`XQ_fE^LI4^(n#;x(J`9*F3B-9pI6lRJJ;~y) zS+m#G*rqpDvTz)COyPfYMLImXD*H0Gmj*|;;;)@>o_Nfco1Ib82@vsdSCKGdG*HFp zZ$2fzYbCp;@8}vH+9V+W1EsLiVZFlt(?@K>C4=Uu7U@C-+-JSg-h(XWISADx7Guhu z)IL7YUN%^hDG8(rm`CO!AI=yx?!XI15gXl2N>@^QP_P|_HVb4*!$!qpN0WaEPG*~Q z1nh>;j6#kMmItMeCBo3M+;%kf8Z3`Z1@iN_@jm_RO zZ*~nM!Mvkf6slS?SF#bzzt+3dHKh2Tx(|nc-&fi|cK=oD^%o|~Q;smq7%O@zdpN^@N%6wq9K6H{X2SD?rKP+WfTFr`aRR7jxvvYg3QdXnM5V1!X<> z%Ag3V$bj8;MM8c3XS{kOi2cW!BZ$7~Qx+c8D|97z@2mQg5|T;)SV*%&lVhy$1VPDm z5nj{#UP4VeSq6|0f zrY99!-}n1ng3=Tcq0!L)JR<3$?h+_T+J;>dtSk|dLX4^#1!Cv6ash?#a+iy>QbF&# z##ud%soUv%o3#@FJHEVihaW8(5+{POtbZ(e+j)8aiXpiF`i-*DV>90LuQlSfYbgN- znxvBBAHL5@`!@)}$^+C;ebSC&?BV)BQusYUtrg*B8GXh82-}$C@kr38;UeXyyLi8> zS(KA}9mOFi_Ka}0-DST}pN33Sg{@bP4%aKHlV~QIrR3$CQ`w9*$F;6&!$xg5>#itA z@jg4L3B{N|ay|-j&R$I2Vx8IO9kHvmN6*U+U(ZrpC@6Ay{^!fHzvlz!7?^DI?)A#* zV!q?tMb?NP1!FMQ#)q`2-NuvR_~L!ac`7im!BL+mb#JBPRu!Po6WF|e& zPK)@FDq#lmjCj!qJEVrb`_@^gTLFd&@!WT%nNfK9%igE**V?PD%RdqU*u9SH8;}i> z3(d9LJp_8cs|V3I$6fJR=koM%euX0NRGjyHhu@Cf=YfF4)M;MpI>0Zj7+(%n!Fx6a zP$$xY(13POJ$R6t z@e92=2$|O_(<1*zw}&BD5DRME|(k71;K*tkJEqaHu@cz%K&Km!eyDY8+RU{Vu7uU2A; zkxAmD>_zj~W9;9G=pjd~tzs%khJU@3Iqd2uMg02BZTI+;jTUTgnd7M}Mh zDhy%@Eu^bMvF|TqPBh22HN*II@I@p#3`q-l_Q$=WU#(+27BROGDY=q&f{sN~&@0)6 z;0ZLCA`9A*{froXrb7I2L}R2+LH)q^>y!$r*fYyuw?lIFiz1Ma@AOL z2dvVMvIQDB{<$>XgDmHN1Lp0qGJbaY&1(BDs~<1dR`_z4Bqn;9F+85msD>=Fsg09~nn~-gYndcTO&-J>` zce*Z0nFr=~*$Yp4=eGV(xXpZoKPW9IQb1$Mx8g@Wt|vtDSJ`0XQg5ASlXiNZ_*NEC z22(r!Q16*bR&P|wm!prcp1qKMUK=I8K(mKr$WXN5%+sysp1;6gK2+NqZTgpdS>qrzD>X7>Nw7y>Hct`~7+=Jn?(d<8| zT_Ra{CC?fm23KCKKexKBSt1piZ4ch5IV!v6fo~ujfxr9xr)+|(%a$Z(8B*3xi&(Tb z8rysZ_=s^NZuaDMKGtb=Lr%;Z4=aK@pt|ft!~lE?F|z&qx2%TW%)Y8fmE%^I@B7r8 zfdt@9wtEdpw00bKMMYlZNXYTx?^rWoDb$XVOwFvz{vvBP1f>i z6k#Bl;S&*7iG$cBj?-^+d+y&seaxSg&*3a6OW3ZgMy<7r@d-b6F46cO{V_tm)-GjO ztVOCx!5I0Q?Elu;p4nn&|nL&WVKP;gYUR4x;uGqQDDzaqJX{ zA@#+8KQ6Od-6uOQdJh7oB``Qj&M7wcsh$vZn?L?12a_kpW8zyw&A!$q#Iu#js>$=` zg*o!CdQ;1JeYhC?HVMB9Y|17g0h13Y4g9XQ5)bj5tb?#^LIC{%<0Si#J4MeqA}-}; zi1ic;?&poYgl~+hv?dU=@JSKIu8Z2`|d6F-DU&a2=4T{cV`E- zni1Yu+i4F`!iqFnKY3!J8&{_P)W0wydU2}|?3m^pSL4p0eeGkCyv;ZnS<>W1R5eK18Z%zd%?Vecc`F$Y^qFHwHW^5aQBBE@^Ulq}KwH&e2H_4pVdY5sp3ug5H^(KiAv# zVd#eZp7YLZEN=9j!~Xud*hcBjQxQK?7n6y2s4;Jjhp6xhRM*x2s<-(*WMOhF`RR60 zoY7$Wp4S2g!^D{FRN1ahsK{fG$1H}nQ@M`>FZN=4npjXQL(nn>%->}j(FGoJyR-5^ za1zEAc@y81KLRh@%SHlGf(QG%JS5f;CD`ZW3x2&2zg>;NEM0RR#&EO=I_8cCys_7@bTPR5luh) z?oQNaZMh z?0-Hc*7SL;=XYXJpkh0XDSc<>#rd-w2Z`C841%l94k0z4jT|d^&Lh%pU4T-l>czf7=dW7DE9auvYt|vJ$u;JEs{4 zop)!nSv5f!+VlfB#2>o)ZMNE3f2tMV`E2+dT!t5??9X|360VG~6#4U&+!1)Uew8;T zCt|;|!<~s~tnd1Bc(~yKl_z7r`(UTQsUYlLtQH>tsUVWk|O0Ac|2u z=opBKFiON~;(ouI&ty_Oq)+`l?^qV@Wt~-!Uqe1kChMNQs2}0xc=)Mz_cB{#O<&Yv zLSt(n6o5tlQ?J10gRI4pjb=a@T)fYIHdrMdG#m6QuotqqmtFs+^FiUUC;2)kFY=GMitmLhsHxUU$s-wq|=T%TzW*|6@_HX zJ@MpV{;~^sfV^CsJvJ7rsP75o;Rmzl!x}#})*uJQAfCl_+%@@QB7go7)|KJ|7J^%V zvBCF5ZI0r5@th&E@=mZHq8{EuKL?+)d%W+-LHKzYMUVoD7pso>4$Z^w^Ufw-#YzsHK%4y6& z^da*UO7b{AcNCmhR;G+zaT?AU3a^$1e1-__WAB=cJU`JY{*W?i1b=2BY?NpJeCbg_ zQ>+9$=csGH>^k%0L9$668x-@n9wHo`qz)|cmwIvdXZ!0>-x=YZIYc^+|NY-{THlfO zi)QvZ!V31a>#NaW42^VGZL~v zj{rB6FXL{J@M4mPEBRgSuk`^=&hsWeRTk%Bomm=$&zynyr*`L8g5>sqda*r%>D8W7_`9Bz;Nv+v<8#mXWo@s)maN4K(E{_0&V zd)5(WUD;gq18Y<{_EBwd?`V(oGn5l!t#}kv)k@{euw{Phbw@&^?4NSMW(T25!hhrb zm6tl|n46CG4nzVv#rm(yk?f;Yxac=}KS+_$=X&eeL;+SLhqz$7w*d~sg z7jDnvKgox3m-uOKI}c72x1jIzx*dns&mJgJ<`b>|N z)|5dnI+qrSjy>E5A4$%A*(=Zb#1M)Pq19^B$mez*Se~Bspcu&k@E@@xF4Z3+SMHp( zT&X@YPF-NWIb4ILkZpIpPn#s_)L!q?K-_la$z#TKVs~T)(_>(zey`Odg?`#ArTtH` znCC3kcTZullgo#Lni)s54HY2Qg~uxE3OPK?vYTERVc2U53bs+Y=%GRGd78gz{XC9E$!_ zo*k!&VTVd%btJFMo(~sh7yDK_QcL)q5OpOiuY1?3gqsq}SlQooW{AH%%{@~5`= 200 && response.status < 300) { + return response; + } + + // don't throw or log any error + if (!silent) { + if (response.status === 401) { + throwUnauthorisedError(); + } else if (response.status === 403) { + throwPermissionDeniedError(); + } + + backendLogger.error(`Request for '${url}' failed`, response); + } + + // Client code might be interested in doing something with the error, and the original response + const error = new Error(response.statusText); + + try { + error.response = await response.json(); + error.status = response.status; + } catch (e) { + // ignoring the error of getting json data from response + error.response = response; + } + + throw error; +} + +/** + * @param apiUrl Should contain a leading "/" + * @param request + * @param silent If true, there won't be any logging + * @returns {Promise} - NOTE: Error has been logged + */ +export function fetchApi(apiUrl, request, silent) { + const fullApiUrl = `${Config.API_BASE}${apiUrl}`; + + // Need to stringtify JSON object + const tmpRequest = request; + if (tmpRequest && tmpRequest.body && typeof (tmpRequest.body) !== 'string') { + tmpRequest.body = JSON.stringify(tmpRequest.body); + } + + const requestProperties = { + ...API_REQUEST_PROPERTIES, + ...tmpRequest, + }; + + if (Config.AUTH_TOKEN_COOKIE_NAME) { + const apiAuthToken = getCookie(Config.AUTH_TOKEN_COOKIE_NAME); + if (apiAuthToken) { + requestProperties.headers[Config.AUTH_TOKEN_HEADER] = apiAuthToken; + } + } + + // NOTE: The Promise returned from fetch() won't reject on HTTP error status even if the response + // is an HTTP 404 or 500 + return fetch(fullApiUrl, requestProperties) + .then(response => checkStatusOrThrowError(fullApiUrl, response, silent)) + .then(unwrapData); +} + +/** + * @param error + * @returns {boolean} True if there is a problem connecting to the API + */ +export function isConnectionError(error) { + const INTERNAL_FETCH_ERROR = 'Failed to fetch'; + return error && error.message === INTERNAL_FETCH_ERROR; +} + +// /** +// * Returns a convenience function for common backend interaction. It starts by +// * dispatching an action of type `getAction`. It then sends a GET request +// * to a specific url and dispatches the result in an action of type `replyAction`. +// * If the http request fails, an action with type `errorAction` is dispatched. +// * +// * The result of the http request is added to the `replyAction` under the `result` +// * key, while the error is added under the `error` key. +// * +// * If the first parameter is a string, then it is used for any subsequent requests. +// * However, if the first parameter is a function, then this function is called with +// * all paramters provided to the activating function and is expected to return the +// * calling url as a string. In addition, the first parameter to the activating function +// * is interpreted as an `id` and is added to all actions under the `id` key. +// * +// * @param {string|function} urlOrFunc +// * @param {string} getAction +// * @param {string} replyAction +// * @param {string} errorAction +// */ +// export function backendGET(urlOrFunc, getAction, replyAction, errorAction) { +// const isFunc = urlOrFunc instanceof Function; +// return (id, ...args) => { +// const url = isFunc ? urlOrFunc(id, ...args) : urlOrFunc; + +// const p = { type: getAction }; +// if (id) p.id = id; +// dispatch(p); + +// fetchApi(url, { +// method: 'GET', +// }).then((reply) => { +// const p = { +// type: replyAction, +// reply, +// }; +// if (id) p.id = id; +// dispatch(p); +// }).catch(error => { +// const p = { +// type: errorAction, +// error, +// } +// if (id) p.id = id; +// dispatch(p); +// }); +// } +// } diff --git a/examples/real-time-charts2/src/rest_client/fetch-api.js b/examples/real-time-charts2/src/rest_client/fetch-api.js new file mode 100644 index 0000000..d58f32a --- /dev/null +++ b/examples/real-time-charts2/src/rest_client/fetch-api.js @@ -0,0 +1,183 @@ +import 'whatwg-fetch/dist/fetch.umd'; +import { backendLogger } from './backend.logger'; +import { + throwUnauthorisedError, + throwPermissionDeniedError, +} from './rest.actions'; +import { getCookie } from './browser-cookie'; +//import { dispatch } from '../redux'; + +const Config = { + API_BASE: '', + AUTH_TOKEN_COOKIE_NAME: undefined, //'AUTH_TOKEN', + // The value of this header will be checked by server. If missing, server will return 401 for + // restricted access API + AUTH_TOKEN_HEADER: undefined, // 'N1-Api-Key', +}; + +/** + * Common API request properties + * @type {{headers: {Content-Type: string}, credentials: string}} + */ +export const API_REQUEST_PROPERTIES = { + headers: { + 'Content-Type': 'application/json', + }, + + credentials: 'include', +}; + +export function config(config) { + for (var k of Object.keys(Config)) { + if (config[k]) { + Config[k] = config[k]; + } + } +} + +/** + * Unwrap data + * @param response + * @returns {Object} + */ +function unwrapData(response) { + // Handle no content because response.json() doesn't handle it + if (response.status === 204) { + return {}; + } + + return response.json(); +} + +/** + * Check the response from the server + * Log and throw the error if response status is a HTTP error code, since client code might be + * interested to deal with these errors + * + * @param url + * @param response + * @param silent If true, there won't be any logging + * @returns {*} + * @throws Error + */ +async function checkStatusOrThrowError(url, response, silent) { + if (response.status >= 200 && response.status < 300) { + return response; + } + + // don't throw or log any error + if (!silent) { + if (response.status === 401) { + throwUnauthorisedError(); + } else if (response.status === 403) { + throwPermissionDeniedError(); + } + + backendLogger.error(`Request for '${url}' failed`, response); + } + + // Client code might be interested in doing something with the error, and the original response + const error = new Error(response.statusText); + + try { + error.response = await response.json(); + error.status = response.status; + } catch (e) { + // ignoring the error of getting json data from response + error.response = response; + } + + throw error; +} + +/** + * @param apiUrl Should contain a leading "/" + * @param request + * @param silent If true, there won't be any logging + * @returns {Promise} - NOTE: Error has been logged + */ +export function fetchApi(apiUrl, request, silent) { + const fullApiUrl = `${Config.API_BASE}${apiUrl}`; + + // Need to stringtify JSON object + const tmpRequest = request; + if (tmpRequest && tmpRequest.body && typeof (tmpRequest.body) !== 'string') { + tmpRequest.body = JSON.stringify(tmpRequest.body); + } + + const requestProperties = { + ...API_REQUEST_PROPERTIES, + ...tmpRequest, + }; + + if (Config.AUTH_TOKEN_COOKIE_NAME) { + const apiAuthToken = getCookie(Config.AUTH_TOKEN_COOKIE_NAME); + if (apiAuthToken) { + requestProperties.headers[Config.AUTH_TOKEN_HEADER] = apiAuthToken; + } + } + + // NOTE: The Promise returned from fetch() won't reject on HTTP error status even if the response + // is an HTTP 404 or 500 + return fetch(fullApiUrl, requestProperties) + .then(response => checkStatusOrThrowError(fullApiUrl, response, silent)) + .then(unwrapData); +} + +/** + * @param error + * @returns {boolean} True if there is a problem connecting to the API + */ +export function isConnectionError(error) { + const INTERNAL_FETCH_ERROR = 'Failed to fetch'; + return error && error.message === INTERNAL_FETCH_ERROR; +} + +// /** +// * Returns a convenience function for common backend interaction. It starts by +// * dispatching an action of type `getAction`. It then sends a GET request +// * to a specific url and dispatches the result in an action of type `replyAction`. +// * If the http request fails, an action with type `errorAction` is dispatched. +// * +// * The result of the http request is added to the `replyAction` under the `result` +// * key, while the error is added under the `error` key. +// * +// * If the first parameter is a string, then it is used for any subsequent requests. +// * However, if the first parameter is a function, then this function is called with +// * all paramters provided to the activating function and is expected to return the +// * calling url as a string. In addition, the first parameter to the activating function +// * is interpreted as an `id` and is added to all actions under the `id` key. +// * +// * @param {string|function} urlOrFunc +// * @param {string} getAction +// * @param {string} replyAction +// * @param {string} errorAction +// */ +// export function backendGET(urlOrFunc, getAction, replyAction, errorAction) { +// const isFunc = urlOrFunc instanceof Function; +// return (id, ...args) => { +// const url = isFunc ? urlOrFunc(id, ...args) : urlOrFunc; + +// const p = { type: getAction }; +// if (id) p.id = id; +// dispatch(p); + +// fetchApi(url, { +// method: 'GET', +// }).then((reply) => { +// const p = { +// type: replyAction, +// reply, +// }; +// if (id) p.id = id; +// dispatch(p); +// }).catch(error => { +// const p = { +// type: errorAction, +// error, +// } +// if (id) p.id = id; +// dispatch(p); +// }); +// } +// } diff --git a/examples/theme/README.md b/examples/theme/README.md new file mode 100644 index 0000000..d7c28eb --- /dev/null +++ b/examples/theme/README.md @@ -0,0 +1,8 @@ + +Pallete: + +#8E30B0 (purple) #CD5263 (redish) #F8E54C (yellow) +#D44B45 (redish) #52B45C (green) #8776CB (purple) +#F09D38 (yellow) #8ECA3D (green) #5D45B5 (purple) +#F8D949 (yellow) #0F0399 (blue) #67AB33 (green) + diff --git a/packages/material/src/card/pageR1/pageR1.component.jsx b/packages/material/src/card/pageR1/pageR1.component.jsx index 29017f3..01404bd 100644 --- a/packages/material/src/card/pageR1/pageR1.component.jsx +++ b/packages/material/src/card/pageR1/pageR1.component.jsx @@ -199,7 +199,7 @@ export const PageR1Component = styled(({ } return ( - <> +
{ addSidePanel() } @@ -228,6 +228,6 @@ export const PageR1Component = styled(({ { addFooter() } - +
); }); diff --git a/packages/material/src/card/pageR1/pageR1.style.js b/packages/material/src/card/pageR1/pageR1.style.js index 63ddbd2..4ab2160 100644 --- a/packages/material/src/card/pageR1/pageR1.style.js +++ b/packages/material/src/card/pageR1/pageR1.style.js @@ -21,6 +21,11 @@ export default withStyles((theme) => { backgroundColor: theme.palette.common.backgroundColor, }, }, + outer: { + display: 'flex', + flexDirection: 'column', + height: '100%', + }, content: { width: '100%', flexGrow: 1, diff --git a/packages/material/src/root/root.component.jsx b/packages/material/src/root/root.component.jsx index 880502f..3296110 100644 --- a/packages/material/src/root/root.component.jsx +++ b/packages/material/src/root/root.component.jsx @@ -7,6 +7,6 @@ export const RootComponent = () => { reloadBackend(); return ( - + ); };