From 629bf3eefd829cd55570c1fdde930f024f895fe6 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 4 May 2017 21:38:28 -0700 Subject: [PATCH] Update frontend --- homeassistant/components/frontend/version.py | 6 +++--- .../frontend/www_static/frontend.html | 5 +++-- .../frontend/www_static/frontend.html.gz | Bin 140429 -> 140627 bytes .../www_static/home-assistant-polymer | 2 +- .../components/frontend/www_static/mdi.html | 2 +- .../frontend/www_static/mdi.html.gz | Bin 197577 -> 198311 bytes .../www_static/panels/ha-panel-hassio.html | 4 ++-- .../www_static/panels/ha-panel-hassio.html.gz | Bin 7449 -> 7451 bytes .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2518 -> 2513 bytes 10 files changed, 11 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 23437de3924..943074beb40 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -3,8 +3,8 @@ FINGERPRINTS = { "compatibility.js": "83d9c77748dafa9db49ae77d7f3d8fb0", "core.js": "5d08475f03adb5969bd31855d5ca0cfd", - "frontend.html": "094c2015c8291c767b8933428d92076f", - "mdi.html": "1cc8593d3684f7f6f3b3854403216f77", + "frontend.html": "5999c8fac69c503b846672cae75a12b0", + "mdi.html": "f407a5a57addbe93817ee1b244d33fbe", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", "panels/ha-panel-config.html": "59d9eb28758b497a4d9b2428f978b9b1", "panels/ha-panel-dev-event.html": "2db9c218065ef0f61d8d08db8093cad2", @@ -12,7 +12,7 @@ FINGERPRINTS = { "panels/ha-panel-dev-service.html": "415552027cb083badeff5f16080410ed", "panels/ha-panel-dev-state.html": "d70314913b8923d750932367b1099750", "panels/ha-panel-dev-template.html": "567fbf86735e1b891e40c2f4060fec9b", - "panels/ha-panel-hassio.html": "0aa1523357326cb40e2242dce9b2c0d6", + "panels/ha-panel-hassio.html": "333f86e5f516b31e52365e412deb7fdc", "panels/ha-panel-history.html": "89062c48c76206cad1cec14ddbb1cbb1", "panels/ha-panel-iframe.html": "d920f0aa3c903680f2f8795e2255daab", "panels/ha-panel-logbook.html": "6dd6a16f52117318b202e60f98400163", diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index fa6cbcd1717..1fd4bda0275 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -8,6 +8,7 @@ window.hassUtil.DEFAULT_ICON = 'mdi:bookmark'; window.hassUtil.OFF_STATES = ['off', 'closed', 'unlocked']; window.hassUtil.DOMAINS_WITH_CARD = [ + 'binary_sensor', 'climate', 'cover', 'configurator', @@ -20,7 +21,7 @@ window.hassUtil.DOMAINS_WITH_CARD = [ ]; window.hassUtil.DOMAINS_WITH_MORE_INFO = [ - 'alarm_control_panel', 'automation', 'camera', 'climate', 'configurator', + 'alarm_control_panel', 'automation', 'binary_sensor', 'camera', 'climate', 'configurator', 'cover', 'fan', 'group', 'light', 'lock', 'media_player', 'script', 'sun', 'updater', ]; @@ -440,7 +441,7 @@ window.hassUtil.isComponentLoaded = function (hass, component) { window.hassUtil.computeLocationName = function (hass) { return hass.config.core.location_name; -}; \ No newline at end of file +}); \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-hassio.html.gz index 719b9c608f185cedf81b026331d45d7403fd9af8..c7689872442293fb47f9500bae9c7482f0077000 100644 GIT binary patch delta 2296 zcmVI-5ENABzYGYyk|h2R;;kQN;Jwb~5q!vBVRkm_vkr27kp6 z#Ofh=qGV?dO+CvyhTVJA56Rc6k?#^$24HVhal$N_UM%h2=R2~Xdad1FYWihrN$T>#ATBQ+Lt94*TfI=;L#B|U)5!eNS!|-)ENMxg zD(fkOPm*XMH0!>DM4sT#I0ut|%+d(m>%%8$FeIS9Sgt_YbwbGR{nrgTVN^Pu>c+T% zDP2{yZ@Xl)EjxFXn}if3Rrpvu^zpIxWsQ8P8qSHfvQB=Z>g(eTiHNng4{p3W>A z=0*Q@c_Eq!1>U!%;5E@$@m}BN>#TvGFhlD-t$E65Z)Z0zxGw$2IRN&5eLg+Md8do; zu8_*V+y2?RaCj)}ZZ=}j+pT(+qy_vWet~{{_CR#{9$#sW^;`!bC}LoEJ!W9QdQBB4 zAax56U6U`FqigcYLsXh*+w~BNG2pHf_X2C>;6)3i?RKg%Z8x|$Y1zK=C=cXDyw|f(^noFkWQ8my5%JxqDcI}K&TQTk{2{$m& z`FzIvIe>l4pLY1%dWr;wRwS?aXTT*tk9Hcpy2R@;uGv$67}v~hT>DtgjK!<-yk#&m zy(2cYlZ?MUqjzN`OF-kS8z$CoE~qvQe#|E#^EB_59qaLvv7<3L$wV5sIE5RNmoNFj zSw4|f7vvI;&2n}xWHOn=5?#L4y=uQ!@_W*wZI@9Pias7gNmz~>7*A3KB*sq`*MVhU z{{aJS+%|uImpLD_LF_q+dYxzUWU(%ZbF)llOO#LCc-N=Fp}8|B5a_Vz*O{03DsSumxfE7c`anlSKak#k_V(s$u6vMRJ|LQX;3Y^*r=smf}(CsQ_}o-5u2!t3Hs>2W@Yx&Ux?dT;qh??YNCf?{^zjI2_b^AC=zw zKB}g2o=g?(-d}jw7C{Fa$Z#GHSpK<#d2zGU;qFh>M%3KIs+HZtLFiR2WR> zB}&6?8d0hRcORw6nn|6BUz(A*rmOLzY@=d-=1Q|#FzYbs%w#cH@+@(5jqi!$=&Kn> z8S{5X7aQyyV^EMspIw)7e^@6e-p`P%;rgJUKrvEURHGq#%_&e%DupV_a{XF?jT*0M zp-e6FvU0bVzUBOwb^Zmzc)L@#%i-G{(?2qXuDngfj)9X@KG3H9<`i?ay&c!dbRhYE z`99mpnzt@iZs#s?HQ`SZh;P2w&_>yl$%}%UP~FZVIuP)>oO%1h>1uLusUwF)=nAXf z=_fvwnU*eM=Q;2&@VeDx)`A70GhT`F4NbOZE}^Y`GR0d$mUmwpt7Z=C9}}aC-!?NZ z^WEFh?)^O){nC^1z8BX~vJ573HoyvhCvd*|24BXpz0t1!7U}=#y9=ff(dUVA1LiI`IozvL{o%+xy=$OWGR#+`SY+D%6_6++X~27zuN$5+MOZ`&QW+}E^7Np_ z{0t+Lf|lQ^t&zLgn104~3-HEJ07O26!7D3XCf1Pe2WlPf+=o!_ew;I7LgK-UKUDf& z{>0GER8#(Yg(68(S36b(+#2_PE`_XP>zmKnCP$60)%kragwuG5#`~dyD7q^7$DL8uyV?7n;1NG(z2gxc0kPv59u6^o&&wHko9n+F z*8Owf`%-a)!4;4E%m!cKu%Qk0&E9+O=nyt+X<#s_Dg?t zXyoFTa~|s6KV-z8rnZNS&t_I$=?iCpQ6LVgIpdsi*Z?g zKTOfY0QqsOwg&R{rkrYLdD&Ke*B+w7Yn*3|+9o=`h2Pcl0P65>LcP(T1#BSq_Z>P< zXydTi;{wT+u;s*9h~n#x?*%q&uH~#pn+KRPqE7lXRcLFaccit`twVP+HfgMt;TegG SDNDLaPyZJH4VrF!g#Z9V6QX(m delta 2294 zcmVm`v#azDr;kfW1}43A5ySvFvwS6U>YMQkhu?N%di! zW&B?Gy;qSt==B<&@5qDdwRU@{>6fb|smlw4xV(4_Z5>H$^+I_MnL>_EBlAn=v59W8 zq$Po>tfveh` z-*=lldlwFmf8EVS40^j&kCC*1pTrf=@5~;EPT%9x%(0%}AY?-f4DZAY3|OzJ)dZxj z^rLI?B@=T^UU`TX6K%U*KQRW}bn~AV26fS!>lg0}dGF_}B z^O96c%!Owkn(tCPrLeIXzQ3e3IlX>;NXLlNHI= zbkN**(Xjy%e>oyO-8A7~ICTl+W0-FA0DsOz^`SoH_I%qFgRldsZ=!bzA^Ize7< z#zzi+D#q_*d6q$1=Ba$m20?tAD&E+VLH|GfR8QI5l@Q7j_t@iq+I`|^_GxEEXgdQ{ z-=;G1!JjaBwBC+?YIzxTmD(3*rD4`E4UEh`x1&_pc6Z`vh%6fu!*+L4Q9f*ULx@Im zYJ^1e9!fuY1=dDisABea)Wn6Yx*rvKnygh#NqwQT)%%#79VxDzVQDL@eI?-rCOV(b zcs~cQkNMM1oLldYz|e~1HUA8_ejIi*CMTK5{T4@WWAgGPKP}5A zvg(3d;#pbFE`v-alUSn5x4KvD*Ghg*PPFX?3PaJyV<-trYy;y-s({4!$>KV&lPjEzi0G%#+uq)Pe9d(a63hogvk$!ah}nCE^e%hd zLO%yX{svv80k-t^9TIipV;!Tz%M&6I(a-W*>`ZSR3rN`Wuz@vPmnowza`4^sMzOx)P?&)s{ESRn?Zpaiqp|*&2Ki0Vas;IhK^v`fvbjLCAm%ccv%Z;I1u-xY6 z8QPU;`P>;{nS*cQ7xmlRDh}sd`*1mAit?ZNewLSK4jeTb>Go>AX2< z*i9o!wczffG+8sLGx19^GS_r9ew1xg%v@=IRtshwCY_lqCQF_rj;`@NaU6X$11V$v z?&xBJy<-dt^60ZWQtl7yB*jY^k~Lf(6ci{%N{ebVWKTE+>K&y}MOm(2E3i@H2`!YV zWnNb9_R_Z;8MDs6U>I+A>UKGNyJPxC#?Y0wsY1Nvm89}jHtmO|n5*sWxI?A`$lZ#6oIV?g~Sp7~v z@u|#QbP+qxfro+DttPV;EC`+P9-MDzvORMNZS9jO9uTrT_S#rAb6EeF7+w6JnR$cn z-j;UnkI?8hos37lxQ>!#FqyLfRycuw^W8W29FFZ_cKruP|4$!VFpZc-p|tes+`uv3 zr+>gB><@T(-B{m;s8Rj0{vLh0%1>d1i zdz{X(y_|EyB&bUQSoM>5zQ8OLZx$e83xWsgZ0k0rbn0uk32kj-N-`v|_aT6PJ?^`+ zYlPUWl~-n)F#@RTXSB3h8jP-&L;1~ukq z7?~8b{8nv^+|9=HGqziRH--Wr^6d*=S@ANlhI~Iz>v-orgnI1boEZ}m4`%#z()aRr zg?46_@*gP_d6Bx>u`1x!xOXXkWF1@I6wWp|YJ9EE?_(jH#`81Q$7&q)s7&M88Am+@ z)A?A8BGXj${qv!JOUO;v5<2WX(^bK&OzXI82RA-sta}dwvCn&^dV@RJ&7SSZfk~RN zt?-Z`whwUgl5{Okub)HFRmnf@jI!R%-v927_zmkFFYgG59dGY&hGT~*kMHRH;sL3~F4k$OA3FkaqN*2QJJ@SF<1*P!Fs-s*`cp$A z7r&hIQ1|{JBmN$>J!E_?gDvI5G$zvcfmlEC^TuN|c)3pgP_X(G9UdO!^1xY)%kraP ziY5lgk7KnpkXJV4RLdJ>w(`67`W)WfJZsc8(fKX>uAT=_hkq05jRq}X1G&HN(0M`| zhs_=rNVbG6C&oe)Uw3>Yuwip8XFb|Hz?>0v(yysPTPwXIt(|Tix|^{{W33F&NZdtP Q(p7r;zk*1?8FGaH0GK0?AOHXW diff --git a/homeassistant/components/frontend/www_static/service_worker.js b/homeassistant/components/frontend/www_static/service_worker.js index 244c0a6b13d..79fc54a2fc6 100644 --- a/homeassistant/components/frontend/www_static/service_worker.js +++ b/homeassistant/components/frontend/www_static/service_worker.js @@ -1 +1 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}function notificationEventCallback(e,t){firePushCallback({action:t.action,data:t.notification.data,tag:t.notification.tag,type:e},t.notification.data.jwt)}function firePushCallback(e,t){delete e.data.jwt,0===Object.keys(e.data).length&&e.data.constructor===Object&&delete e.data,fetch("/api/notify.html5/callback",{method:"POST",headers:new Headers({"Content-Type":"application/json",Authorization:"Bearer "+t}),body:JSON.stringify(e)})}var precacheConfig=[["/","43b9f99469029c48e429731761b03abd"],["/frontend/panels/dev-event-2db9c218065ef0f61d8d08db8093cad2.html","b5b751e49b1bba55f633ae0d7a92677d"],["/frontend/panels/dev-info-61610e015a411cfc84edd2c4d489e71d.html","6568377ee31cbd78fedc003b317f7faf"],["/frontend/panels/dev-service-415552027cb083badeff5f16080410ed.html","a4b1ec9bfa5bc3529af7783ae56cb55c"],["/frontend/panels/dev-state-d70314913b8923d750932367b1099750.html","c61b5b1461959aac106400e122993e9e"],["/frontend/panels/dev-template-567fbf86735e1b891e40c2f4060fec9b.html","d2853ecf45de1dbadf49fe99a7424ef3"],["/frontend/panels/map-31c592c239636f91e07c7ac232a5ebc4.html","182580419ce2c935ae6ec65502b6db96"],["/static/compatibility-83d9c77748dafa9db49ae77d7f3d8fb0.js","5f05c83be2b028d577962f9625904806"],["/static/core-5d08475f03adb5969bd31855d5ca0cfd.js","1cd99ba798bfcff9768c9d2bb2f58a7c"],["/static/frontend-094c2015c8291c767b8933428d92076f.html","9f6ff2fa80d6e34106c533b941ad0141"],["/static/mdi-1cc8593d3684f7f6f3b3854403216f77.html","eac41ec8397af607a07bc174e3c2475f"],["static/fonts/roboto/Roboto-Bold.ttf","d329cc8b34667f114a95422aaad1b063"],["static/fonts/roboto/Roboto-Light.ttf","7b5fb88f12bec8143f00e21bc3222124"],["static/fonts/roboto/Roboto-Medium.ttf","fe13e4170719c2fc586501e777bde143"],["static/fonts/roboto/Roboto-Regular.ttf","ac3f799d5bbaf5196fab15ab8de8431c"],["static/icons/favicon-192x192.png","419903b8422586a7e28021bbe9011175"],["static/icons/favicon.ico","04235bda7843ec2fceb1cbe2bc696cf4"],["static/images/card_media_player_bg.png","a34281d1c1835d338a642e90930e61aa"],["static/webcomponents-lite.min.js","32b5a9b7ada86304bec6b43d3f2194f0"]],cacheName="sw-precache-v3--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,a){var c=new URL(e);return a&&c.pathname.match(a)||(c.search+=(c.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),c.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],a=new URL(t,self.location),c=createCacheKey(a,hashParamName,n,!1);return[a.toString(),c]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var a=new Request(n,{credentials:"same-origin"});return fetch(a).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^((?!(static|api|local|service_worker.js|manifest.json)).)*$"],e.request.url)&&(n=new URL("/",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),self.addEventListener("push",function(e){var t;e.data&&(t=e.data.json(),e.waitUntil(self.registration.showNotification(t.title,t).then(function(e){firePushCallback({type:"received",tag:t.tag,data:t.data},t.data.jwt)})))}),self.addEventListener("notificationclick",function(e){var t;notificationEventCallback("clicked",e),e.notification.close(),e.notification.data&&e.notification.data.url&&(t=e.notification.data.url)&&e.waitUntil(clients.matchAll({type:"window"}).then(function(e){var n,a;for(n=0;nRRMwlCb**gK)T0jUbMs871?V?z)%g(IwP4q6J%Z>H+;)Bt*#*@8cEQ01OR+lr zV%=8v!TtHAHQbC|fyEj8Y-dZ|*wU0rxQCyvp|;ONRY{>f`4HOR&Xg^@Sa*xv?49V> zUD;?Dgj!gEPy2ErHy2tle>{&mP8+K?4D^yx_gT>RA2%3yIm2+v)Syq z{0Pbp=nb!esDgTK7Z(?sPgPT+C)Ua~?QX%v#eulcfK?0Mn}}68>CL;17Is;&iQ3rU zg?CG^i$-60FP^`8?S%^v8rts4q5Jn??B99Mn%W|k!295yXz98R3izp-7yiaSS9$IH$njydDe7RpnH%EH}~=Sxy-cREKVe zRbtXOi;dgDR+UZ)MnRdBX&@T6Zc=W5bCIV>3WlCmg=uAsXfvLugz}7L1{K7)$^||r zf`L@&Rs$&#=5XW+62&PKkb%k=ixZh4k+MO91E^FJ)ht&ykY!cc+i^iPS9zYNg%(C| zEmJN4iIW?u3nSy`V}}ZuiJ3yTK_cU%&@9h+mKgkFJWi3Mj}){B4$?KvaUB&}GM;g% zDJdA!Oo><-J;)_Wb1p^B3u%-wJkJWnbs}YASRrzCAa{$=eW}YaQL12^YMK=(@;Wof@PegjOcRnJ z54VCrs1#XRP@W5u#kq)csYspzRf*elFL-M;8r@CWMmDyYyzGC*KQ@()tToO?nsC&L zM&cd}A*tXjO%fr5CNj?Gw?zF?&KGtgE0@g3qA-X78b?xUkkJXjI7*U)BD;~Z&~7{!W=#RRF5OQdo7O~YQod|iolBTXo3a?UlwEM*wsnGq7Rjx013 zDbjpjTImYI#E5G*7!#g+#=mG)&ruF?ocA72knx$wAt_?qp#&ZiLUMLiPK5t(eVitg zNiA~J3T|7-1m$RrT*@#+57sZm96GEtt^Tk?Xv7DM`&(!~$oa+^LDQrlnkZ6GrYS8% zmL_Nlr!izih<#}{7_b<5O^xZj8)NKY=TO!|7|=vA!DTMAC^8zS=)O#*$U~D5o|@Qu z|32)C%x_`|Gq1ZDZ>!GunvTcbrQbniq88>QR;a#&Jw2LCo3;{ljuzN0?+5HA;^|dly{cZ`DXYc-(~9gC=aN(zoH=wtawT zGYXym)^1`LY@T1kXSl>czQ?%8|)09?tIrZOE}pFZ}!%=RH19JRzLRy)dvjy zW9&m|10u8SV8cHWL>)GL)<>j*^G*Bao0;c2cT-lV`P7Ft!al9NJ;A6an2n*suKr#8 zKIr@Zv${SuWxZ83jM215F|iQcqQ_te{SSMw?}d26=w3HlYIQvtzoNFop7h872c4Zc z1H&4B2!{HD=fXa5RL#&GBR^(`1op+DO~~OVWQ+bgv1fd!-ronow3mmuq(993;z(5^ zrWm&vI~7*beaj%a5v6@o+p_Ze9dr@qtlHltzw@W5<1^gZnBPVzs`r0rTX7pyN>!!n1n^gs%Wpu{GvyE`w8Hz_ zPp`c`8Mgx~qTwXG0TE;SY%cX5*5DSt)(-?zJA3Sff%sF4rKp}AbqUB93~n3@-Et6~ z6A(-eeUFbnEm#%+1YJ`)?H}~!KdG1=>6}6917rL z`E%$?^zk}$KI~{W9g@T*LA+kTs8^{U(t%wFJGv3w2tKd+-f2{JBV>4o8;iVws;al( zL=JFGbW^!-Yis}eXU)3O^}oKiBZoIU=;#yDcbzwKsdTX5YV_Un?+@|DOtQJs*-iJ% zKTrMDx?7yc5Yyp)2;GN;Y;*I}xfl!g6T^ufc+uSaws+0tW3?`Av*f@Zv?%5jWYz?#t-iARMlW| zKbjs;J2C0pvw`#EyTGm5%ekBM)id`8Oq3gJZZPzl8}HP$XWy}fVv1D3po^#VU$$-J zw7$FykkkUZks7-Zrw_A%%MPYd>&`X#VoP`t^>cnO#T8pKT&TV6RR_Bw_xO!(zn*0e boq^~bI^(Nuz^{8RV0Hg5e3-=mV-^4aUv%DK literal 2518 zcmV;{2`Tm;iwFqBD+pNv19N3^c4=c}Uw3bEYh`jSYI6XkSZj0Jx)J>=3a8g0Yl&$$K*qro55otF`-D6gzUJE|9clCB}wXt_l|f&Q-{WST3x}^(<*?Do*S4-4|JOAN zX^Q`Ja~IBUz#C{r&bhhud{L|Gi+{X({VK4?spe=!AGAx}j8+XuiyYLTi}~!+CuidL zP7({I8B0J>C94-6|bOdCkigdU}HXxlwdL1QI5Q5S&t-#xaLbWt>H6mOY@SsB}F}NlHQp3FQeP zQp-F6r6QTABxjHjwNaDOG>@|kASP0%EZ3l97{&s3q%+O+X*Df0mxY9JLMWwC7-dp~ zc`Pt4T2oEZFb@+nVXKKJf`DW~b1Gy^BgS=><+vxBNo(m2(qAk1XO z@j2oYgiJOXNFGt^M2BB*G|HG|N~TY5b!sOc12^6g21@glm%Fx|l0L zS;~ZpNlvMvl7~{OUM`V}F~KvI3oW%~S(;0xA|WD8bDqgPxf>6SLzc)0K`Zl!5t(6d za~8)58pfh9OZCPrOs85$n&+WPAx4;`lE#>r3E?Uv3E7jrRK=J`nNt?4IL#Bpb*d5J zIZcu9d!!hBuwW{}2ZtTVz8~EEq0nleOaPw_!rFkYiPcR`CtvV zpd*S%lE+lVan92uLQ_~ALP|K_m3D;*i9Xg*s`(2ZH#g{O1+N<%V>x?hs@z^1a^M*Gl(O{2!$+6L5Z<~FZ{Ju8JFO$zcSL(0W@oj&;eqJf~KD#3^w(;BU zSIumn{qXh$HpFSqYq0-eJFfyPGK&hO2Q9W*aL2?uJ9F=*&u7N-k%83jx}NHKx4tZa zS8t(3C$%s;%BdQRgEa}%6W6hQ*(q@P$(yEL7Oj2V*5xH2;d=K;nAsy? z8x7!GJ&F1uc?3iSw2)kal6M$_))#Dcer&If(!f7!`>$Hx;!`@Y^ltL?n;61DAf z(gOpm>&(m==vVkdFxBrO=XZsptb2Bh_?Ybj*yZ~+A%-83jrTwC9pioZ`PTEMojj~1 z-C^d11yzMU#k|GbDY2XGS_Z)tFU*I^6s6nkpbfBQRqnR@6}R%^Q((*gMwqj}^&yAuHnbo;GXeZ&~{@U;v469BNs z)k_4{J_34dZjQz$Lo)q8kaFToUme9q^-%Eb5#RH+V*8^je)C5hCCkDx0sQ5~@+Yq9 zkh1S5w8Ht@v-eI{jGG=6L4Oh+oQS!7vX;7cYj6t>@d0mYX7{7e1Al6;6;-nXmVkJ{ z9=ScM`oUMl4_m9sAHzZO z%T?Wcg9drkk0q}PZDrXLK4!7^=RYAK+uM0ZNw&4mp4|7V-)=QKxeedgD~&$+)JIIc z{~eHh1H3PP4qb~rT!+DjE$pU!kr)cZ`vr_TmFlh>m<2bZE8dRa`>NwkqoN%l!du)} z;Pg#W1Ap1u)ux;54iup8gI zzmsK+#r5<0(STR0$31|X=4@u09OC&XaE2J