From 3893b6e1a37a6464aa408cc3d0d0b4096960a2d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cyndira-flowforge=E2=80=9D?= <“yndira@flowforge.com”> Date: Tue, 15 Apr 2025 16:29:49 +0200 Subject: [PATCH 01/12] Create page --- src/solutions/mes.njk | 147 ++++++++++++++++++++++++++++++++++++++++ src/solutions/scada.njk | 4 +- 2 files changed, 149 insertions(+), 2 deletions(-) create mode 100644 src/solutions/mes.njk diff --git a/src/solutions/mes.njk b/src/solutions/mes.njk new file mode 100644 index 0000000000..5720b8f5b8 --- /dev/null +++ b/src/solutions/mes.njk @@ -0,0 +1,147 @@ +--- +layout: page +nohero: true +heroSection: + title: "FlowFuse for your own MES" + image: images/solutions/scada-hero.png + imgAlt: "MES with FlowFuse" +bannerSection: + title: "MES for Modern Industry" + content: "MES systems evolved to manage and monitor manufacturing operations on the shop floor, serving to bridge the gap between enterprise resource planning (ERP) systems and production process management like a SCADA system. Complete, monolithic MES systems are no longer needed. FlowFuse provides the resources that allow you to build and augment the components for the MES system you need, securely and at scale." +howSection: + title: "How it Works" + p1: + - "Monolithic MES systems - think Siemens OpCenter Execution or Rockwell Automation’s Plex - offer MES products that are comprehensive and sophisticated, but also expensive and complex. In contrast, FlowFuse allows you to use Node-RED, popular industry protocols, integrations, and our resource library to design and deploy applications for a flexible MES solution you want for your business - and nothing more." + - "Here is an example. An MES system is essentially a collection of management functions, like production tracking, resource management, data collection and analysis, and scheduling and dispatching. With FlowFuse, you can build the MES features you want by using Node-RED to create applications for the functions that you need, and none that you don’t." + p2: "Collect data from the shop floor or the lab by using FlowFuse Certified Nodes to connect with local machines using any protocol: MQTT, OPC-UA, Modbus, Sparkplug B, and any other protocol that exists now or in the future." + image1: images/home/connect_graphic.png + imageAlt1: "Icons of communication protocols" + image2: blueprints/manufacturing/oee-dashboard/oee-dashboard--1.png + imageAlt2: "OEE dashboard" + p3: + - "Create applications in Node-RED to transform your data for analysis and create visualizations that enable your team to make data-driven decisions about your business. Our ever-expanding Blueprints library helps you get started quickly." + - "Because FlowFuse provides management of all of your Node-RED instances in a central place, you can easily monitor your applications whether you're running a dozen instances in a factory or thousands at sites across the globe." +industrySection: + title: "MES for Your Industry" + p1: + - "The MES needs for an automotive plant, a pharmaceutical manufacturer, and an airline are all very distinct - and yet all can (and do) rely on FlowFuse. With the infinite flexibility of Node-RED and the security and scalability of FlowFuse, every kind of industrial operation can operate the MES they need." + - "And with the FlowFuse open source advantage, you can build and implement any Node-RED nodes you need at any time, and securely manage the instances that you create along the way." +whySection: + title: "The FlowFuse Advantage" + reasons: + - title: "Built-in adaptation layer" + description: "Leverage the power of Node-RED to design exactly the MES your organization needs." + - title: "End-to-end insight and control" + description: "Everything you need to connect, manage, visualize and analyze your data in one place." + - title: "Limitless connections" + description: "Robust and growing open-source library provides connections for all protocols, all machines, and all devices." + - title: "Rapid implementation" + description: "Get up and running quickly on FlowFuse Cloud." + - title: "Open-source" + description: "Avoid vendor lock-in." + - title: "Low-Code" + description: "Empowering your teams to build custom solutions with ease." +ctaSection: + title: "Ready to build the MES your business needs?" + primaryUrl: "/book-demo/" + primaryCta: "Contact us for Demo" + secondaryUrl: "https://app.flowfuse.com/account/create" + secondaryCta: "Try FlowFuse Now" +meta: + title: "FlowFuse for your own MES" + description: "FlowFuse provides everything you need to build the robust Manufacturing Execution System (MES) you want, providing everything from production tracking to data analysis, with the components you need and the flexibility to customize as you see fit. Powered by Node-RED." + keywords: "FlowFuse, manufacturing, MES, Industry 4.0, Siemens S7, PLC, Sentron" +--- +
+ {{ meta.description }} +
+{{ bannerSection.content | safe }}
+{{ p | safe }}
+ {% endfor %} +{{ howSection.p2 | safe }}
+{{ p | safe }}
+ {% endfor %} +{{ p | safe }}
+ {% endfor %} +{{ reason.description }} +
+{{ p | safe }}
{% endfor %}{{ howSection.p2 | safe }}
-{{ howSection.p2 | safe }}
+{{ p | safe }}
+{{ p | safe }}
{% endfor %}#eqcqhIhis5Jg}IXuq3ZNS_EMmhT3|%2q5aWp4YJ#fW7s zA$p3yK0pA8xAIZi`2^)w;j9p4T^Q2x1+th1R}j&WyaXq^_e`*D8bMLr?5T@(av~nPJtAEmy}@9`MM1a#rK(97M=x1fK#P1yTwz?l&XFr++1o z?MG_2+ypC7sEcZoENIG$W)J*ye3Q;lK@4m7h9@y3xN};|C7n5sZk``d95cipPn_O- z>L$2zkUb(k(LW~eT+J-Z@f%SNATC*Me77^RY&zFjG;E9PnVZ?xPWW9VwoujW(oZs^ zRA3PNll=UJ?f{NWwrfzU+tUEcoa5iV+kCIrIcWI^)PfrhUK9fSi(JPGt96?U-G-BG zL-1B(XZl?8VpKhUdG)AazbdlL<9wx{AaGM0z#euZu0lLzOvYxIC{yS9g(|oi`xG&9 zh`1*dd!K#zKn|OFpZno_J&EJGGRBy=*#k}}WzmztFg8|BudAL!#7ffWc6IEDG T)gk}t|7w(H>EebBhdjyN^!`&_5 zQZ(&p#T3od(oAHHEGhc MXG)$8FjSS;0q}`X{d%VgrkWhW;YoUIl_45$ ztfQSiClUf;JN5DFS#vUVeFZV|?Dj~Fv*l-&7uFOIGlf!{Y#{(~2jUn0NCABR5am5% zxB?C%s_Zx ;A>#`CUV*QS Qp;IdT50Jy8S%Cfp%V@IF<;QfUN0pxAU%GEbr%V zu$k*xrCCd6aeFJeadE^n$nSH*XS%Bn|Jji}1j=qcy9b1;$HtNU2F=~pM-e&LlP{V- zwv&UYVSwD21x+XO{1_wE=n-+3aZ!-lvo1?VMhO6PcbY(=zrQVco7#KC6zpo)@~Ei@ zbk$JE3;_xYp?~){D5&f=6_^~BOSK()cDvLOd47%%zj}qFi1i=7*Wbw`i}O#n?Fn)G zRXYM7n{6_}!TfYjjdkPtUqj)w;2Yb-xujafs5djWwOku;2X{0pvy1KngVg5&g4&8m z4_k<5;t_e;;Y2PqOn$n(*_$vF?*)p~qcKE4E)$Z}QxvAVJiyHS21}D|Od6i%3vvN3 zue$Zb4vmhs{T^H~J%M<_R|Hf8OCsO+VYK5P5_Fo`zR4 0xT$mm-f9w?t~v$Y_|Y^Yq$i flW!VOln4N z)>+sh*rPfcENc42 -Q1tja}*(wgWx-SjD^HmqI=Ur9h1&y=V{6| z83`waaGD0k4Pe9;;te{0(>g%H2K9 x@0K?(RhSFbogNisBTZyp0GBLv2@6 z$==h|f0X#^PnWW*F?(_Q*I8m*K>@dIv-QDKr%z%Mj>DuL=4ei)oTiZje_5r>QHK z&A=a6IK0bC5dNx?6B8>PoSH}BCY`%*V&zWhvd;b Ou94Oxq7uEdZ!MfETK5uK8+XH;~ncmea3TZ3j2wK8HV7zjz|7bbs ?)7t`(V6LkUdp-0se~48Ja?z_E+~bNT=8WdgDcKGCNa7zft1D(kAkOZ( zM>dIO=h957Tlt)1m_WWH0Fcj*h;Somiy@1PI_5XF;@rIH@z@jK+YUTW9}?OLiSt5% zShhoeN-$&FK*^hdKaNb}98x+hylVXkb%{G!{l{U&$HfDQBK~#?sc+mabO?g)4k_*Q zxu%wHm*ikbZX6!|6T!c1NI{e4W` +L~IL?l4rPlK*Tf?mH_qHV=kTXFY z?)tQhIjYP?U#JRgJUqAz50b@kD*~3c_!#XL+_6whh}$A12|q^qZ?`Ii7DF>1iWnd1 zCq2D2RIoTh!M-ip{qi_s8m>y3*Mi!q&;#m8Rx}zH2sJa~az0p0l$sKSJ9UBgFoo0` zT`77pNSh-$bn~^%PC?^y#JM1_`jO(ATc9JY_egi6c;u%<3GwwthvUc+)9~MkW`spf zuW}Hj0y(!!`#qxhNS}-OKXbRxJXk!=@9-tGzI$usge%C0JWo$3f4U@EG4j2T$wI=K z?V;PZ8?_g7zx!=Umscl3t(APJev1U`bF5_cnLdYuHb>PG-oXY(8Z|`b6n9N$`(zMH zN*4E~Z2x}m0>gJpN{3IzKoY5*h)*S)?WVzxvkenN7* WQVznw;9;8$e$6$7nlHAf5niJZZEsY3MQ__XXa-kGe2B zlAz0Z0ghTTul|+2EL(M5(7^baKJgYJcMO4yEovX!`*RaB2rm{^P_Y+WW0-uJSd;OQ zv;`oAm(%nqL3~#Wz9Z 0|{L8K}+4J^RaZw1uv z%t#=n2iIaa1wja8sEqOOKZ6q<4D_h*_OwXz34Wu8Pa82!EDUZHT-9WTeEtFnvpU`$ z=kI6ZYBaMg;@ooKWbS%G)_ppqL*TYveCoc!j8UtXO4f6O#Sf8=9tceokRwu^E)?1S z_4W!hUVPAY&@_=q4P%RK-9p@15$_J&+23zR|L4 IN->_5LQXye~zth!9&2Zdo8suZ_B_xp{ z_Oc7U;!+@^n}G$40#HcAhdjx7bk!k9UL!ZHaw|q;i`?=1`U_RAqmL$Wu^uP4(&dre zsWoQ^%=GD==z-IJJE903>3xZZDdu)neo4?ry72v}@XFj5j|fL#CSTvv7;AavNhg`gR@b z&19A1q)2R`dg0gtjiXLj|C%b7+Jzcz_RLy*p=RNvNCzMk?`(P kY%4{dA@3kD37yr(C5YRper zr29CI&jap&jCT->O(36faw1+O(LzI$ZMNJKd(CZL4Z~K^FH7!!rU_5bv0CLu{~~ zj$PvKva f7br znbOYERXL1wW7bRn2tD?C#2veWs5u^xQARy$rwI(xJS*GjOnIbT4#ltWUvxzVR>0z9 z{Uzf_x$Ar)LfIB_?pwn*Aq<^e-uc!vJrnzVfmeMFTzh*+DSH2e1{Iv0# UI3OVFQ zx*em7y)9*|?U&M&u|ac*l^<6n=~ODxpWF%87A>}7>o+5~+9=$hK-Df4M&r5upp@U; zNICodFI3$j@?*QU^(5wf)as^_l&Qi &)e#OpH$yo{yM3U1nF&t$b_Ct;4=l(sN^ zdOSanf#x=sOafqolt5$%?WYNBIVv*OHdnEi?+&%-v{L{UGbfDBi(6UNC>eSB&j#oa ze6H~}a^uw059wd)k<{&2J7K$8nU+=eqU}3lV4CPq`O?Y=z8=+4a-XEgul7=E#INr7 zHJo&MP55WkURu&82AIUd=96bht-{C#TKe;pT5;;!ttVf#D2&_<8n&mGq*;_+5_%Fp zr>0J^QBi>b)1CnT{d-Aar ($7*at zJ}E=|v2F9DKTdr-1y`kj=_yL}e<)1u47=4|@Owcp1A=OCKXbo4At1C;t9xX9x!xQ4 zBg7uyTCTqsRrf8$MEZdAZ+1{etzNT8blBgOe(iv?j}3Kqb6Fl^hfLTl*W3DleM{v9 zp&2e}*D4GnaOD_i^TXLqIJ7Z0t_Y?JP_lhpzrXnGc6N5dsQT!DX5;X3>>GBgPZ6|Z zK$egAs$;0+PgfibEQ+J4eWeCc6rXwcl6!&rwgCxX&9BPYI4WC{PE1v?T3{y+``+Zg zVI)HPlhd`Z70r>Jc8~#=Ry6Y9Cl!Ma9Cc#`@&cEp1;*&Xoobs%zh$Pt=m$3#jLf9a zf_%VEskHjeTA?wyIAtX2qz#|0CKlReztH0)Bug7=8J?1s4s?2KK30K`mC8Bhvw{vp zkN1252OfW1)faSW`)PVOq=-SAA1}xR PVV2Cw^xN5h%ak@ zTQ7gxA&b)aEw%6VXCo oTSJz3ci~XS zW* $J9Saw*vOunF4iVkgFNXI6YrxWN5g+~JDZbDev?{JF(GRjX!4@Ik7@v>?Ea zuUy)lCH)gF2D(1NKBTq2Kyy;a@|F;3_cAcJA{8Q|!^@BxdtW6YY9IK1 hj%Ol=YdL0 z69< =d5dJ>FpVdk;*X@S{;-y$+oIN(X zuVza9B`S3(81cWWKW&U53t*5*>5KfJJ#*94vYecqN8&g0TDv2kpYx4q2?H~0|AOuB zFjgAsnc KE zb?D2yeN-#Ogli)hGNfN2bMEMi4 iUN}-6|6;fWNXv95{PO zczlQfZW+-{R=b`0H*Z#)F`1B9p9jKDUQg1MQ|BT61Q*}QOuX rz9@$25T*%-Q&gzAshpW6V*K*K%VjaaySLkEM`%wy1(9O(bue!$eI&E|@<&!cP$O zaAw|dCZb&{3Ar^yqOT)?SHbyHD5_61KnEIiDY>hrVL|r-paY?jghVkM_eYB0gX%3> z%Vuw&&C{$|gqmmT{@y8dlSbh0mI*R?8v^QbnhV+#lZd{jxq6f))u-@lFLl4uFX8GM zF-*XO^BV}HaOf_p)FqiXu56>mebv3q!T*cucD<~8?;V#YgWZ^trn{)}`Cf!{rRzZj z+$LIPLrlj^8tbEbp`N$9)%;Ad=3vB 8cY@bI0s zD{k)j9>+m2_%~Otru;z@IE%UQ*04S)q=deOrMaYHe-;M`S~y{!kv8%JS !LCgcI2{|XB6Ys$VKECiP zu8kaQ;8m$l&OS8gV}sb4!Y6e*8^q?}^`ZWqr*KVfiHo=CdT)*D*7WLtko%ch ^;l$>d^OPT>%ntx?dS+#|Q7|o8yQ7KTe0tUW{EVMIJkZB){Ydet)29jM z0l8CQ)$1RXZAAcp?x9r#xqq7vS|W6h@x7TZ-0#(`m!4 DEef{2gCE@G(W`9dyuv3n5Co(a=(v=R-Gwsg5cv`i^!V zcOMho#CnnM%jIVX{-LUT-k{*OK&UL1KhFO%LOE9T&GP(Gbt8=Jl>cpXkt^jMI5e6p zb5+)eS F`E%V8>&}6r@ PSYW?%6n*+lQbL$+INexTPOm^v4**V38U>C}G) z-dyn`)4o9%Cdg@Net7eu_0l9ff19e~$>C$i7t_sPh2c8=jC6rg%@g>8+3x(gXGJyb zuqC4qsP>@O!X3tLl4CR8=3}F2QJ=<%D$di9XR0*QwbefgE;8Fk?9-k6baXTD2 dUoy0bD`MBOtH*qksEZ9G{GU=a^1$ro+vm)|Zwlb&&mb_NjId4)CHCrN;@sX^d zTO#5vv9fc$4(DZ8w`x%fYIQR8(ZQf4_*)#;-y+VlMz)TMd((x&^9`39$MUurc(`p> zQ!pibCC`i2bIa$>i+13~pI03yG7}jn?AIb; zN%-7!=gFV0WY qg*HSD;h5=Z*S;-jWo}>?wD3PvSUNrH zu!*d=u>G*6zkh?J8w wY6To-XZ<*|X#Otl_4^^R`7#(^E#Qt!k(wqQfYX@4mg$cPoXdyi$y|ypVBf~HA-teFq Yk kYjVXfj`L}#?|h*h z*2Bt*&bXJ;#1(Gq+XLg~B}-Q|E^32D?jlV*cNt8e%SZ~k_a+xZ&LFED093c=u*?Gy zL=h|lh 5GNL<_Z{4~m^xhE890<|$=V%D&eXr8l ze^_+~eJHVx`ALAsWrRsIN~@y5pOm(q_zBwA&$zGAyMxcL(ANoqBx0h=J|m}bhDa3q zd66MSrh)roMKU_D3&@K{_xJvUFcFM@o+r`9e)(0s{p71DWpFAIBaeb{pAiB$<15?d zwteH04>^uY34LR2l39;KO)d%nH}WOQ^(C=;n}5FizA{M|Qho;!opDbKuI-}0Lx7!o z+wg9RyqMFo`!-`p*b7+8y!G%9>zTi=hdZ@m0y=xCDhzIn9{RIv B_QT<5&1vlYSfjUhLJL^9tlM!_GKBX6!TTx{ z@57KuZW`^lmoSdM+5@yd%DD^J;Y)^fCqUGp4>ug-aZbr2e*+Qb^aqp&jTW=(EguI} z@m?7-8KiNv$=4}a&19t*Fo@`3eq{|>wzsr;<-7^<0l}xhgdVEY5Yrvc4RGxZkICKB zfO2Z1$A9vuEF?Yj-b4r<^H*}cG4DItclxL{;vX={di#4fMR`nZzwXEs`>i@@J#h_? zbG}1w|4p8#S5vr#Y>||U7(C-6(9cdMOvntNE(vWvGtD_(u5e{qd7R4pMfpl}+AG^Z zqv5E<&QGws|3VJWcc?F|xo&XPgD$8yEN;tDS?y$-#QkoCZzu2is7S+E@UQjL+SHy* z-Let}fMHT@^Tlkt^%aos%{4i->w(%WTg&v~cj&8@m>UJN3p{A?f!py+9j+WhR0d|@ zUfYuI{-)ZFDEKVvda}fCu!mlAY`_jn$S)d%uu|Zo%`E{ BYjH%@R==ccMo zFDh=$y>f@QEQut2K_+8_^c;}zD~On*H?pjv|C&mQIp1%$N0vmuNWVAB%Pwdu$MUkt zRae;_Zi+E&Kl3MFb-rX%J EW7Jd0{MCITSwvGQWeC%wz#y#wggB z>KSqXB&HXQmyCzpbG1EL55gnwkoId<`h|y+{n6je zleiX(M_?KAZa;H0GSn7RLvBE0KO3{6-ayy?s=1WHS6$L`o3P2v@J4tZp8z*FMiY%p zd}o*BM;gh@gyv#jDmlRj@F+UmO^Ch%A<>y}s4?}@n0$zBj#M?m-$u6Rq?RT>{OSUW z&4_&Hh$ip*2K^}UX%_!sT;!(xi)mBeo9)iLIlD$$cjVFK6yp^f65?v7vx`NkIcYNY zy%B@98yPv}>v6~7<~&R&a>r`a%yQ;ewBbCMC%oS T%Dh2 z7h48bLnA;}OV$G{@1Hr1k0R>>2?dxwA+EBGE3la7kxuMQ1~&eo=-h@%)w0O-ggd31 z6N~D!x|Hr!$JWnS0jj-$iA3AqTjpRYQPrH26jTwj9qd-^gOAOTBP4i8p7MtVvS k@0b+aIhI|2O(MGf?xgM58L}8AY9kLypE@5+otD5X3Pew~9 L^NS#(;oPxSPwsuGNxA01@J5nwlow!p3RrC7S@!Xt#nQwac zDgIk>zE6Fp2_8uy?!gpi>%|XDtr@RZXS)8U{G4g-sm0oVqoE`?Dvx4jHyuArynFkW zFKMLF8;4T!w%a?bKmKmTm0;qwYQX*!xjZ!GV|WHCk=8=UoCqfvy`#esD_$*V#^2K- z+y@9`c4a*pk~s9vULtW`JMtb}^l4=iuuQ>PEB@^?s4a8RcvHVGVt;#qEjohni8Ak+ zSio{?5pv++Vm){o{kfbncNdW-(OJSJ`A(uP9vyFOJA {iVwrYrA= zFhc-Y)F~K*%(7L~D2jQisC=nhseJyNj#s1U@bs~mxa05cRWw+o;g|k`Qaag8riLY9 z2IM|kE4!D~UAPMO%1R>Nrs>`KNcss8#`F85szk^$|ElJHLw^%vD9UKpCVp ipoe%kXoyO3lL=c8&x2VuDYnI(Jy*4cGRL&AwxpX7p z4m5&hSX{f2ax@E`Cph;Tt@6pwX+>p-JMa;$=PZl)7V=^ zH0M%S`~zdy47Ocz2>VLmA{t(`T}6y(bN1brg0VnpX=xlG9&3K-@rO7MM=^ku{)?X) zoi*VJNCi+Dqkqm%{{fRTkFDt{Y3S-IIAxtl!@~1B(!u X4fup*XG$w?*6fEE2r3Ao4)3JSLxO*Y0Iyt8()Li z*g()-Gbw0{x3pH{dkP=O^WsJOLYWs)c*tahzg#8OWL`nA(`n%O3=Wylr&J0H3H;lw z)@oz-wf6Pw?kQ$?V{d!iAf9PH(}4MHX(gR+Twy@(m@?fWItdmo*WMZ^6mm5w1H=YJ z?4@gLIzErX%gYKfKoCOB{5#Z~h)l*AoZJLcU(JXf1KdMytsegB`3%8ZF^=#qdTT<$ zgGSx?)2~DdnT(Z&7$j{pF$V^`c`V?k<+U8%$)mkikn@B$hQcZEB4$fOm6BLjMJ1K{ z^6$6qRW^Q$vsLH_nQpyzjQhb>_F*&fzbnKmTIweUOqqJDp9!P}l}=k|?HU%my`bM- zD7EN!oi<3aXlR!@=zJG&CuDzT$=FemOC1a?9Xbi3gNB^Qz~F1vtb^-k)mrsFW; _0At$HnRV0Uy+X0}kTUI^7 z^v7PqhF`+A0PqA1dwR~+z5|YUZn{r9#UQ{j)}4$?PQ3kbdnVts^Y;ls(AC3YD#>T@ z?Nlc+GfjI^$hsJJrWI5BIUf?y7;3rRl%6U)Q?6X*L=LKfXM%AhkF*av+JF9_Lqw^2 zXS}Y(mV!ioZ7wT2AmD_^tADp7>K{M3_#pH_-1uv{ij3J_V&Q^r<6BXyPL`H;$inL` z%irK%(D(0Q@A@2nuAgn3`1DtTJT7M1eRN2kh&!sE7%CmH(A2RWOq?*fdRjjx=yIp@ zbaTyTC;58pCdMo861#N}5jyZEu`Z+nbEcMJ- 71`)wPB7Ko#w61S-08JzBE%ZAjdSi1$20)Kwg`FwNYVG0wW z07H)&5D0kouKY6`G(m^px^{9j8UY`Rl$>6}d|_N8@Zs(3MaR{yhpA-NX<^KjGIk{U z|BI!w@QSK^zdnzssFX-Ih)6fmAq@fpNVmig(%qmU-JL_j&@uE-N_Tfk4mrTkIq&fO zz5l>jYt}k*pZnU^-k&Y-eyGu`ukwQp?H42Jtii!_5<{}dhY3;+ 2=jI3{Ai}mTH*5@l^##FJ+ox6E^ zPPvQswy;a*`#406`TS{jAi8waPPV%gAnmqe@!QgBy~-wVx>J0=lbTRwF4P0^wohV= zDPr_A4{DiZkGWzq`_PdP$~4sCu)X2Az)rRj9F;ieAgV2X1hLf1C;~DNijy@w5)gj+ zbMQ9SFQ`%KDwFX}T#zQdsu`9NA5ta$g|*s$DMpPA=M51`9TD#%Sm{IXKUR5+Ej_l4 z{1nl>{%;RCyvo!~?dCUD%_QZ{wv+@!iekICI!J`RB_zc`dD3W=QXEx9ZdDg{t5T+; zAeAnwWt5FJDQT`(ehOZPH0Dc}@mlCDmR}*x{Net7-o(^C=WmaH#h_!H7gi~+;-MwG zycc4g{B&D4+`4vud!Dzo^ <6*6)?k()sSW2ewdH-Mf4dMsX4O4j88PMI+ zqovg3s06R+!)7a)S0}AC-S)6HW@jUrQPYo%hbO!IGFO2*cedioQf#`t^t~VGJRfT} z5DIq {ET50P{Dt%-A<$rg+Qg+;e!WlL#<={*(HJ?(>d$wT~Ln(7N%g zoAGP6-tfbSV&>@A)~Q{NJ9@|{k2k?D_d2Xs00JNx9}2=Sn9&T$Cv(rwNH~3_NBx!D zl=x+Z-eI@yx+@Hy(t>;xdtmw*NAT7SEr#@R@o7uhP6vE*oZifB&ddW#$!~W=* NiecUROwY(nKD%ig_>N6C2vh3oVx^n%5&$VJ1C4;&)!=KW(`#9+^TUZoGF*zpA9 z2#k9Q_Bs2q%|m!cDZor;pa+;%y >dQI7$l$VKf{l+JeX)u_drsrtSaEN$L|%kMAz z!BIt~Bn}bGnd&icYv2&+iXm?W<|k3Q;SV0kRS8-l2G(}HRu5NOgVY0D^>=UPC7zS+ zWrR0+d$8n|yeKsk={4q+y`_IlLU95hnfSQM4`&gx=WjQbYsVPHP|yithmNak{ ;yi z{XZpdQYv(km@^ii{U8er;F?`Or%&S-x=!(#Nl_M-3&l61i6!=IuKCtrM=RvaI9_E6 zcfpG*3DiMsbwJ<@nd_9mbpkR?yoHT&ntlKK=uh66L>Iz*J|1YaP)ZkPead$gj_%Pq z!MhsqD|8Ib`cvoED~9xWfxn84M5n)g~Y=S~6D%etoAI7<6efa%|lt{W0ax1$O{XLueEJ*VX8;7yrS>zzxQskg}r3 zJhZ6OESzV1*--$<@AsFRKHdHp)zNGYyCwI7qYD-_Jg)QiU0xqmbbK&yH7t=k7NQ=} zi*{QhcCEVhyfpb_ymKC@B>esO4>56-8Ad5`Xh_o#BmBB?96(Gv{67QtFKKyU#xEXx zy*i^|#f)8__UE`(@$kKjn?!=MNNab`7AH~+C;Z&1Rx$bvxb?1nX1<)gAnhPya%-o^ z;>(fW$)thxLb1ttcJD*Grouhx7V@;K2#BL_JTJHBKE~709Ut6FJOQYL-)v5e5j6s6 z1@DHZ5au@n^F?vwOYVnCW)i>W{C4943!&=sPt2$a{SL0cS@1Urz0c=unKx2L`^qMC za#$QR4Cqnc*5_WX-)PP%+(1s$z(68hIuSksyM1ho7q766TdIZyX`@Z8l*<)h+MEdi zcC)1YLejdB8yGXGR;#{NGTw8#oLqCBrJJgZHrSS}eA<2E4+=se-uHq2HIHiUFDt1o z=6q`mxK>r`W15i@r=&$xpH3LHQE!tSd-f;4*i^8^X-L~HF-R @up4>YH%Oh*e44bZ06S{}Y|KNV@(Ldn~ zQ9E)*Cu3@5?7_LM43I~l%?Ab}0jIt!k8E-p*}8_c3A)l&^%y7v@2A6CdZ@`+FdXhz zKj~4GY^Se(QN^Y+zAsG^qO`|zMWx1f_E%zyBvkA^watWWsg>_=nd}IZPFEMwIGi{Q z?f)sYe|`HQ(??U+4X(fK(_xs%T68sCDE=VtU?iI_7i@Ec_}vSM*Xkn>G`;l8UTe!Z zE{?!CK=KuDk=af6grWZ)!bPH%$ j8qtI_|xT`|#H1dQVrjz3DIH|M<#{ z<6t>i)$XTr-3&FYL JionG^nsIk(Oi2BTF~%zWsM|!kHsM1aHH62>v|Xyc1?b7vesBYZ49%+ArtI0 zpP?Hjzsbo>dKN&W{PEaW?22x0zeVx;8Sw`n3jP{Md=DO-kO&Tkzmp0NtJr|U8%#mk zVkPkQM`O1+t&i3btLm1>^C3ISK3+x&0079V34d*g=nyv&d|Js~^2@WTPfLL_P=0K~ z4!aSD@k#rqrJ`iN03!;8)$^-Os?pY7ex DLiKvXudH6Oui%_ItN}!)0?D@+m5x zvVXsey6v}Hgq?=3a!P#^Aes-fevtY0!qkt-`>t=&5?)f4dUuaTM57V1b%0dMbX}l! z=SIQ?91MTWm%9vV;=H+Cqz-^ Iiy->xgRz~l2$Q8sFiasr;B zAaKWd9hX;sLF%yz6)v*R7Pdfvn|Qg}i+YtxZ)(I!o)AEpS33PdtijlnUp;3@!R16< z7=;&QIYF#G;DWjv#k*CZl+Bd<-Cf2i3V$B}OMro`Ef|hnq34mGuXY6Jl(Lh`H@ti? zK8sdIE_E9;-Z^TL3+1Co9LQe69 Mrj(wUq93?A7`e }2pp@%ey$eIBSC%*js@874a?w|+X!DF|(eEp5l zOx1?FJs+I8D93+c!kc-9O#C9%pT3W)9yoxHOhaFzWCzXqleR9h53(MI{cE8SX1BfB z-u^(>+pw(Ln}Zb3)#HXKM$9mSY)j75yfp`oj8A^m1)ge^RwQMdC66H;$j!z=9yqB^ z!j(S 5i-w L6aG+UG@IkW<=qfE27yIuxve=>cSYxxL&Q(RpQh;fH zpUn1PMNK#r?OWieMD7q>o)4Y}Lh~yzbtt H%4+5Jm4#1<7EPm-g(HP1F;u&SFsrS0kkk%r)xTzW`b*7`|?i;QB}#~`N)=^ zczJY0sG==ago dd|S)eeR)smIIq}mOq@|LU^{A1bak|A>Au#_KSF+E#l zJkyrjz|9REqtVv5edYf>h&LPGTiMIC7S`CK-uN5}#?EMuDZI2P!4hqiHLvooJXuBG zH&vl9Bz3X1uu~-eo{b-KX2tVR>b$1pRAG>*b9HvBQ`I-%V%!=vCECsev82}C`e$Zi zcGZ}VWsSV5Gkj5R+?7n7XM;)fVfLZvV?(=)Y=WF@6RbVNBgQ83WOv1{n>1+!(yI~Y z5-7+Z|Ii`jc-yGy6QhKcgSu(wIQ^j{u<0l}U=w2S43VBKS>eYO6`Jg`ijFa>R1sSi zE-fEEq6}Yq;wm-`Z6KbQXHE2B9xG_h{;YT3jnfBB)S61$uNGjkwiXyn=(p#q&Grwn z$IajI