From 65e46fe43841f2652c1d187ffd41f964045b040b Mon Sep 17 00:00:00 2001 From: hammadzf Date: Mon, 8 Dec 2025 09:52:03 +0900 Subject: [PATCH 1/3] add API resource tree and HTTP methods --- GS_NFV-SOL_026.md | 82 ++++++++++++++++++++++++++++++++++++++++++++-- media/image32.png | Bin 0 -> 6342 bytes media/image33.png | Bin 0 -> 7273 bytes 3 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 media/image32.png create mode 100644 media/image33.png diff --git a/GS_NFV-SOL_026.md b/GS_NFV-SOL_026.md index 88c3e03..d543acc 100644 --- a/GS_NFV-SOL_026.md +++ b/GS_NFV-SOL_026.md @@ -1696,9 +1696,87 @@ The request and response data structures of the physical resource performance ma Editor's Note: This sub-clause will add API version and API roots for the service interface. -# 11.3 Resource structure and HTTP methods +## 11.3 Resource structure and HTTP methods + +Figures 11.3-1, 11.3-2, and 11.3-3 show resource structures of the Redfish® API [\[2\]](#_ref_2) resources that are applicable for the physical resource log management service interface. + +![Figure 11.3-1: API resource structure of LoggingJob resource for the physical resource log management service interface](media/image32.png) + +**Figure 11.3-1: API resource structure of LoggingJob resource for the physical resource log management service interface** + +![Figure 11.3-2: API resource structure of Log resource for the physical resource log management service interface](media/image33.png) + +**Figure 11.3-2: API resource structure of Log resource for the physical resource log management service interface** + +![Figure 11.3-3: API resource structure of Subscription resource for physical resource log management service interface](media/image3.png) + +**Figure 11.3-3: API resource structure of Subscription resource for physical resource log management service interface** + +Table 11.3-1 lists the API resources, and the applicable HTTP methods for each resource endpoint. + +The HTTP methods marked as \"M\" (mandatory) in the \"Cat\" column of table 11.3-1 shall be supported by the PIM. The HTTP methods marked as \"O\" (optional) in the \"Cat\" column may be optionally supported by the PIM. The HTTP methods marked as \"CM\" (conditional mandatory) shall be supported by the PIM depending on the corresponding condition. +The HTTP methods marked as \"M\" (mandatory) in the \"Cat\" column of table 11.3-1 shall be supported by the PIM. The HTTP methods marked as \"O\" (optional) in the \"Cat\" column may be optionally supported by the PIM. The HTTP methods marked as \"CM\" (conditional mandatory) shall be supported by the PIM depending on the corresponding condition. + +**Table 11.3-1: API Resources and HTTP methods of physical resource log management service interface** + ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|Resource name |Resource URI |HTTP\ |Cat |Meaning | +| | |Method | | | ++:========================+:================================+:================+:=========+:=========================================================+ +|LoggingJobs | /redfish/v1/.../LogService \ |GET |M |Get a collection of LoggingJobs. | +| | (see note 1) +-----------------+----------+----------------------------------------------------------+ +| | |POST |M |Create a new \"IndividualLoggingJob\" resource. | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|IndividualLoggingJob | /redfish/v1/.../LogService \ |GET |M |Get an \"IndividualLoggingJob\" resource. | +| |/{LogServiceId} (see note 1) +-----------------+----------+----------------------------------------------------------+ +| | |PATCH |M |Modify an \"IndividualLoggingJob\" resource. | +| | +-----------------+----------+----------------------------------------------------------+ +| | |PUT |O |Replace an \"IndividualLoggingJob\" resource. | +| | +-----------------+----------+----------------------------------------------------------+ +| | |DELETE |M |Delete an \"IndividualLoggingJob\" resource. | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|Logs | /redfish/v1/.../LogService \ |GET |M |Get a collection of Logs. | +| | /{LogServiceId}/Entries | | | | +| | (see note 1) | | | | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|IndividualLog |/redfish/v1/.../LogService \ |GET |M |Get information about an "\IndividualLog\" resource. | +| |/{LogServiceId}/Entries \ | | | | +| |/{EntryId} (see note 1) | | | | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|Subscriptions |/redfish/v1/EventService\ |POST |M |Create a new \"Individual Subscription\" resource. | +| |/Subscriptions +-----------------+----------+----------------------------------------------------------+ +| | |GET |M |Get the collection of all available subscriptions. | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|Individual Subscription |/redfish/v1/EventService\ |GET |M |Get information about the | +| |/Subscriptions/{SubscriptionId} | | |\"Individual Subscription\" resource. | +| | +-----------------+----------+----------------------------------------------------------+ +| | |PATCH |M |Modify an \"Individual Subscription\" resource. | +| | +-----------------+----------+----------------------------------------------------------+ +| | |PUT |O |Replace an \"Individual Subscription\" resource. | +| | +-----------------+----------+----------------------------------------------------------+ +| | |DELETE |M |Delete an \"Individual Subscription\" resource. | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|Notification endpoint |{NotificationTargetURI} |POST |M |Send a notification related to | +| | | | |a subscribed event (see note 2). | +| | | | |Can also be used to notify the consumer about | +| | | | |availability of logs. | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|Individual Task Monitor |/redfish/v1/TaskService\ |GET |CM |Enable API consumer to monitor the | +| |/TaskMonitors/{TaskMonitorId} | | |progress of an asynchronous operation | +| |(see note 2) | | |as well as receive the result of the requested | +| | | | |operation once the corresponding task has been completed. | +| | | | |This resource endpoint shall be supported | +| | | | |if the API producer supports asynchronous operations. | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|NOTE 1: Possible URI paths for the LogEntry object are specified | +|in the Redfish® data model specification [\[3\]](#_ref_3). \ | +|NOTE 2: Notification endpoint resource and the corresponding NotficiationTargetURI | +|is used by the API producer to send notifications to the API consumer. | +|This resource is not produced by the API producer. \ | +|NOTE 3: The URI of the task monitor is provided in the Location header | +|of the HTTP response to the API consumer when the API producer returns a \"202 Accepted\" response. | ++---------------------------------------------------------------------------------------------------------------------------------------------------+ -Editor's Note: This sub-clause will add Resource structure and HTTP methods for the service interface. ## 11.4 Sequence diagrams (informative) diff --git a/media/image32.png b/media/image32.png new file mode 100644 index 0000000000000000000000000000000000000000..4b0d99d649a789d7dfa18b5bebffe8a52d3ce8ac GIT binary patch literal 6342 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�&c83q?G@$vle4nCVz=tA4dZ@Ua!dC6tT}UBtme9{ zz8bW7QP}Flva)Muw{P0iRJ4=F_j17Mt2LFf$2s4=`u(7ppJ})5>8G2b_btnuF?a4; z&G0_Usi#xR*QA$~iEWJFnLK&&zCA%YV#UXQ9Xht=)mN)YCzs^c_?~5E*co%qoNv01 zTKlV2pY!Cqk8aqxb7k7cpC1nMUsYLDo4jGsMoqEqiYF7@uRN)pnC$(tM($*a(6m&= znLbMM&p-a~@bJEdP`&Af=H~3j3n!dSo9MN4!ujWgpPqQe&t&-USpL5RgMqPebBa;t z*|TRa98eYIVzv2pBRTKqwA6)n^OE!O&ixI0sro%TQfyw$C(k*y)naeUcB|*_jcb2w zVNv~UjsD%$VXG6<(%5d_zU{FzXoC*-#t5F7K5U?l+`ba4ULQ5)lJB$6rfuB2m-n&> zJ6D9Zw)Vca{qpvG#_8u41g%^V*?G+SLd0CFQm>d@C7!%4R3U~V*RD;|ug%W(W&m}be2saWU+mJGb#~e8YdL1E>s~W8 ztO#43x9i0;#p@?sua{2rT3Yq#R1weN7na{bnD8##WSMI{Cxw1ZckZ-2^0@HNm*w_fpUO@v*V=Ra&6_p9 z-`D^9JfER~UB2eR>$wzBT|^Xc@D2hIE!a?Cbv+{hSvz4r1Z`+q-@7u-&r ze)?(6>EG}7^Yd7gfl9Kn-Ea5J57C=`F>m|E9XnQ}m7cs=_P377TP}NP&`V3Voqlo4 z73SCd(qwp`9sjdym(~}#h-s{c4GfHpFB_M+Z;|H-GZ8zQB*<_3Wx^~O&mt!03*2ji zgM%$3k{@1nVpMO4)Vzf_n{`udZ-l)y=ak^f*=kK@M3=N=0=B{S)vWW| z19$TLiVHEC>9R4xW%0!V^}aXH-tB(Rw#(jN&8<6kjy!py^6KlZ-+l9|V(zJCtlFn? z{$u?AU(~`)M zuX&5-Y*0M;n0J-9-8nyG zj~AxDSsJ977&%Q^X3s&F5_PW=Umybo(gzl>Xdf@UqmU-ib|P(a-c6(Wh=woErZXOw zUenyvdun%n=!I|Fa=Bx#-!0y(b6WRs^_)+)PEJh|Z{(QOI=Z~~)Bj%gYr5CcN!G<@Z*O3i zP2PM{WLoOaG{#qVXI5s#tqjrH$;dU&?QXSBv&o~PXR#N|cW-!`dt0p2<}ucbjx>V8km>kHf_s^zy~!R@dM{vunWbYpfDFz#As9MF4mZuz~H zkR)_BB>wlU>kQ}n@AL)R$hoUcKKSR)p5JvBCn~!?u;9CP{rc56Tl_zXe|?(cx+pNo zT;Z$ftM%WswY4K+V_EIqKL`u&_gQ`Q(9v%3!iR@gE&7-l419(4_kI!Dz0%F+vdN2G zeP6$R-531+5|{TLYPex8m`N=rNT_pPOpRfW}D zzMR{~ve)lz^IP8RJzcN2G-md}uC`6vwzb{=|L^;TT_?6qVM$9%`*1|q y|G|}&!O8zWoPsnj47HV%x@_2n2D#@yyFu8_w^2oG^B5Qy7(8A5T-G@yGywotAZK&{ literal 0 HcmV?d00001 diff --git a/media/image33.png b/media/image33.png new file mode 100644 index 0000000000000000000000000000000000000000..67cd9d8f082ff0cbee44543d66d1f26ad061a8f4 GIT binary patch literal 7273 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ⅈOToSGShBP{(ZZi-d@G% z|IxCC4{)V72jC7eC_(3lIOAqNKD) zw|%p^)tOB?H9wzD&;8%1qolOxY@0vC7`#Je7ZPJ*W9Jlky13kCB4#kHL?Yc^K=5MO zL1M<*WRKkxc5&Gf3m=LL$XLC4b;aki=7u&lJf}Aabh_*)c=(AypPf(UK&PAV@G2nqwUO&6JHN;>pxgu|9AB~pW8gmY*{bQ&9%O< zF}Z!7kIR!=eDM=jn4(8O>6I^EOn&|PRg)|F`b! zvr0mp37MIm@mC$rOM{2<3=9nyrmHI5+9F|+)4=}I_I|s3U59vl&Bed}FI^H+Q&%s1 zc}Z1cX-#GB?KaSG+KU$}^y?$8W{KX+5xac(@~>6DpS`-eT0^XR#+*4v-n?0}Z&pV} zaMFbfiTuC%6+|Izn|J^7L8<@7?(+5O*SG)r^~=D{PHu-X=>4Euh)(ykR1ytwShf<~*fx;i8DNE`+IBE*RK{<_j_<>XR*i9pc5%ZpoUSOy#2dA;filJ(=S$MY6$~p}lrB!VUO1<1ONPm-Wt|Z^%XChET6(fB zJuU5y$?-y|bEmiErbbSCKSyh7*Cw6SitAU&Ym0UNywtHxYt6#-3)Z&!OIf{{TYm50 z{{Mg9x4mqRPK|smzw+0Q$NhgLyUWg+-*!AEb|lGgj#cTY>ET;u*TN^B{+OPYkr@BVP4&@%v#ZT)$c5AIT;F`oDftI;@tD;l=g|V z&A+mg7WuY1GMBp8%|HJ6y#0Fhd`??iTMxC#C!T*^5w;rAz4`1bn|u8*zx^8Zormm1 z6_s|~moT}oYjV8p7rRsP^76+YJyPOoWx7}KnAiW^*_T(t<5^#=k6ahClj-)h-u=1{ zzg}?WXJpv-;}Li5)Zf2Fc71++esO?CLRuQzGn<{eYs;@*mdSIi%b6JN)&Kvy z?Heebo_wynl4bhm%X0gx;nJ~tDg?Ji@g6>Wc*cww2aX(JnOF14^UmJt@bg?(>J2A% zWSqXRJXql6txPqet3mUlG*V_Q@|zzgx#dKi?`4g>zb`E}Of!R^f}*a6Bf-BqC+xGiK zMMgH}-kvdQ)}f8b$G=>Ctt8Z`F!|(zFE20u(psdOZu^_-)|?+zO&SN-zkf%>mmjr3fu_|4q?C1=x_8+X~ycKqB_xc5A+Z~y= zemNrS|KQfvY*3NAud9P&#ea{R!u~dmQEQj2UzFRjUVX((d8>($QB(Z?U)Mo0ukV)MKgwVK!`XJ`Hc3#G^5TU?Sa^8hvon&lqJo0w z=2$jcm%n?k^?KZ8Pz7PgD{^YCb$P*q1B?s)J>SR9#&+TA)urjmi`b96dZpEMROw#r z_t-V-);&7Z$}RK#3q!&Mhg{3zXFUHtP2ayDLg&+ZV9e2zpDTP8_E1>n%fP_E;OXk;vd$@?2>|1mWVrwU literal 0 HcmV?d00001 -- GitLab From 75b25a73ace4a8dd9aef3ce6eb388ba313590497 Mon Sep 17 00:00:00 2001 From: Hammad Zafar Date: Tue, 9 Dec 2025 00:28:47 +0000 Subject: [PATCH 2/3] extend description of notificaion endpoint resource in log management interface --- GS_NFV-SOL_026.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/GS_NFV-SOL_026.md b/GS_NFV-SOL_026.md index d543acc..8104f12 100644 --- a/GS_NFV-SOL_026.md +++ b/GS_NFV-SOL_026.md @@ -1757,9 +1757,11 @@ The HTTP methods marked as \"M\" (mandatory) in the \"Cat\" column of table 11.3 | | |DELETE |M |Delete an \"Individual Subscription\" resource. | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ |Notification endpoint |{NotificationTargetURI} |POST |M |Send a notification related to | -| | | | |a subscribed event (see note 2). | -| | | | |Can also be used to notify the consumer about | -| | | | |availability of logs. | +| | | | |a subscribed event (see note 2). \ | +| | | | |This resource can also be used to notify \ | +| | | | |the consumer about availability of logs. \ | +| | | | |This resource is also used to send logs asynchronously \ | +| | | | |to the consumer if an event triggers a log entry. | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ |Individual Task Monitor |/redfish/v1/TaskService\ |GET |CM |Enable API consumer to monitor the | | |/TaskMonitors/{TaskMonitorId} | | |progress of an asynchronous operation | -- GitLab From 6cff90397627d01a7e41df02bf9945ccfb693df3 Mon Sep 17 00:00:00 2001 From: hammadzf Date: Wed, 10 Dec 2025 11:21:43 +0900 Subject: [PATCH 3/3] fix LogService to LogServices in the URI path and consolidate API resource structure --- GS_NFV-SOL_026.md | 27 +++++++++++---------------- media/image32.png | Bin 6342 -> 15022 bytes media/image33.png | Bin 7273 -> 0 bytes 3 files changed, 11 insertions(+), 16 deletions(-) delete mode 100644 media/image33.png diff --git a/GS_NFV-SOL_026.md b/GS_NFV-SOL_026.md index 8104f12..331724c 100644 --- a/GS_NFV-SOL_026.md +++ b/GS_NFV-SOL_026.md @@ -1698,23 +1698,18 @@ The request and response data structures of the physical resource performance ma ## 11.3 Resource structure and HTTP methods -Figures 11.3-1, 11.3-2, and 11.3-3 show resource structures of the Redfish® API [\[2\]](#_ref_2) resources that are applicable for the physical resource log management service interface. +Figures 11.3-1 and 11.3-2 show resource structures of the Redfish® API [\[2\]](#_ref_2) resources that are applicable for the physical resource log management service interface. -![Figure 11.3-1: API resource structure of LoggingJob resource for the physical resource log management service interface](media/image32.png) +![Figure 11.3-1: API resource structure of LoggingJob and Log resources for the physical resource log management service interface](media/image32.png) -**Figure 11.3-1: API resource structure of LoggingJob resource for the physical resource log management service interface** +**Figure 11.3-1: API resource structure of LoggingJob and Log resources for the physical resource log management service interface** -![Figure 11.3-2: API resource structure of Log resource for the physical resource log management service interface](media/image33.png) +![Figure 11.3-2: API resource structure of Subscription resource for physical resource log management service interface](media/image3.png) -**Figure 11.3-2: API resource structure of Log resource for the physical resource log management service interface** - -![Figure 11.3-3: API resource structure of Subscription resource for physical resource log management service interface](media/image3.png) - -**Figure 11.3-3: API resource structure of Subscription resource for physical resource log management service interface** +**Figure 11.3-2: API resource structure of Subscription resource for physical resource log management service interface** Table 11.3-1 lists the API resources, and the applicable HTTP methods for each resource endpoint. -The HTTP methods marked as \"M\" (mandatory) in the \"Cat\" column of table 11.3-1 shall be supported by the PIM. The HTTP methods marked as \"O\" (optional) in the \"Cat\" column may be optionally supported by the PIM. The HTTP methods marked as \"CM\" (conditional mandatory) shall be supported by the PIM depending on the corresponding condition. The HTTP methods marked as \"M\" (mandatory) in the \"Cat\" column of table 11.3-1 shall be supported by the PIM. The HTTP methods marked as \"O\" (optional) in the \"Cat\" column may be optionally supported by the PIM. The HTTP methods marked as \"CM\" (conditional mandatory) shall be supported by the PIM depending on the corresponding condition. **Table 11.3-1: API Resources and HTTP methods of physical resource log management service interface** @@ -1723,11 +1718,11 @@ The HTTP methods marked as \"M\" (mandatory) in the \"Cat\" column of table 11.3 |Resource name |Resource URI |HTTP\ |Cat |Meaning | | | |Method | | | +:========================+:================================+:================+:=========+:=========================================================+ -|LoggingJobs | /redfish/v1/.../LogService \ |GET |M |Get a collection of LoggingJobs. | +|LoggingJobs | /redfish/v1/.../LogServices \ |GET |M |Get a collection of LoggingJobs. | | | (see note 1) +-----------------+----------+----------------------------------------------------------+ | | |POST |M |Create a new \"IndividualLoggingJob\" resource. | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ -|IndividualLoggingJob | /redfish/v1/.../LogService \ |GET |M |Get an \"IndividualLoggingJob\" resource. | +|IndividualLoggingJob | /redfish/v1/.../LogServices \ |GET |M |Get an \"IndividualLoggingJob\" resource. | | |/{LogServiceId} (see note 1) +-----------------+----------+----------------------------------------------------------+ | | |PATCH |M |Modify an \"IndividualLoggingJob\" resource. | | | +-----------------+----------+----------------------------------------------------------+ @@ -1735,11 +1730,11 @@ The HTTP methods marked as \"M\" (mandatory) in the \"Cat\" column of table 11.3 | | +-----------------+----------+----------------------------------------------------------+ | | |DELETE |M |Delete an \"IndividualLoggingJob\" resource. | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ -|Logs | /redfish/v1/.../LogService \ |GET |M |Get a collection of Logs. | +|Logs | /redfish/v1/.../LogServices \ |GET |M |Get a collection of Logs. | | | /{LogServiceId}/Entries | | | | | | (see note 1) | | | | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ -|IndividualLog |/redfish/v1/.../LogService \ |GET |M |Get information about an "\IndividualLog\" resource. | +|IndividualLog |/redfish/v1/.../LogServices \ |GET |M |Get information about an \"IndividualLog\" resource. | | |/{LogServiceId}/Entries \ | | | | | |/{EntryId} (see note 1) | | | | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ @@ -1765,12 +1760,12 @@ The HTTP methods marked as \"M\" (mandatory) in the \"Cat\" column of table 11.3 +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ |Individual Task Monitor |/redfish/v1/TaskService\ |GET |CM |Enable API consumer to monitor the | | |/TaskMonitors/{TaskMonitorId} | | |progress of an asynchronous operation | -| |(see note 2) | | |as well as receive the result of the requested | +| |(see note 3) | | |as well as receive the result of the requested | | | | | |operation once the corresponding task has been completed. | | | | | |This resource endpoint shall be supported | | | | | |if the API producer supports asynchronous operations. | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ -|NOTE 1: Possible URI paths for the LogEntry object are specified | +|NOTE 1: Possible URI paths for the LogService and LogEntry resources are specified | |in the Redfish® data model specification [\[3\]](#_ref_3). \ | |NOTE 2: Notification endpoint resource and the corresponding NotficiationTargetURI | |is used by the API producer to send notifications to the API consumer. | diff --git a/media/image32.png b/media/image32.png index 4b0d99d649a789d7dfa18b5bebffe8a52d3ce8ac..09aeb48b6ce1acca7c93503ca8b5a3af6452fd9e 100644 GIT binary patch literal 15022 zcmeAS@N?(olHy`uVBq!ia0y~yU~XbyV6^36V_;y2!lvNA9*a29w(7BevL9R^{>2>j}+G5igoNb%pW>&PSA2!6KCNiW@^n>dRTflFPOV>g~TMsRIc5eDzRrn3^w2J zDCwG};@Vx7=6b(uL5G5ArqR?HQ(C%S&gfHaj96JJbs=l3{f({M^#}g`*(JVZU0w9{HO#!Tf(OH0nfq|i+L6L)rfq}u{fB*|40|SFX0*Tr)Jq2Q-qk}a> zE?v1YCH87jTD;T339+i4Q86(g{{H>D{ldeqZ@c}*#cFPthDeao#0{&_8h;Xe8 z(YiWix|eEiZ|~0EySHsy_U&6)tCOPYXoSYl8udLXh<88lsh1 zSsD4UB4(n;l4b9><9{@zrKM$^a&vcA^(-zfzRjkUTw8nBmjC|;{{IQ#+s}OZv}s+; z&PDxoUlx}#`=u?DDpoAFefZlFHQ6 zskUFQ1b=%L6%%vi#EFiOzjuOGhMcYT_w&<|;q#v4=H@mltM#+7nc1?=PEOAt8@X_` z$$=XqO1_sSCN5MfP#5aVJ?ywM=GxEC&)+`E{rc_OsX`f1F4oq=iBnIfezy)hpI`S` z+VfJn-Dk<&uMWsey2m1r;X^N8tT39{^Ly{96eB4Ki3zLfSr$y?Wnhr8JjbXl z!qumeUQuyl-7f90@NikrzWWRLd3Y=)%?Z&;4Szd3MC++X5gQxZn^ntt`}(XV&8e}A z56+q4)gx=2l~rvf6q8uckFTD z@(7)4S0s-nU5wS2>b-TfZ}Zv0%KP`%-^)%+JjmI8xb*zi?_1Ao+OQ#E{j*PX@!{d& zZ?n=XDt4^=+vT>{&q8KfH-FFl_jS9IEq#n;_Uv9i)92W_va{#TnQfJ0U^tLi{6M!U zf8Wn#Dl7NzzrXH~-rXIA&JPPBHb$&j_J_azN3%-qOFgZVxxS~L7Tvbf-@aqV3a5n% zp1&?l-$|=#cJpdR1_r*h%=}HCKYyOI#J}c|aNbPG zEedn}vI`3XV`F3AG4SZ``>`nf^?zQ~lPQ;Emn_`7H}+&o(e2qkbIhWR3q1V&{qN?U zIUv6*`stA)E@u~r^|E!}ym8~gjT{UQy-YD`j_`<13$vuB;NibMt0q`1U*T|9^#l|L;G?A~5*6&ShIe8NS#0 z^*_5~W3Ttu|4ClC>+bda|4Mh?3OAZrvYXfL_nXaSTVMZtK7abEhhKi*|GzJGZ~mF* zcTWX8`@Z|W_UG!2?8Ud%9J@85rIu@9r$v z-+K6=?%j_*-z_e$J-fSNclb=b316q(ym@ohbyKO_=WC69rU&d#EiK)eSAMC+?tK~a zn(a64{yVer_~XLuyO-S$TEBY!%dThFd2@H?Eq`|7?=Bswqe&NS)%JhCk@tVr#>?v# zPM$pZ-LF=sh0E5>T(|J-it?CeU(0W8y?J}D3U z#=q~#s_ei2x9s>O54-v0_T5$8_rGtA&@uZn_h&5s9N7}yyXVTTcU0KC`@M5U)o&@u zUbpOTYwwlci&5V*zwz(g&!6h}|4zGjF|c}a+x5t+JMHqz?Vc2$Wno}oU%b=$W2}*R z-8bJBbB>Dqmay>fyVBC{drv-jvShd4!hjVkH|I;edA@Vc`rP{hw_e#QN9c3R`ug}| z#o4oUcJs^cpWY|=?cMxJ{o*tC-iAC^JHKc7{j}u zYR_%w_CL$w`1#h_p!enb?{2*E*w+1F!HttCM(-*&)nEVi^}wIFLk~9?TU)=*dtN*3 zvX0sN*KUgg)u(#B&DhV~+VorQV#b!V`(k2ZS^qi`Kfjy)^Pfn!>vyS}FZxaU((ms* z|Krwu+rz)5rR3zw)~6m#+W74I^Sl4=#?3E>1WoemyXWnU%vrvjZ7}EfaW`USquLv3 zN&U~a?#*U<&pYXU@5b+KL3ZYK*1Sz;Wey)W;NYwAQEvDB_%nNt=gl`4_W6@1BYQsk zw)um&XFp!g4ZqA3_}=u)KGWSd%;)y`OXQ_V%E{dmn$+W?w)yF@xU28mINQE%Gd*K= z@BF>rJ8#c-HU1NK`F+}*-*(@gZ;Gw>RBfwYJUM^=JI7Vuci(>(@#fJw!d19ME^+h{pe!v#yx!-I5%((vT_v4Q5 zQkPbk-ZHq(vj2LK&2`t{{kLCl-h4V+je)^Jg8f&|0!h1n3)|&3tzPn~IDGHky=5DJ z`vfn3zR722`G@}K?Rh(kYk%?<33a-Bnft!xxZb_Z=JzTN>jkB!FPAxf@zSNByU*X8 zn`@mezH;;C%X8m7_`d&tt?%5KN(bKmbnyIjb$y+xXEfWyk5Y1S(^dt`+%PjUyYp%P z|KIz!ua4G}>(4GK3i??ScQa?(y99%iDM9)B|87f5PrsY~IplBNnKNfHQc_&L-zoMF z7QTG_^FjW)3wpQA_wL<0YtEc0DzQ6@mOlI(YF51G>oQBj%WhkW^!C54`)>VpvHV|; zRelcx-tT@}d+*X2^UP%qoyQ;V3ywIFWLSQR-+rQpi?_FTRBY_k7cW*Uy0{{G`<^{( zIy*T_%ga} zmg~Q68{by>EMn5WuWR#fUJWWWSX^MS#%rn4+lRm2Y`qN%;2ZYrVl3WECl&3S!^Xz; z>fQnS9}k+#CaS!Ac6N5q)_wQ3P4qY-yY~E@kQoo2m|xr#_};es@SP*RK0Z5|Wp(uQ z@^%`2e$1=0t?G9~zMh4##IaAGHXV9caJcffkHfcn2GY;i^rd=#v6ZY(doF15nc-S+ z?$omBHFodk&30P2pk2PM;`Z#w(Ea?+&&|Dj>Cz;bL1&ASq|DL<$Y=Yjm z{FDCq`RkW0U;g!+_4^e88XA*NW|Wj%`P=NfFyO+;$?Dl|9kKE8<^MIlp7gJ~q`Q4) zLmu0zO?S)h*OpBT`D=6b`%$?+FYo_*dtc?e$HCq|AN%V|{_nr{KBu4{;Qik3^QKLk zw!}7O{?_B*(2HjmV>x@)bMO8P^Q3>D_Uzg7rcdkn_8BMV<$lfc3;DbHbKTEx+xN!` zN2R5umAty5dAIny?W>nB1I=dNy)Hdx=T6J}VOOf(?Q|Cw7M7BbxNvs1`F7j7;^wp{ zAD&|7pHKDccP_i*@9y4SRb9P3_SM~(Yr@?}w`|$6q_L54>gm+ER;8;Ru4w)G<=eNc znwpsH`S-&X1{CBw6z`m4E%c)7-QMqU-~a!OGLZVnwkgfcs@Fv+Z*{=JfQ%}6)t5`B z$6fmHVMAJ4nnjK&&$3Q)#iN#)o54B6C6KW-~Vsxmh*>?U;lh9I{&7tZsM-Kr=Kf* z{rs+Nv3pu%+1u0eCYt+7-8t6pz4gGK=cV>p0KjBq8`;V=vy83SIoEbB2TuQp#vD5PV zF6rW*TR)ZO8|xN){Z}i%#?F3MY*W$BJxfdT)XP3qdS4Ruw^59|>wH#Tpsl_A``7-s z>W6#nwtt$%$-p3Gy+L8d*)-8!xAHqmPfV?>b}fCq;C_<-t-CMO76snTJDOw|yRRk^ z6b~CCLewS~{(m+1^wV#teHO*dmL?`C;VUC_w5EE2Iu3vT{=F^tcyYhossf8OP75Dw z+cxvs!NWz&lASJhI&YqSy6M=lV{bxDOih;tXe?Q|QgipI=`(BYmYC+Wai$p?8{eK6 zu77#g_RIGV@YnxvHfJ!uyw(3|rNQ*+(@m|cR)Nfum_2P#T2$M&({+E|?cK9}^W8uF z&x%cTH}vj`H{Y~x-@9{#*UzNCyX$`W(6dktk!>-X|4f@ZZ*zpsGd9iQT7&vKA9wrx zFnpe+zMnIB`}Op#FChM(ppY@I|7Py%tIO^GW}f_96TI2(+s1y+tJ0lSx*llwczIPnAlOe>&5qZn^n{ zwGZabsI9E5JiS18+0o@UC#3D-dACG*PWgp}pP!$$1gZ#K^soCQ zyz-ary}atnlcamyOl@srg&*bL*|9Lg6fA&~^@V1c2 zv$(lu`u3;W;<{5-T3OaAO}y~y*ROT!&#&E=#>CKYj8BDQ*6asv&DJJKyVS(ESV6td zvaKO|GdWwGUcGu%l+VP@&VKirh%wjVw~vl?mt9=<=k5J}Yo|@09=gIwO^pO8Q=l_pf)wk$nZmsG0rJ!bS>HgU#Q-T%-WQ5-ru3R^@xVZS;)*|)wqTNUD zEcmPc|C4^%)+d~Y^Y{H+mbCE(Jd|>8eD-|9ZoE8v@6Ow=&Za+oI(Lf2)0q?K*=jdlFo8OkmId0x(d$M$4z>1l_&seud8XwPl@4mVCpy}sZacTby zKG)seyYKOz`!)%S7cV~d>Q&a|?&;s}m>jlVx%KbOir0r8Zm`Z@Pi>1S2(&&tYrezW)KDf{#H z?s{AIef7Ni7vH>jGwprH-Wk_Fp8KEq|Js}TTWj|`+x&fYz&-24J+*vqEZH7^+%b8T zpGN+)lP6Eks`Pw&{(!ZAf{onzo7-#b;y>@*vfcFQz0cA8-%F)(gWvBCe?KcyM=aYe z`@P+}Z@>1;2GtuD64CD&zORUw`{mBQn;%w{J12d<7x7#7VZn`Zr}X!}U3)9?|K*f1 z7>B)PaeUt!xA*A08GC0YZ~uN+#(%H0&ElEYzkRw_vGQQb-MDWbO?OvR-rp{HFF@qm z%sIO+K7Skg=wrp*WRur7=I_1!=FOXJ^S7@uzx?&k1wT9G_q@Aa)%*iB;?3@VcKc?` zVfK0V_kVq}BKN$Xeg1j2)AajE{-@rBd_T=sbMI(%??%(l^U^k+-=E0twg2coHw$Z? zrkOs+V(-s8aCh~^^7H$|Zgk(bd-n|Pso(cZukb`A?9zO9^vjnmMl*Zb+S~8y&0kfv z(|c)9)$h04YuO`q)co8O79O6x>!|DEz@STetn8MVCzrpU=ArVaELwZ|>F8a5s?Z*On^UefdY+}zJ|cf?)&Y;I|}vc_(Gj@j)3uKu*j-5u{*W;z|Xcf5Ja{QcGT z8zX$S=iR;aDZ1Nj@jC^}x>%*N8dFz>ta^4c;PdZ4SC-qUhVED27NN7O{9fhpy=*tn zPn&gqPk=^7P0gNV=Q@rioqAdn?RMhM`D_=XnI+%r&F_nQO3BNYub+9Z*wDsiO=~Ob z{n|TczwQjZ?!&;aVef>``|E3u8BRExW@==#sIjrJmUoZEo=Y#csHv$<@ml(-P4G(k zIr;sP3=9G$zwaq^?0)|K-@Es3lw^vn=iWE)xb$+%u3fvN_&y{*n_{Be!^FVA!s_@z z;^zT&JB6z=vlx$`|MhE^wfpRuR;>Ti6A~O+og9sgjisceSI-PetF4VanR02a+97LS z4h9AXfeWTzW*AQHmR`Mj_3wWCN5SKlDo-r>lEokW;A%fy_5E)7)oa(%!a*aK z92_tkIS37aN*Ltk=K9Ekbg{?~JuJ$2c*R1H3kVty8(-y-aN`9HAv=&d(rS<}!wx(s zd!kV0xZaVErN6#p&b2Idb9Qzv3r$$NX3dM~`~NHr3k%z_bEjtjTSKjxiOG__KE9(# zhI4JJudQQaxWmeFutAaI-+Zs7i_+&+y8Wz)OFuU!Fg||1m6g?%YuD1&b1~d#{`s>q zH!ttiudlCPy?b}<^LhL8Tg4dO8SQFQnxHkc>(}q!qTNSJK0ot~-BI9p_wL<0GZ+pq zN=QjvYULI$d45i|_QzrQYwmWR1atH9Zmniyi0V-2aHx7VGyTf->&v;t^#uMgENIn> z-L+(W?c40CPbbyiYB4x)3$h4WeE$6T)br1~Dn2fXWo5`{^q#J_GH7K+UERHPOblB% z91RjAOhc;ve!X7$?2Kd-6XOFtkkWPW`}4$^8KPPgIu6{tb0@^zy*-wPA!FgbeRgZt zthsTNp+QWML#ZGvEbPkl>**ks9dcR>1?33A6vSrJ*Y}}Zb zU!<{i?b@Bc>&$1qKb!YWd7?+o&wn$nzk2!d<6k`{28IejmPXrOH_z9pc~-qx*q(Lj z@=H*@57C>ReX4&^j@jxAlU3T`>olgHzIsJhU;p)~soGs`i%+F(HZ9HA8>6>8c)4F@ zZtmH2ObiSKAfq&w^yGmbAJ9hl|)!VmU>rK~>zjix+ z|Jn?bsLlTpuin0`eZ26AMPF>`6IUg{@4J8OzW?{!IyR_-e|%kEuj~2ih`L>1@VHuH>l!@2p6m8rQ-9p;ol>aCU(?)XqNZ5`t{|sitl$ooiRZMh67?O2OBI4AF(WM zd$%~pY;}Rfnh2e+;D4ab!?XLpb!VU5#oX57q_}nacI}xydC~{oysfILy7T;(&&{&+ zf#)AQSfHW_8`9Ga-91xn^2uf2Z@+nc>sHj+1J<^-wt2DD)w}mb@*3|rd*#ZMD@PIx z(*owKTeoi3=P!@C^>3}-<+XIud$X4%QA>kP#_iRVmX?;1mM-q!xp!}DaB%SMI$H*Y z1}Q$Kr;m&GqYR?dF%OST0_?xNPd?UAta+toj|dOmC{!%}`#^ZrAjL zgadc)<$t^_f4p$c#fukpUsr86{J($KuBgqiCQ_v;mLDtbXo_{4mRetY@mJMy^XARp z)ZT66~%g(TcO}FWQp02*W_awWoEB$YV zvOoLt^Ygpk%YrmTxmYdx7CS9m@bF=x=cO}edT#$pU2-||?3ptjlhoAJ@4o%?bI+rX zJEET-FZp@qY0<9d^QukE%$DVt?Oyy+Y1y)6HTU-iXk-)>1x@-gb$!j!cMitI#l=#x zvY{IzraZQYiiilv&tGqCa7ugqo}_#w&tEV7>$O7X=f8RLX3OgA8Dcw%cCM+gS=ZXi z`aSZ{&6|-ctN8Z)|NH)W&gJ{}*B9+v14?aY4;^Y+ba6$|&N;ttnk){{+PVJa-TtJF zD?+rE#^`NNeG*{cvSOck6wCMb`WKdk9?MfKvRP|%G2_a*qB*hKII5yI{fRm+ zbG#7bqtZQV1D2I$78Pwut6hHUR7Rhxoo`mAR99Q$r#(f3${i?zIV z|Mzm6-?{VkFDps#wb#bmPd>ThYn@N_vhOulvjt6br(Mjr@_nxl_q^|W&zL-!I+0o;7o4$;(N#R%LImt&N_v@u0c%zP(WAj`g39N$20V`s>GW`#f>at8YQmYxCbNTo(P} z!-s;q-%UY-buaB+_3o1Fba`UYH*MN9k?x~g_U(I@_Zc+06LdigD97YBPo~DEYCFSL-7cV}ncZ_f5g~WM*#zLJfZfZ2 z=bXAfkL7p2p7}Q-F0Rb|%9rS}-*;}O+y9PSDRp4)vuDp#Je{4LO`q2N`@R4F?Z5x` z|D3&l<;vB^t&QHCoUFcGra#heu2tyf*v)o74)Wh}UH7)`@Z-mi-+gYmd-tx_^2^_} z7#I{Da5NpzyR)P4aQUr{!w0qmNv@rtw`B9?;LDdU=Vd?bulu50J$2bzlO23~d|EPm zt7G(bH=otf(_0mwp&`SkJ=5pb>^r7wbLLk6|NH%|5(5K+xTC<0gn+L6&7HKwzy8Rj|fj%UcKVy`<=zlv#zaH7wgspO*;Pj&~AU@>biOJ+j15_YOKMQ=ax;uIh!N`ICzIcRw2yv)(#WJ?(VrT>JWc zi4rmK@#V}Xrtklgy8RDmnsm$Ay7lYVYm0ELT)ldAo<^>UShuEJKPbM68Qm6Nlx=SoZGr8*kMK`^Vxr?Ml)w!|1ewa(C++u zfAz$=O^Zct-JbPQ`IYbF2TyH}x!u0dIITv@)(VgFGU*ZrTJ1daqg zf>edE&W*AL=W|VGnZHwTRT3S+ir{?yS$*J@p?eVrKfd{r}Pb z|HZUQc0WVC_@}zEX+Klh#QjB)h{w}-wZpO2}?d|P%*R5Lh&RJ{frQ7-Y zW6N)+m6Vn3T0HI8xwz%(OMa<^Sn|Iaz{x;2$GkN2TqMdWp z)YY@kfTw1sq4gS4iuy2<~!s_t_*69dB=mlHql??1uVD9F`Xav}bAZ!hn6wtoxm zXWOq?yY}UilantA-i*JJZg;w|kx^Gy_vY0D3omuOHe@&;uiJEh@rG~q701Zv=-}$= z-9nu%cNu;E-T(i)ep31oFPYf?U*rF$iZe1WuXQ+ zxYFaYbK}N^C01|yzWwaYuQ|N-@Wss=H!jS+zRq)!T*U*%-BO^|TqctqHpOGQ@ zqEg3!%zyXbNZ=;zZ3j=N#adeeC2s=IaDA0d=>xK;u94rhB zydXV0|Nr~_6_hPsy?eK9H3Nh0r1Q_eKAG(Q>fBuGGEs&FtQmqX559c;nwgq&G?LcjgL9dQ*8S$9h?Tu_?o<$8U6{PoBE_Icrq4B&3Z%h#`i%geXx z#qLT02|c*AH9IRi`|^bg6F~hK!Fhr%3ZYt}ckBQEwJLtb((kFY>tc5= z`}eQz>E}u(1qKxA_xpb9fx5g2(<|JFUJ%qb zXWKTjP%Y8j5)2FszDh)|7&vVH7K{gRAyjc_@)LP zB49d@SVn5cxlg7^p+UJ_;YYpJ)UJ7z&m^CIt_1bGYiny?y?7B29X)%m7DEF6v**vZ z?%cWZ_4W0uckhlqZ~x!sdX!9N2`_7d@~WVfEB5b?-x%Rzo`3I3E4TQSyLZp_ax%y? zEL^Av>PVNryK}MK{!e1<6J_~}&z>#YD^-vpz{2>T1Aou?!3hNprUQZ|_V(**?ACXS z>)#4xXb{^`@^X^a)UIdGpTE_5;Gw|5WKo2>>+H_tD8SIS;Otr7(vlKzfBDtx*OyP7 z>Wbx&;bd`SuxJWH={sAT;%H(hUcLTv14tZBn(mb4$(cGr1JIKH?zGm zY>yv5E|PKg_V$KZ=5XNeuj~7#snk9ap1)x=1H%DBS5TgqV^P=?==?p(s9>J-1_SFc`u%BM5gL*>rF%$}`VODu+{rePtM+8t=5MR?HvhM^wS8yy_U&6QwaHP@ z(VN5B86I3v=3sJYSi64x>KHvx^DFfCv%lZ(hbv9IaO6k}S8G%BzCC-^1TXi~oa=Xe z&HXi>pP$c8OFQYt$@P0rQd3h4(VDvC)#r}B#~M?;JSVZSu|2WqlR3V!(${m=?Ae#!yjdf2JaA*g zm95#=--KrA=;>vpq`0iwmj_xJF?a6VPz#xBckbMo7V!PC{QroZF@6sVBDlG^-~AKe zV(sng^SYXxk|51+AkayGrGdftvYXAX7mLfLo-S#Ve zpp)uX{=N#|KS`zb^X&Uq9z0kOeedSYl`mgrx-Jep`nd4#^ZI|wquCh_B)SW*6sW9S zvnGdA$uSaCgwOAbHN5P0W*%etJ4Re%tD=*P`=x>Q0Y)zvpvb-u->C!a|G;7H>G382aXb^7!tuvu_uP zZ%N(X^k8lDb`?+12 zy;a8U+l}N&%S8hwottN?9lCo_-IvAkp++-9%w{ju)?j$xp$y93yLRusdhueScyfCj zXeCppLE3rIhk(aMu2Jx>}toH=o#W6{MG zyLRoG;t=9aWF8JK0emVJk#uvMaAc{=Gp&he||~@tr|Rc?i$N;r-chTJ2{U& zE?m2Q{q-DXh69OipeQstf99v}^ny9Ai!bWN=Kh`b{a*F?dm(e@&b2CkH)qF;$_Y|q@1$9Hbr2vC|B zP+k3d+FLeuc2is1w|=D$=Ozol((sq=_&-j!(r$G;Ub20A_{EHnNq3(A%~=}c85yPeqq6yRBKf)^zWU zwQ1E~&so3!;dgU`G-S=&i}@#0Ha(lU@90riRUuAMF4n21Q@67QUj4}&I`_vtYXhH^ zAwg!duWsM>RoAmpSR^| zb^4}dZDwJy!beRx^l(CX`F8857b}C8-&r?zrq8mpuFj7i3(M;cc6M^QE)HyUQUt9F zkdl-P+!+&QBX|A!{(q(A(hLlI)}VmvnQ3u1c#YEZrk(k=dCIgWoS681gRGp z__haVsOa5iDEMAzdo0kk8|MPy2IUoN*ZNNN0=1MFGPuCiM_(TwXuKCR+(;HA85t+mG4-*iO<@PusW1Nhet&(YaXLo} zq-A#A_WPV?&!3k*KPS6&>(-mA8Qht4n-~gQwr<_}^4whOUzg|qTk`w;{`m0qaZh(T zGFUK7^>Y1L6L)=GY;b-3{!c$atuarIBNN@a6&PfgKY#uV8g8C?{yAqe!-n&>Zr!?a z@#4aF@A7Ovolv%_{SHTm|0%;2dXcJ18jiJH0a~)_*nL&V;eV}QxS%O8G_LH6e6Y{4lpKM34r8RQkQr)Fdz6L$k1@O2ip1)E|NLEk(-g> zz`Z$kwNdHk=3E3dc1v~8CLyvl8kEyBGCXo~b75`K-M?;tmX;SVGzqb2<8DmJWPSep zc~yv3)x%a$Q)%t<`St%I;!nQ-E!i(yils4CyC#1QgG{`$vok1S-rd=`n7{tV;a?}* z?G~Lq>s!4wxf$g2vZpiC=Yi%s^kQ~6{9rCv6SJ$tGyeCj>tCKs_P-T+oXt^yp@F&J zjyvz%`SZi==3fU5-fA&eh=JxSyp}Hd`LlBOs|W=SCWZ#t>c8-r2$^hg{kSV%UtfRw zC>fOI8Om~si-TolWy=g1WVCB*Yoj6~H+J{4f@T?RY@9k(^y}BJH;*zDtdV)1_YV~5 z8Eg67z++*+30?o?m-BA= zOazVtDRpng6$L%~Ao)3+Q^QO^%9>-)_!W&;vFicKePU8lF{eHXhG9<-K&$ zuiwA7?%5L)TqiNbOLghxOz>ibs}qgEE6MAoda3T_0=JPE7|QR$7gNui^=W#1UF6fE z$cq^vtxk@8kFQ(-%^3RX|9%Qu?XIS#_T}I2_qRjco$~Y7%N!3}7!Y6~6Sgzv+S=&t zZ>}=P1cN+WaQ*Drvzjt|tG938zU)rRnuiY)OUufxU8w{&-WG(Vr!T)P^!xYy|M%9h z75G3Lzjforg-#1MER9~FviIw?=t)b2)%|XS-f)-y|Ks>uC5GdmIlBhtf=5R<-FR~^ zWv}0>=K1RV`|Ydw{>aQ?OuzJU%kMMs;o;M*JG_)87R-;|vfc2!uAh%jj^u%(Iq~3D zT$r&&x8#ST`3W-XA(K3*n`KCJm$FD5P?syAJfuYIbI+S{!7n>k_X{`0Qfxicp^OhW`TPVSnVoNW4tX`+rUz?H4cZ7EKaY(KwUL{?YHeMb%h`_~3oZK=H#RbQ25C*5 z^w=UQDr!}wZ)ksRSy@=$;}sD)uWoJ4mXeVPF_D^Tvv%RO@VH9XNwfGGv$M0MBqb-V zIv)%g5mA`&@ZrN*23!oFW_rW!lO?-lFgEWfEcYsR_>w{_F_Z0$F1-Yg|A zAFd)aaTW80isJw?Ak9c@@5YQ#U+`%*a#*Z?W)N8srIDL!$EXUiJH}tG~~UfAMKs(7unyq)kiD zTGam96071_^{7*QN!E4WYNhWvX0QEbCNjk;FAX|b8+Wn9dTZ>?qN94N5~IxTS3Z}8 zCF%zZf6o8^(?75J-A-NIpyR1G_099{Oiy!0l&w6rv6)xa*@b!*pZ zO7&*t<@qgMytwM+(&<^R{@wst?X&&-;Rh?1&zrRByr9(5pp$>U=dqp7EUAf&jV%l8 zogPe8gl$4TM6}de!EhX5#_mzs~ zM30Qh%E-lw7i)=dy*psW(5DV6&UR?$-PsXXeyii$IlsRj+U-LuWUhVs^l2JnXdk!m zk7v)G-N{>MJ<~einuFEXWs4yblw})1McB?5zl#|mmoH!5H=ncNaVw~Jj>^jgtxT#s z{kbu2qK6B=-H!!ZPOp^iYjT&b4S84)(dy)Q|Np=5OJ&c@^Lp*}H;b0JDhZnZ znCW@{@3M_I&P~-0zvD2|L*-6m9AqkY>)S7a$3QFDc5^@rK;7{CTOD_;K#jW7r}g*e z?-}2g(z3Fws;a1m1)y$^y8pZo4Ur%dsZ!^p z#V?f^SolFfzh%lyvn2h`pJmzZ|NFMx)XM7BzuP72@2os{(9wK}sdf2+`6)&#WAv6^ zycpPeIMFl6Lgw0w7b}W(%G|YMyuxAm+f-73fq|nZKx0e(XHGLCGqYtgXG$&&((LW; zzkT(%TXpsBQ%^T>wH}Imd#-1a}r>t#9UBleKuB z*W%!L>&~4m-3&6t;L4w{F|EEXQp1#*K!amq2qm)mx`U z#K(u5&7P`K`zBd_^J+$!;1bZn2J369)&(sM@|6Gk!aY=P`rS=od)_-5Pu?zl`0(L8 ziR`Ipi%LW~U9zq*H?0f3zB_EOs{jLoOw>dV7xVmkHlLVJ-vA98uC$tQ`pJ_ebw3Wv z-&(!p%7+gd>i&J6FU-`)un?sFO@xKawcYRct=_iHY&RD}pD4(K46CfHtRxax4s4u$ z{`u9rcXP$%xj{bLkPNGh86QM|8X^o8HvfJ+1~oI@Br#Z+X-(}~7r%eqaryc?>#W2; zjjDv>zkdC?a`*09@9BCsLm3KmVs@AL=H})~Nl9&5-N(w-&B(y8J7{G{$^XCKvokV0 z&fEXr6U)os9<(&*V)1#~b7lWcXt*a=WT&DLP076?dD&< zx;p&o{rjL{oZ062a<>IEK>j#TH)H<%>#x`EUsq%2FTqmq1k_wyyx6(6wzlhN5~!)O z_tZw%FxtXw4bVyy78>p80|yra*;@ifwG#}wGynO^XRX__z|hLU#=yYv^uYD`3=9m6#X;^)4C~IxykuZt zU`coMb!1@J*w6hZk(GggfwRCPvY3H^?=T269?xHq!oVOA?djqeQW5v|?)z@(t4bSp^o3kD3y-)s<(p%;;ld{qQ#4=78{B8Vm{ab)Tm7Y9 z(Y1Zwxu^X|OHZ#qd(M5<%uo}>76w7Vz?Q%BXF0gIh?w$(xwwc_4j!_aFYIfT?5t%A zFJ`P*?dEscEx2?HJ|Q(t-8B?uGaL^j+afg>-;R=zcg(1*C~SA&YU}^H2w6#t67!b{@Bl+ zJ$uI7xuu`|{rr^X`u+Z<_;q(&uN(8rl3V5Zzuv|_yS-K~(@S>3@t1qqR~25pm}1mf zV#UiaWB&a1WtmyiX6MbQt}tHty*Fe1H<>kBQ@MB!A6V$zekIiW=*HyZ1&@#MrfiOk znAW=c-7fF5MrK>1c;A*u^V@uAm|gbqk!wzV{^3HIn0+;p-QC>`4d(Z2E^kg<&n>R! zaJ^JzvS)mi*3_od$c3lxmfwGST7H|a*=*O{ciq$`AMCIDqFgF`=G?hQXJ#5RJjk2u zqZX(kVqk8*J=-8al#6x7vd$Vi{>vtJKQSmwKKbCo!^6AT@+BGA6k87b{QUgmm0$Dq-D{S;O-CQ%vMvTG5M((|*^wEE-udZTH&^a9x z-nvQ0d&aVt-rdI^+a6!>dY1vu;pxv(Z*OBz2wFL1c3R{#28C5uSLwgc`;~h+$E-C` zf~jFc?rq=uw{CISmfzmiy6&~p_0ssN8($~AT$cIk+rwD>)5S8!xAQgZ&dJI7am~}Q z)Zv}+n?1(^-JjacKD$idZf(N*{)_wGK9v)?+x6|s*;QAw76z?+aFAU-B>ZlO`RChH zuIJZ%mX@)vi}8Io(MRo}h2M+qoIlsT{_^tjt5p+c&6;({_`D4>!;km%|6ebw|MT%U zL&N*p_tkl`Ol)m?L$q4UcH0JoUs@Twyy4yUzLzgEOHKRaY`e_wRWQFTlU~2?*Q#Ao z%QBs=m;QO8ZqNC5naH!v=k0dry!M|zcP?*DMbuicOD|2-)YY9opR8SYd+UhMkr%SIZrHrJ`F+iE>sPDfj5t`QG9P%W$DMV@ z{q3)>ud^n-zFU4jbTR{j{{BBkEdmx*UsmiowLEV9;X;`uK`Uc--w_iNOORmu^t0yt zkE>U%Op!j*_L7gKf#3d5fbXl7ix+R&ySG<;eoc_CT!h~A&%MuEuO4?>{IIY3R86nj z;^lqbhwmM(+WSu1e$Bqqf7h;Av*V}E>853wjX$|tnM}@0tPwLv6a5mi?DETbR)!h7 z9obucg=Pz^3^{dOReATql34MTAzmq)BLlUjwtOfFez6ObrZ(uDemiMWrOIWKyYJ*q zZ@Qx=mMh!_NJR_E|kVH z2t-Fm=T#mmwp+Cz&q1-pfJb?Q^s*2wPL`7Dudgq0Z@O*P_jt$at9qWt3-5e3@x8ov z+HTHW=Qh=RjcH2Rd~;s%*L(L}lmsj8?yX$1AbH{yD=V(P$6sWA8{BQk`upvgasJGE zzm;CETjT!f=ewtJr`|c{|NLZgB`>&SKJQ_JJLw)JyLVh&S8#D}{k>o7?rl%o{PLak zM2{cyyz?s$Z;>uB;Q2O1ljraUQ=d&6gS2<8nbDTGt;D`iie6#bp1V!Rhf&bZSHMU&rD8M{=hhye?|HHL&f`c z>%Q75Q8IhMMwQ#!?z$b=ts>MpuR)P%-R2j{W8 zt!vln#?KXXX3>t^f7MEfx&3={%NprdU#I*II$wUHTH|!!>*hZT9{5gAUHLUcZgKga zK)d35#Ubx!|Jkre?)tG~Z3aBfA*-)0yv1u}@ykAy>t;u_c1c9Cs{DloZqDl__wJ|( zxYEApX3n>e3c(8=tfq@z)J17e^|F2H<#^lE@%Pozz0Yf&{9MhyfTObEsU<6`ZRE5+ zN2Ir`_|19C%}i|*!7{VerF?$oap^V-YjerJxmQ9Awjqgt^i zwZYAE%c~C?)HGV2FnG%*E92ZB`S<7f`nE&~=HAUG4&JZY+ZUtvJo;Y!|Jnn__b$9F zNsw?mf8gttDTO1ap#Uq6+`^0>#sAm->&#_ z(f#h0pFb;8j3hy+>E&~Vf)^JQRfIV2e@V35_n}$-&wCDp?{B^jQ zR$D8(E%$JtOwIS*_uoqL2l)E?Cs$TVPS=lb6JS~zbW%26s^rz@`hTD0O;;XYKEIBO z;m5V@` zQ&W3j;g@hYWM#;eC5^IHB^=BB=YOlc#nLeU@0;|jYy0k1zqeHp;*7ub^z`(^NU^Z+ zaOeGvDw925?CLAOSIOS%#(XqsOEr?bv!jrCTkdY- zdu=NhH}5KYE9G-p=2vsq^>gR^68`@CegFTvf6>$AOX9C&@19;=aa^{X;cottSDQ7a zpPsJ&`xJ+AwZy%e&%QBxDlSeJJ7&Q1=lA{pVUzF1OKXa7Id7FNDc})Z^TfPa*}ZSY zYNnH2(jpR_?T2_W=S(Lwy_u9 zKWxBbeq&jX=9@QfzSR7-um88_eg2z=a;Nyk*6;b`i^&G{8#fXFfQUtdaE}3EF0gpcV-9l*j;!J7c5_JiZP*7AadF9 zsViUaTKD~pc&%E*iJ8tt1~*^%iB8M>6mj+Ko;}Tni&j<6s5o(@)RWJnop+x1r>J*k z2M-0QMZPKft7_TkI#>4P-eX1c@4YrT!NTo%ZrbO#;?=*i<%{GUC(G@*9;v!MI$+*{ zWX{!#7wwk+Dt9XTxvujx?b8#5lbY78-&6PMFXt}*-M+Ek{UkVM?aG_AZ1%Fa--+)R zzWtfXJu}|##Ko!c5}do<#eMqec7jE@^mp3kmvQVn^DF<{dn~i;?t*5;JzsefO73qB zILU7JB2nyaTU?k)B%|(Wt~rvamG_n#@EpDyR-168-E76fA{qB3L7Lwc-M0&Vl}o=+ zHtD;g_t(mN^%oMMpY}A#WqHP(uInz3|GRE~fRux2LQZb(&v*Sg_Ae~TcgHQ-EuZhq zdH%P(nG2a$9OQ-~3`bJ@I?ajI!pu`dL5rI9;?mx%~_K z+xN@=uD+TzWA<$4l_65UQ>JQ6c%B_8c0A|B0m-a0T^e2Q_I&m;eL2m{-v0h)VONF^ ztKus zYm0FGII3UQICrk>0_&&0XQt0f{4OsW0qOX>VN+3BbRv0!5(X)?dFxiw5-VBLnH?Q% z2W~bbFMDle_v^*th4mKGJ39Wg-(StkG&!?D#~g3<%8z?KJwn!w$@Bq z`DlV`ZK;*4&G$RS6^}aA3!a`5wfXbm@QfKV0yYa?WZb-CM~C-xy~NB+PIbRI0pa~3 z&7xnw{(8MWIVp)rf8UQqySh3!&fERgNlQ!Hux;D2byAXS+OJ-}y1F_dDk^AlXGe^; zxA%^!ud8O+81aN9ms$J7ZqJoAHa5;O5}f$@VY~b>`TsxMO)FC*)~s0n`uh6E_p0BA zg0wyUmvAn@)x~AvaTuArb?45`2%Tr%(UFk{pFB}9@h!e=;(PedpFR5b&tA*gx?$6% zrU;#9`@TqY9|f`97B5WOpP98)%EZ@MZ+dWe?-hgZ33YY*p8xap^IH_4@#B+VFIV$b zUxRaXcUDxtUc0^E&yT|I@1xeXUA-E*=i@PH0jD3I>LyC{vhm5=^<2FgI%65<=}ifd zVm_BkF2DM^YnNmxr((gsKb1CLuLQ?uBrLxz-h6e2?3d~3+EcmY>i-mef1iDQ9V3I7 zn3&DZeHH8X{nEPi)@;>PEv{CkY15}~+_R_0X<@_KwYpnw=gzUOkGuP3nMKtXjTV83 zxVW%z*Hhv9e}ys}P@iA3Xr0n6b2e?M*+n~f7%YmObnMb9lImsSIeg&aV)v_|9%_>f ze1(rD1;)BE+WmfGY}%P|Ut�&c83q?G@$vle4nCVz=tA4dZ@Ua!dC6tT}UBtme9{ zz8bW7QP}Flva)Muw{P0iRJ4=F_j17Mt2LFf$2s4=`u(7ppJ})5>8G2b_btnuF?a4; z&G0_Usi#xR*QA$~iEWJFnLK&&zCA%YV#UXQ9Xht=)mN)YCzs^c_?~5E*co%qoNv01 zTKlV2pY!Cqk8aqxb7k7cpC1nMUsYLDo4jGsMoqEqiYF7@uRN)pnC$(tM($*a(6m&= znLbMM&p-a~@bJEdP`&Af=H~3j3n!dSo9MN4!ujWgpPqQe&t&-USpL5RgMqPebBa;t z*|TRa98eYIVzv2pBRTKqwA6)n^OE!O&ixI0sro%TQfyw$C(k*y)naeUcB|*_jcb2w zVNv~UjsD%$VXG6<(%5d_zU{FzXoC*-#t5F7K5U?l+`ba4ULQ5)lJB$6rfuB2m-n&> zJ6D9Zw)Vca{qpvG#_8u41g%^V*?G+SLd0CFQm>d@C7!%4R3U~V*RD;|ug%W(W&m}be2saWU+mJGb#~e8YdL1E>s~W8 ztO#43x9i0;#p@?sua{2rT3Yq#R1weN7na{bnD8##WSMI{Cxw1ZckZ-2^0@HNm*w_fpUO@v*V=Ra&6_p9 z-`D^9JfER~UB2eR>$wzBT|^Xc@D2hIE!a?Cbv+{hSvz4r1Z`+q-@7u-&r ze)?(6>EG}7^Yd7gfl9Kn-Ea5J57C=`F>m|E9XnQ}m7cs=_P377TP}NP&`V3Voqlo4 z73SCd(qwp`9sjdym(~}#h-s{c4GfHpFB_M+Z;|H-GZ8zQB*<_3Wx^~O&mt!03*2ji zgM%$3k{@1nVpMO4)Vzf_n{`udZ-l)y=ak^f*=kK@M3=N=0=B{S)vWW| z19$TLiVHEC>9R4xW%0!V^}aXH-tB(Rw#(jN&8<6kjy!py^6KlZ-+l9|V(zJCtlFn? z{$u?AU(~`)M zuX&5-Y*0M;n0J-9-8nyG zj~AxDSsJ977&%Q^X3s&F5_PW=Umybo(gzl>Xdf@UqmU-ib|P(a-c6(Wh=woErZXOw zUenyvdun%n=!I|Fa=Bx#-!0y(b6WRs^_)+)PEJh|Z{(QOI=Z~~)Bj%gYr5CcN!G<@Z*O3i zP2PM{WLoOaG{#qVXI5s#tqjrH$;dU&?QXSBv&o~PXR#N|cW-!`dt0p2<}ucbjx>V8km>kHf_s^zy~!R@dM{vunWbYpfDFz#As9MF4mZuz~H zkR)_BB>wlU>kQ}n@AL)R$hoUcKKSR)p5JvBCn~!?u;9CP{rc56Tl_zXe|?(cx+pNo zT;Z$ftM%WswY4K+V_EIqKL`u&_gQ`Q(9v%3!iR@gE&7-l419(4_kI!Dz0%F+vdN2G zeP6$R-531+5|{TLYPex8m`N=rNT_pPOpRfW}D zzMR{~ve)lz^IP8RJzcN2G-md}uC`6vwzb{=|L^;TT_?6qVM$9%`*1|q y|G|}&!O8zWoPsnj47HV%x@_2n2D#@yyFu8_w^2oG^B5Qy7(8A5T-G@yGywotAZK&{ diff --git a/media/image33.png b/media/image33.png deleted file mode 100644 index 67cd9d8f082ff0cbee44543d66d1f26ad061a8f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7273 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ⅈOToSGShBP{(ZZi-d@G% z|IxCC4{)V72jC7eC_(3lIOAqNKD) zw|%p^)tOB?H9wzD&;8%1qolOxY@0vC7`#Je7ZPJ*W9Jlky13kCB4#kHL?Yc^K=5MO zL1M<*WRKkxc5&Gf3m=LL$XLC4b;aki=7u&lJf}Aabh_*)c=(AypPf(UK&PAV@G2nqwUO&6JHN;>pxgu|9AB~pW8gmY*{bQ&9%O< zF}Z!7kIR!=eDM=jn4(8O>6I^EOn&|PRg)|F`b! zvr0mp37MIm@mC$rOM{2<3=9nyrmHI5+9F|+)4=}I_I|s3U59vl&Bed}FI^H+Q&%s1 zc}Z1cX-#GB?KaSG+KU$}^y?$8W{KX+5xac(@~>6DpS`-eT0^XR#+*4v-n?0}Z&pV} zaMFbfiTuC%6+|Izn|J^7L8<@7?(+5O*SG)r^~=D{PHu-X=>4Euh)(ykR1ytwShf<~*fx;i8DNE`+IBE*RK{<_j_<>XR*i9pc5%ZpoUSOy#2dA;filJ(=S$MY6$~p}lrB!VUO1<1ONPm-Wt|Z^%XChET6(fB zJuU5y$?-y|bEmiErbbSCKSyh7*Cw6SitAU&Ym0UNywtHxYt6#-3)Z&!OIf{{TYm50 z{{Mg9x4mqRPK|smzw+0Q$NhgLyUWg+-*!AEb|lGgj#cTY>ET;u*TN^B{+OPYkr@BVP4&@%v#ZT)$c5AIT;F`oDftI;@tD;l=g|V z&A+mg7WuY1GMBp8%|HJ6y#0Fhd`??iTMxC#C!T*^5w;rAz4`1bn|u8*zx^8Zormm1 z6_s|~moT}oYjV8p7rRsP^76+YJyPOoWx7}KnAiW^*_T(t<5^#=k6ahClj-)h-u=1{ zzg}?WXJpv-;}Li5)Zf2Fc71++esO?CLRuQzGn<{eYs;@*mdSIi%b6JN)&Kvy z?Heebo_wynl4bhm%X0gx;nJ~tDg?Ji@g6>Wc*cww2aX(JnOF14^UmJt@bg?(>J2A% zWSqXRJXql6txPqet3mUlG*V_Q@|zzgx#dKi?`4g>zb`E}Of!R^f}*a6Bf-BqC+xGiK zMMgH}-kvdQ)}f8b$G=>Ctt8Z`F!|(zFE20u(psdOZu^_-)|?+zO&SN-zkf%>mmjr3fu_|4q?C1=x_8+X~ycKqB_xc5A+Z~y= zemNrS|KQfvY*3NAud9P&#ea{R!u~dmQEQj2UzFRjUVX((d8>($QB(Z?U)Mo0ukV)MKgwVK!`XJ`Hc3#G^5TU?Sa^8hvon&lqJo0w z=2$jcm%n?k^?KZ8Pz7PgD{^YCb$P*q1B?s)J>SR9#&+TA)urjmi`b96dZpEMROw#r z_t-V-);&7Z$}RK#3q!&Mhg{3zXFUHtP2ayDLg&+ZV9e2zpDTP8_E1>n%fP_E;OXk;vd$@?2>|1mWVrwU -- GitLab