From 5789880a59f2a00bb25d092b37b24858cd675676 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Tue, 11 Sep 2018 17:59:18 +0100 Subject: [PATCH] Update homepage --- .gitignore | 3 +- Gemfile | 1 + Gemfile.lock | 4 +- README.md | 65 ++++----- lib/web/public/images/favicon.ico | Bin 15406 -> 0 bytes lib/web/public/images/frankfurter.png | Bin 27096 -> 50103 bytes lib/web/public/images/icon.png | Bin 0 -> 10392 bytes lib/web/public/stylesheets/application.css | 111 +------------- .../public/stylesheets/sass/application.scss | 98 +++++++++++++ lib/web/server.rb | 25 ++-- lib/web/views/index.erb | 137 ++++++------------ 11 files changed, 200 insertions(+), 244 deletions(-) delete mode 100644 lib/web/public/images/favicon.ico create mode 100644 lib/web/public/images/icon.png create mode 100644 lib/web/public/stylesheets/sass/application.scss diff --git a/.gitignore b/.gitignore index 5ed8334..e0e53c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ +*.css* .bundle .env .sass-cache pkg -public/stylesheets/*.css* + diff --git a/Gemfile b/Gemfile index 6b179a7..4b734d1 100644 --- a/Gemfile +++ b/Gemfile @@ -9,6 +9,7 @@ gem 'ox' gem 'puma' gem 'rack-cors' gem 'rake' +gem 'redcarpet' gem 'rufus-scheduler' gem 'sass' gem 'sequel_pg' diff --git a/Gemfile.lock b/Gemfile.lock index ef5ccd2..ef65d2c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -44,6 +44,7 @@ GEM rb-fsevent (0.10.3) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) + redcarpet (3.4.0) rubocop (0.57.0) jaro_winkler (~> 1.4.0) parallel (~> 1.10) @@ -96,6 +97,7 @@ DEPENDENCIES rack-cors rack-test rake + redcarpet rubocop rufus-scheduler sass @@ -109,4 +111,4 @@ RUBY VERSION ruby 2.5.1p57 BUNDLED WITH - 1.16.2 + 1.16.4 diff --git a/README.md b/README.md index 1137ca7..a5ada80 100644 --- a/README.md +++ b/README.md @@ -2,63 +2,70 @@ [![Travis](https://travis-ci.org/hakanensari/frankfurter.svg)](https://travis-ci.org/hakanensari/frankfurter) -Frankfurter is a free API for current and historical foreign exchange rates [published by the European Central Bank](https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html). +Foreign exchange (forex) rates and currency conversion API + +## Getting Started + +Frankfurter is a free, open source API for current and historical foreign exchange rates. It tracks data published by the European Central Bank. Rates are updated around 4PM CET every working day. -## Usage +## Examples Get the current foreign exchange rates. ```http -GET /current +GET /latest HTTP/1.1 ``` Get historical rates for any day since 1999. ```http -GET /2000-01-03 +GET /2000-01-03 HTTP/1.1 +``` + +Get historical rates for a time period. + +```http +GET /2010-01-01..2010-01-31 HTTP/1.1 ``` Rates quote against the Euro by default. Quote against a different currency. ```http -GET /current?from=USD +GET /latest?from=USD HTTP/1.1 ``` Request specific exchange rates. ```http -GET /current?to=GBP +GET /latest?to=USD,GBP HTTP/1.1 ``` -Change the converted amount. +Convert a specific amount. ```http -GET /current?amount=100 +GET /latest?amount=1000&from=GBP&to=USD HTTP/1.1 ``` -Finally, use all the above together. +With a full list of currencies, time series grow large in size. For better performance, use the to parameter to reduce the response weight. ```http -GET /current?from=EUR&to=GBP&amount=100 +GET /2016-01-01..2016-12-31?from=GBP&to=USD HTTP/1.1 ``` -The primary use case is client side. For instance, with [money.js](https://openexchangerates.github.io/money.js/) in the browser +Here we return the current GBP/USD currency pair with JavaScript. ```js -let demo = () => { - let rate = fx(1).from("GBP").to("USD") - alert("£1 = $" + rate.toFixed(4)) -} - -fetch('https://yourdomain.com/current') - .then((resp) => resp.json()) - .then((data) => fx.rates = data.rates) - .then(demo) +// Fetch and display GBP/USD +fetch('/latest?from=GBP&to=USD') + .then(resp => resp.json()) + .then((data) => { alert(`GBPUSD = ${data.rates.USD}`); }); ``` -## Installation +Cache data whenever possible. + +## Deployment To build locally, type @@ -66,27 +73,19 @@ To build locally, type docker-compose up -d ``` -Now you can access the API at +Now you can access the API at `http://localhost:8080`. -``` -http://localhost:8080 -``` - -In production, first create a `.env` file based on [`.env.example`](.env.example). Then, run with +In production, create a [`.env`](.env.example) file and run with ```bash docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d ``` -To update to a newer image +To update to a newer image, run ```bash docker-compose -f docker-compose.yml -f docker-compose.prod.yml pull docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d ``` -Within a few minutes, you will be able to access the API at - -``` -https://yourdomain.com:8080 -``` +Within a few minutes, you will access the API at `https://yourdomain.com`. diff --git a/lib/web/public/images/favicon.ico b/lib/web/public/images/favicon.ico deleted file mode 100644 index 8c6f5d0b6cc853f86b2c184a280f33301f211d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 zcmeHN%}*0S6n{ql06ci_$#CT4+5f?)F&g6+(h!Xa2qr{4pe6(kc;H}SL=$5)9yHKu zTS{y#rQjDR65~f}Dn_XqHBiLTBG0!j-PoqvOqcD>u6>jIy4l&8zL(eEd-I#=0&IYd zP*(?Zb%A>mz%~GIxzzjm%>V<`*U+%`d@Dd~3qU=Mp(!*&?War0Hn^h^?FQeW7QDCr zgkirvPt9O_FyQF|`O8jO+V;E}f(lFd~s-pR_zs&q2Czj{an3-SDMYOZW z^!lLjU#&uAKVw~e)w56aZ~F2Lob11%3;*HPs@muJ%j=KTI!Mbu8?67zK5&lqQF?fD z$5*}lD_eQghu>bsO}9UKx(5^95h1)7xM{k5tNF(Ec<*He2lUPbYNcN}C!r%+I6&ZY z63#g*a*k~<&zJ+X!vXK!WBBaiHB@w|g7LE#aA;?fV>D{uXgg*XmsD|2`=1Yy3H0u1 zX8$cZ1LgS3trZ-9j{kbrYvvF0hxzl5et0mB9;fODQbD<;U$~h1O86p#PY);2cd$j8 zUMi?R0_V5ILw+QZQvUPK=gfcQKk4W6#}vN5KZePXQ6ap%ejD%ZJ8lpDtm%Kp<}dGG zEay={{&M^|{uS<hr$r(o!ek@hqU;ckwg3)a@P=! WKgXXrz#MQY2k7-6ZX5x_5%>fAOq_%O diff --git a/lib/web/public/images/frankfurter.png b/lib/web/public/images/frankfurter.png index d240a50095c146ca94f82aa47d8e37894ac505cc..cdf033884a1c544a219cba9b66c5fbcf437db8ce 100644 GIT binary patch literal 50103 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 aPjGr8<9NhpZI&S5kJ4>5xk6dfr~eNsL5*1e delta 26237 zcmV*#Ksvv-hXdHt0U?P{PDc$28VUda01ZhdUfTsXY0iFUp1$YYZ ze-z*;z*B&y08as)0z3tH3bb(w2-q{{7W@AL=9* zc>s5k7j5Zo5^#fqgQrQP(x-$1!4Qc=q6IC$Xb`yi+Du@#wzjqcC$_?~rzno%KT@!VnzVKaXqZCNX${OL}=Jqp0<>vuDUji+0-1_?ZX1AEQG(AfRf0KY0 z%A7KP{=?m>1y#q+o;+LD>;l{Q1HyLRe!lr_m;zU>T#;mDWxpk}w%%=HV>6n7TT@fh zERJiadjw>aN~Hy}kB@g$r2oKwtgNgD7`nfsUca%h=%~Hp`(-f-q^GBQTU$%M28W!i zQq@>hS66e=76Nj;rryfV!6w$qe@dOrNhNK#P<{>EhF?y5ZCXl7PN0pAU=z4*zskx= z&bk3DwH4~HDlaep3xCrhA|lG0TiMa0SDa=lXsgz+6+fla-&HogE+)3b#n5(!N}AT_P!ge-|9ys-i-< z2K77<8X9W!`giy4-OgQnd`8P{Z0?iG6iK$krf7rNg-LB~9=;mwV^w!k;i#&jvPc!}rJru~wD)twP)my;D`f&|jxm*sh zS-JJdk;5|pUX`Ba+;nO0-n|Z9US5ww+2{e+I*@Dd5?BDhe>ec=J~ubFYb@j!#>HKG$aY9mz0zp%FWGw z7|N~$uIg%9?td%xraAm?o&qcs*tk(6f*AUZTyE1U;KjZ#w86qD#(?+i`STyUy1KlJ zbt|XfB@z*5rwIaU>ybV_zWWjql5b-no!PQ^4s143cDjNDf7h>H|J23BWr?|rGYnC% zf%9I4Hh8MPzd!bS4JS+}g1Bqf-gk3xd6Cw*EwT18TsnIWt&OXys*BWWRa8Jgz<%~8 zOuK{Uz^2i!(>{ImYW!Oc4i2pVUKuQ|)Yo9eWfXW5uP47_De%%@AnPz28<{hYFDcZryOG-+5&B4L$ZLUFb1H3hf zu&|m8v6vlEwwb!a^trWJlOO72o*0;IO8hbwv zU}GuO$?wa^$a)zdc?V*%fJ?;?fftreDTRe)Q@eK$r~O{Wl$w_Il8sav-PXWMji%FA z*ngJ0f4jTC{r&gfTQhc~g_*n-x`l-6Opm3fXT2noS-;OUNJxVV@Z$Jz-aUf`^<@R` z#Vc24db+u-!n+W2IjNZPuF2Q~f0~k#@=0M~!GD@kmcD0s4y=zV{I!26fWrwd$mP;^ zxdty8LSQ>8x3I7v${6te@y8#x+be9pg@=wde+ynBBGC;KlRzpJFZ`FNX8ghf*o?&N zXhjit0jv)o3JSU8aO5Tj1HB6C-nlsCbCQjY+qP{R(XCszb@ujl_U1H=WUIHO`P4=j zl-zbMHrDLhN<4sD`c^vlb6HtgOEBm@1aLV8FPR~dn2Ey$uLK4L?q(zFu3fu^bnn^o ze^(fgc+hrDdq}hv#?eJPg;+es-0kH7Y;KBnfbw#4a~DFH^f9<1rwXe^;Cs|wR-(@59;S(qN2L}Xfe|BF&v)4BIeq#;Pq)KYu&oA7Sl*jUkTe4Ct2kuO%6ZRUxzfkUf6i`; zy`5bEm+j*E6%v4@5{cN|%gx!Gb@3e7oYZWmWx@SxHyqLX&Cbp?m`jl8z*|*S^QJN2 z#bNxOE)EWx+dFu5!-BTTWMZ*dt+IFytfOux{fv)~?+X7=Td+P0tFGqu&^rMbUMk=A z^Ye>lBR7sJ_P{~>&5#I!xSUkjf7)TreA2dKX%b}4GI;=-lbY?UEPx~w!2Jz>5nO^q z$9ds)=Dnbxpx4>Rl#q}bDYLQOjIEbYF5AV{4leQmVzZi5@&M-IEwzI(Gcq#5pse~0 z+eMs$m$(iAxTvW3!?3W>|6?OfN=iys_|~FHC9I=?m-?;|2+Ze{3+3@^e_*x|)dBMn zH6aw*=FJdMBe?_#ftReT;PmbzfS2`HT|z>Fk60qv2(h_if){3$VxchAoI{ESusNyO z4$6X&2Kht&4FK-Jr4u>=FDY#b3JR8ng@qA#8GX2Z^UXID8+bX+^mga6U6y=BWKxL< z^Q<}BzysKv)NJEr0ldKgf7VuTUd}-R5ttNKzrt|gS&)U%@%e-a6QqL%4f-D2SmWXM z%4jOmB+>ZK=m#xuBP}CpYE*T(xkUx$te#&3o0FPtxUAyhEPu6H0N>4$o?LUd8{n-v z2~*4`*rFyxMMXR^PWX@=G~JJ{f7%2rYn`nV*B1zg zFKM*raZPdHexqdb{3ifovPpMvkf)fZ#2cmX05&Hz+h|!>TS}{|1wY|fVDIK|xR!JW z+?~Y43jovuzP`RiOl3U!=%dz;JwAD6LA+InQj~<)M3>aHwM7zZ zSz^6PeWtj)SgFy7f3*-62x8@nHu03ji$8}! z$HMyBIxSbF`w6rJUWnfns@mFt*$~##R?V#+f(M^EFa-qHu3dwJbJyp%9=ocCUYJYfWHRMbY%TW|IF0)J)YC2?4(R9;0q;T39uU`J$VXdK=Rqw>qx zcZUFE!r8NDe|HB*o+J>6W+E72H>#6FapKNgCgQ%8)z#$%d3k;N_3M{t&boL2o0FPt zt1JOT=l2oJ>qX)?Tn^F(vH7w}C79yt>&_TfWaGw-qF%jveM}DFNt`7m6hMWrBqi~X z5Wa+>ZQbb6qf59XB}_E!;M!}9wN$*wRxTfhy>Km%f4QoYbOPwtuh7OnVD3725!&1o zZ6oEu%IZD%B?fp~9)-`CuF&8|B!bw=%G#;H!9I-OB`(;vZ~yll9PF3Sq(U5!+;9{Y z7JiwSnE2tui4%*BsngVZ8UlfDLpgt3ii?}B>53R0Vfrmo`6{WBIsskPU9A$QDIThzB8v!-)&4N)aKHG2XJ#K z*2eFLmDQWj)4X0^U&pD&^#{JMoYJF5e;BP*4JL^1LQE>}KpXrriSo22%+Jr? ziN8mN4ICD9!9(5kS5-7#u{A+@z)eO68Fu@$@!vNM8uM&eKFT>9>C_Jq=m~t zoZeRej(52RFNwa;6sJHbGiktp0higjf1Q$&_8NSfzeVjL@FG;oUkJ}K6^be)+q0Cv zbm>xQ|Nevf**n@!fCKk?z{Nwr!R5r=nkM4zwATwz7gSfP66)(~_i2Q}W920!NBj5h zU)uD3rr*#ZybN*w9n?dU1kafA>{@ z+1Y7ruoj!ciZr zFS$wtUT`tm$9%!d%i}w?dUovIJsRNs6$T`(Dy&C!iPn+UVzDpQzahG7hCaPVJ1(tJ zmu|Nfv*OE85qhsv8%U&v#Ny%N?DSdx0Rwg%J$f`k@68PtBLxDLe@G}iMO>UI5qJUg z%7XmD1red4o0#sUyr}!;e)jBBZ@z=CCSi~lq1haK;o<%P-dmg;9NaOOZ@HZmV8zA7%b?|b;+D)N7tY4U`a9d&{$+1# z8%83uxf6-jq)mrXe=Vc5wDfUII@=A^feB)1R0$X;P&wzd4^Kp}#p5@%NgC0swD64-d}`7*MSM zUJ<}sXB2o(oH#KgD9CpMEF$!RmwHbcVo24GojZ5o6*g-0f9=*SH7_S;9-a>ik$BY5*@#ClN4e<5- z%+5}ZT`w!Ez<_|cK_MZlm#$f3udjTzYdi;Lqfi^lKX>j*Z#Or`-xUfurw-1E^HKtM zU-0(s@(CLWf6iREFxb_}X$xZEda-d!0%L7$ohBp~eLQIKB|z#+^*2of-b(n$O-@Z+IBNLtRZa7o z{swsO@bT%g9=6dgx(R_K0g_A*r2NlafByN<%P+s&e=KuS9>7hh+(v(6Aol|I+KQJS zXh@VZN7Ea`W(~O0|M~d%yw6r-IW`)6c^$nK333DVpG| zW4nWc!#LuYTqPZlPzRl1j>XYGJ1qTsLU|=H2;Rynb$oo{qOoH~|HRfVIL;pp4XGV_ZszA$>3TFy?8PE zq1m&?8)c=&1Gp)*+t_dTNbY89EB#$2;~u;;h@jMY9lo32W+OvFN=hGvL<)!SvKC7O z4SU1Id3nX-`}FC4im6UmM!g8l_6LRl!1Sy+^K?LiCEACO9$sQA`)Xq1FidirptI=0 zf7W(g+1c5--*)R3@i<%Al+P=%jG>Z+?t%8Ro1L9>TWf*0q@?UkW5A28pk8u`1iqVF z4qhTDtpnw9g_EPB;z#nH!9-@IQt@?JdHFe7FIp-Qz({kgR93Eq1n~x2I}#I9huJ|w zF$TO;7IAx`iHnQVB1l~ivXxKyJb;a%f0706A@D+!Be9v&=maz$DD47dR#uPdt{M8| z0c?me7P_9FpBXL^)o;Tr%sF_;f7Oesre-t5<`>Z2TeUTfXz;-YA2`6Uf2EzR!tCuL zt^+Ys1Rq(S?A*E2tx>g2ziKKflwZR4mev(d(@d^@OK~i)w5)tfWu=D~1``ipgQRKw49wi#_4VRS;4qwre-;5?$Q8~> zh-yzjJY-buE?Kg~X6)Fp%UxWYZ|BOhB@K4$_lCl#;Z-KeXJu&)!9n^(5;I#P5qL|A zOaG{Ew_m?eml1gn>V@s{YialMQ2*A(}1i?Yz9lC4!K6wD^qlyKtVWyQ~ zE&3gR)q~cBTqXi9){>{{eW4}BjP6f{j|e86ifo>R(w~t6I|<>tLc&L1E#J#KQd9Y@GMQ4?naUKX~v;cX!ue=9uJ2p@oAg z0*K+$4bg(G^8jX|PAla_MMa6=M|mkW`6rs=3(xZ0bLFJCnE(2yzjpI z{%43P@Q69Ix=fW3e|TZ}cMbz%3XasJGTp0(>&d8m{aq~QWPK`$?(|l3ARz5eB%D0PHn z;Y81o(uyVp`fS=~x&}$a2IqI@pbrdQKLk4w18H>AewzB5*1TyM8T$_%I52DR;>C>M z1)XfV_vrCce-}^BD4KYh_Qlk;(DRT4tf8kcsMzBHYz`{7pbWfh0nYS(h&AXlhCtGS zV)Z^k;vj5%&%=~>T0lUT6umb!TqMVFz54X|+|}9nF@2nuKuDaA1}wk|n_aW1JH&=E^ z_mh?lufP7fYgLtMs7x-MfS}iR0Q>d<+rtmE`7XgA&HNA zXSwUi$)CHqxI6<1gSA{kH&7q3uUxEFtET(=`|mS!A6+NT8!3@}WoK{uh?=7{Z`1lo zDnXRSbzYvHvzq47Z(fAfM-`5);RMS&1m4E$Jua%EbtT-yT!TnB6&!^Pyuyr(e~b^H zIQkd7#F4PRt*)r5`aCW>`vW7xdYYvxVPRUAvnP6nkNYS+D}DwFwZor&pU(C5HMCA_ zX(I3f9L1`-+6S>!#t2^GytY#5m#{=@HSp^CRZ&^FP4~U&ClBDJ6ye}EabAG;Z48)K z8jGhKRHgOqfES($kCpcg88U=Xe;lOxA-=v1McVVab>t1sU3sOftaLGgQ6J!xQ`Av7?ctv5?NJC0j%Y`YIO<1e$EOB2-wBcCe$HL&&;HK`h~5YYgqF>1@Dos>DHEJEc&LRXfGBs zHbMqjJslVrc>JbJJwLW@f8ROD&E4f|taU{M0$TGXC#Qb5W5*v)LP2DdS{L_8X3d=& zsj8^xgRPG4m^k`jFUX#DKd4HyM}s}!T5JOsS_uWGE0xMPp-gsW-O7~-#@3;y>Hl65 z2-7f7^X}ebtj94;=XF z;K73pYQ@bpOX{n?(_ce??eUI|PQT%xkGv(E!dLzk1Q4g$oWGIKT>CD73s>T-+Xjy~PX+vK}@v8!5t%Sk+@9(8n$b zU^GF{BnEA7B|@ECe^gah?@$W_+ag0ludub(P(GF=v(Wc7I`QAoeY)$!dEx%GtgyIv zcF)Mj-*wjweeT`6e>#p?uC$R!ZE9P<=?#@@>~&hsS#OsJT zI~1o$eh~@Yqy+ed!_LoxQI5NfCdoB9qjA|V~_V8 zN4eq@PGJ2BcR3Tmk()ghYiiU%v}`aY5qM!gU6GTWH`hq;P62R!0{68Dc%LgP&Y3 z-yc&uNGif{&uwg5fINVisMvzMix=bi;auw`9G3Uifuse+us+hjdFug$|G`59D|nBb zJUKGJ$9ElqSGzTC7Xg4cIR5lWzm3~b(W85x5>l)fE3!6zSl@R7GXWV1mX`LDyu92F zT)uqyf5j-Qt@YjC^qNQ{aA2KoDz;0Dya`M9ALxyZ=}FNf9^N%S>@$x_jFNFVH$BXb0*@<1Z3=A z+vA|c2k*|DwSCW?7{-`II6p0hP4z&g$%N>H$PVhbxcG&mM~+;>*5>nLvlifW zvJ`l!jWp>L7ngi7Xi(n^Y;EQN%tj$2^HWk%`a&Gs49@FIA|h9bI4@FtMMc&B0N&5o zf9iqn;-NV0vq!-fq@#ky=UK%;JG2iqgf$|o=qaNOP9 z#zjN~?S(((y9^Z&7#cbN1HFeK08{%gF=(=~GM^teZp<%+%F$iFa_!m}H)p4{a=Fa8 z=_IGSr!_uFafKL5N6()>`++g_u`eKue<`Jt-;&S z8W81IW5RekEG+DY#)ZI0#TD}YR@h7r*9SI86quBxRwX5+UjzpFFKPU&zVBDBe75+2!(LGZroa(S8Ym17=0xRr$rq;r&&>8!_hi&EZ zuKEDP^lWqTs7(|{NmZ*}V=WS`e}%M=1v(5w8H>@c-umjk0bU8&fv@uR_I?b%wTo;+ z^(LmIjFwBK8*pCPqTp?ye|1r5X;jy+FxLHPU4M80>nPEJ&y3vMUJ`+T+`k6v8%!-I zQtu-)DCw`LsN_|E_g%d=HM*FVmNo$Aap6;1(k#!2wD!WG{ObI?y!&wCe`t53B5(N` z8ykDKi;K%Pv`gF^P4q1Vv0R{j6K5j&0>E`xCu=vo^{r8L_riDcIt=WG;ijmHsraO% zw2?9!>rDW!!H_3R&zmcc=#HfTw#L+fsZa+Il6W0wi5>?$b%-+Z6@cD zf=j1U0GARGaGAhcT3){181RBl!)@de;=C3GFL7SXODbhm)sxKyFAb))Q4!l9Rck{+g8q-Kso;wKVzK5|98ULdsYF1}!Kt`6f3~K6hQ$?~1TvH; zg5moRRh2iydqcOG=Q;tI{`4gs=LLAz6^O;GoEN^EBf#|5OC^$KMNQCGw<*^ez*}2V zUcNXaFz}{zzOm)<05+CV4fjET0?VrUpP(4x9K58FgoV>#_!)i*gH-?MZD?0?bhIM| z#A=1Dt;y{op(qa!Z#kl>$&d$`$fat>OL^qT|t; z8sYumh(%1z1bA&HPMq{JtiMLW864BCM&}VH2KRpg3ajBve-D+ER4&C{Yh`P2;il~% z@M5W8m0wu+TS9#N0<7CBn%>j+H~f7$^z7Mt4LpDjq)EzBiNK5HN*&zRKG&^V_&27s zg9osY)QgUe5l@(K*H=zX&NIyg5<^uJ=LLX{sZ^rretvFQhVG;5&wu=}V$wbLEDs6_ zysxEVv%d04e=!9BLuX|34mq9IcMo0b*RRLL>guY$EWw4T&Yax5-xK5G=ZzoF98Z_P zJ7mbP)&BmzcbJn-hUjAGI)N8!cui(@?*DrA=)r11XQ&+AbsoSvN-%ta!-*ey$nPsx zSC>cNdWGRm)3a`f&DFs%_k;5d{Z_eBK)1ef&dect;c$-#?#$e?t5uLJga*qG=&%v3myz&a8 zBX?3ZKNb3fPbkFCElIE*hZSN>M3QoY1>Z*%jxqjqy!(uVFQ2j?S4j{F$2 z{SvN0LSl1ydHK2G;_7>Q^k4=r2Bo#5f3x#4XGh0}xo%hE*FoYR>Z{HxDH+lyGV*-m zJl*%JSFd{6+1a0kNvQ{kisnufh`j2Cv%cHmX)}qb{FvlqS%5(B6V5%)v^aQaa;~WO zTT@>@9l8X@-2|pS8Oq~c<}p-r8@&#WBZL#Wk6Ht~#8JxNcNu%jQwI$i#K?J1e`_?> zE-7hC;ZU3rydn9=^(uTM)=Jv9CC<* zxNUX-llX~1$%j~-38@v#UXH9Ita8uZR>eFeFHWN#<05_d3%HM7u=rN&F?Ou^w*< zUIHy~S;Q;C)^v3&z<9W_vgU}5jpRJa&e+kfUv+c?aP`$e`@2v;DWLg|gz_v@ES8KE zS&K%>aI%U5eNlZnahN_)e^-xf+qU^mo;+Evv{0q0j<>5*XeEHA6M(+@*{*3huS%6) zsZu={+d^xdf1<3c_@%tGa_gUe z_PP)qeS^y~mC2SzM+L!+hXAZoFwsoF_bxilOd(9LeKUB(h!H3Bm6Mc~HWEkk{>GpZ zn@U5P z39pD#0j$@#_WeuTe-fz%%kJak{;JTWcxH^%j7~pf$ac_ih3z*`I>|5@;$$qL>>hmJe~7q>4ql~9^pv560mP6IA$e~)Gt7vDd;Z(q*AOU>={ z06uy0>=?Lz{Rvz~Y|5Zxd-nuB)B#;g?GxVKo-5hz-xm`z!`9aBed1)KL?Vtv&e?D# z`18`z;;#k{9LV_qA;lEhximUD`a2g7m(gjlR?i+ebkx^S+i|?G0&Dwf;@B-sTJTm^ z7Z(*4&ca~{f5tP(RL8!3`yRwGyrpkol9FF*feN^Wk{xZ%SY&0pEdYEFL3 zDczh}+UUJFRyGnGj{I10>W!fRylU)|F2XUrpV-I&LygG@ZL%6Zw(Mw7HYmI<=I0kL z?$@suqauf`Y!mb0&CbTt%Bo858kqK8-90_8$YrvCf0kHe5qPmID9g*sor##kjQ)_R zA6UcB2o4EZju^oT;=Yzj1m5hNyfcXj*QQLGG%2k$+hK5HzBLY>+^pIW=OyrCW?u`Zd1EaMUV2SHiGJ`>CLGIa&{w^o zKq;Roe-U_t(GO1^;XW&;BT zDK^+HvW57qov5)DBfx;uVA9e+*`pdgdUQ#1fBIw0y+W3A%lgWobv;fbDig0?Uohsj z+gKg1pFMl_9ybq<72xz1<-8IcWh^WzN{o%YJbm``>5N-}`uc5-Yn=|jI0-Ts1DHHW za_WtNz>D>39l-mPpP%1%Y%lB7xpQ}TxVWqb-n4E_X;8yUHku7x%^@T7tG{mrGcm5|^yQGv(>&8J8=nD&u7m$stS>Cx;Fl%6R%o zSC2VAwcxF&sJ?nN;oq5ARK};q&98%sm{bES5Ly9H>4}DUd;Lh3ji>auo zS(}lP@;8p?HQTv0j8bf1C2|=PLXa_QU}_^xa@VgXKR$HmU{;qh@ZCHCah2BNf0VL= zCD*(}H_#QKh1GNY{e4&`9k%yxN`9vSF!p%|g7BLGu4Z{^Y%Xydz*`3^tLJe1j@8F< zTtdPqdxc^Hd=mdF&eOUI8t3_Ni@JiX{?EVq{PsI;ANQ7-uR@Xkq%A3 zO9LAwj>H{Vw<7Ml^XaFC4;;J4&(~)d4H|IJ7J-+ZB~DFlW{4}=*(v%se>vHI6A{t% zAc?G$Z%o3W3>r_Y%QEVtHNdM>R{T(19rOlU*@$a&C+O5Bz>BQ}SiRLe(iXr=bnEZ{ zCh#I^0>ox9r(!b={CXG*BX-b>*gs|Eyorga!|ZHqHed_lU(QP}g!X-55(%4RjSu~1 zN_Ot*OZJX7btD4QbLL1?e-4#Le^7+?gIK-|fxlNCI&`QDTlqmjL4KHc9GN5l9p{D8 z>PK*~ry?T-j4n=~vltI$)mm_Ci*sH`71am~{uuV1*Rj!}wemYOfb;Y7`vSb1z> zKysC6P|~^xVskY7C4bCTPikuFFoi<85u&m|MVdgUnN4d-rm|MAe_j?-uc`e?EQZ>O zgG3x1(Fldk&W>{c&cDx|y*P@g8ZhzxIQFM7G@0nYi^zK`%SuWX!%moSot=@9aXUPH ztZ55kvlhH%%0=)Xxr&Jft)16l0Sud6FK~kO09K2ABpdrOXd@qM$CVh6Z?Qd-l%74% z8lgO}h2>>vQlaY@f3zb})<*z?RwHJpT*!0p78MttqV*&fiMT1Pi=i0n>hA9R`;{wk zbM@6jXO*Q=@oXAU`T(p0FO2+uNvf|~1d~n18TDdZTn|jVYb4fUS4*yWNjCtoSq=BE zPlknstklQUN_3TwI)2;MC8LkPbq0{l#xz_>levlgOAF zJ(AA9;4Lm$os*TdaCBf`weDGcpX=AJ_fkluzks$~R4P^_yuKpLa!uR--rStLC*l5e zxmgM|b0HlLf53D^&febfCs-klBhJBPBJiS)131J!3z}3$=W5Z>pE=u09o8ZsSdcN3 z3UM*weo!dAas2qHX-xfqKjaf7B_*Gd7MaULlL}S~G_gDk$>u~>R`vnxAMb^feG;^I zMBmz12j2Yr!u6@CDGRaJ%=l8?d+%$P$jI*NT%4VIe_7gha}BhK8R?nN^zPmBdoJl} zO4%K18;P8~L4ou=q6%<+p!)`RYYxIL;(lzM60hsf6tyhyF&N8zR%?wH#!gM)@_}SxA%BsCOLg&nBy9W&EWiXDQT(C4jVGWWZ%u^ zXp^BbIt&Mf*`TCr*T_}@FRghozz!&t_0!qF8yy{OKYqf5RY3s(6V>YGftOwyfdhy6 zUF_}UKVxao#n6i!K74q2eO=wV1SA3u*NM0-e~HxuG$!z-XJ&1V`Fr02Ht?=pyVhxF z&z@_1eS9nmUYeMQ=7~wkFSd2?(mQ6|v*UUon4^3gOpw^x+J9qjZ`&%I7bj*83x$IF zLqa?mU8Q`Cs0riloUp>r$NOFy>@D5tA&@vZIYxkczYluN!=K(gBZ!=^3KA}W)_Alf ze>oVvQ&Os>q^13F^zh+%PdxF2lCBv_Yu4Fzo+Yt4>qv;a=7J)F%4DnH{`Edfw6$^DwC}g7YCDWZWoVte z%T3cJ_JY6*50YQD7I30B7Sf;GkA$yv>yslIuLz+g@JrfUt2Aw zbzEz#g&VhnI4`vFsi=1@8+ftof3cOwWGe`~a8uH_m{$Kz;4Lq&*o{Nm?Fzg^sCEfp z5}R>S=S!JP!g;(RdbzN$Iti{awSRwR&KnbxEDP@{{?5(Cbrx3=0dXp{X+CU}dl?$( zN@dv}08$*++e(e=r!{XiPBcNGH3PAvt~SnV`u##qjsnYppPd~YrfTWbfAoe{{H=Yz z<>h;D+f*^;!s*oTD|8Tk@@?VxKECl|n2*IMh~2Jq%oRjTfXVCwz=O~(tEV|~!%@7Bi;MT?R8%|=e;yvrxK`)BH7&29 zT>%)g_Y%aMe)`7C=T6&91_~HxW#C}5z|E4G$csruVwaJz3R#jK$6_=IGz+neQ@ZM-=%6o7ZG_x&mUicY1 z7$2YYz@V;O8H1!5f1+<&x!!I792*;Z9|rn+q{!h?>>?{1q$xh?ZS`)gLDE^`ztV*B{XokN;>d@`#$33<;8mDvs?G>&tp(N zq0%#{5NLJWkM?EpmxlO6XX|TgPow-QnHe|0Co4Luuos$>+AI?Xku~S&6%0mN3NtKO`m@E-G;W|*t*lE^4mOsvE48R zh8pWI<8$fq;7|@3my#M@jbT$sae+`L()5({uZ!`g> zXJni@e|h4>^aTqRbO`WLpWCz{2i(8jPVQe3bC%OHp*J|M0J|XSMLs@VR{ z!(Q(yTZKYSoRAWgL4O$BDRmmnubR5L^;j2PWGkyV`E*#r-QB&nqod;k0Oe$BYg_-V z8}`R8es+3ql%x0D9n2Y*JKEbXAWJS&leGlCf1AsdB`N9YvqlXczLTxIgv z0VzdBOCL)m0xz69Tt0H-$fSAm=A~Gw9bDAgW&xa#kbD~q_&1RFXfE!dkAMwgb4^v1 z>Ty3m@1OPE)A$<1!O4L^L96W$_k;!|txs_{pG3+6xLf%mDKY1VyY3p9-}o6WzVF+2 zf5PR^q5b3b{(g4mnG3sKR9Puw_0a(8!G0q`hvlU(Ec*7{E3KK8`(uoXBKM;R}*R=urNPn!fVh&>Xb+GhN59`Xd@ zFRf1(!guouHliOpcI+N_iqtw@C-4&Ze+2>|4)j-T$Ckv4J$m$rV=IG$d^!Y7OCi1I zY-8i&M>;z={4IpnANcHQQT4PWfCD;ZZ0yyC?z(IIHnu{r?3w1|Jvm zv<}5-Em&7yrz}&JKMy00DHZ}R4IPqA^@5i&MH)?Pt-7|5CYqKcQpVw2du?)B>LO#n z8y6oxg%pmEN-PduaDHW#N;R*ef|uTBn^Ix{yu%^#YyfAw$x~xX1|HKh#5sxc!bI{Z z#Mk+e>0Zi%XMRb#4IwKmb72Lezl-& z1~_S0)3z}E)`A!7M`+TQrlkeE$8;~{VXb{HlvS%lVi9x$mKB>JFjOeZE9ZxX23a&} z0vpZDk>4iPz!+ddA(9e!f4#U=Sdlo0R1b~h(>RXD8uBDQKIsmHt!%waDs>@_LNhzs zmztTGKYqY~Ue}Cy0S)Js`@^VWqC_Gd0M6e7&pATUz)3opfZ9Y`QCNp-P)7~Emm#Ln zWhk8ztVN<2>_#0!TholG%g{Y=K=+ZogTo83`89OQP1gy$r2J7kjb~IL zr)FeKl#0b`@C>J0eK$2y&yR-pQ&p-|F6bH-wqDOI9qy9F0Sqwp!+_a_f$YO2cxh15 zx)p~LqH*fvO}00gn38h49PVEMUTwT0x}OF$yz)Qhvb>St-W^7{Zk-^KXN$WBvJGsfUl*d{omce1qDjPX-dTwL}@WMl;E zK0YfU+Q|(q(`=ZjbJwnAxneMrg%zjZrRI`pBHX`j2nYyxf19oO;8>#+GTAylUbF@9e^%$_=04t;z)LUEVgQC6v8_y2yB2a}4^#Ij4UWi$3<59Ka=UPf=`jpS zMh=#glr{p94mJY39!)t4o~;IlWMgB3Apf8@diLmjFPNDYj7FiyKqrV}6PQuAz|qlR z3^csE60Tq04Ddu6c;uGL5G`RBeaq#WE}(cV=S95Rf8|vb%EkQ!%ux}4{P9O0H#hh7 zFlOO=^1Z2{O@5Hr49P-`N%t}M$X?kbyTkvq2!P4uOuv5pe+Fk6hhu1*68Q$_t^Nyk z!L!(0rJOo-Do7?1uLjU>F&-iA2=IE;)YKU~!q?D|`jJCNzFt~Zn1_IBX6qYG0t94| zWqoB-6>Zq{p^+Ap4waUcMp`-!Aktlu(p^J{ij;JNv_ZomnmP5oPZ`Wl-8~NJhTSyx9r|9t%DU+#N4*B`{fljTYnXBm?;PvW9e@ zg(804%LQ7-8lBF+I=>Lncg5OG3-OQIV@wCNZgtC~>1R#{oeq~v|@>p}csFwv6M zOb_`0|0@#}3G`e0?Q-$J(|#KlkMJ?S#zbZ}lLRbu*XdaFcZRJ$%w}?$aX%PM3`XLp z1=jGq(w6dmJLy4mC*Lzl1@ZuR?7?CC=~{igNHPYb-q8DW{9eKQ{E+iZLEMgCym@(% znPLR6IVdj^R++E*?pKV7n8Sre)Lvod8k569bc}+t9r;miZVsDxOVe!#52xeTw!nV= zUSk%Q(OfwY{8Wd*i?(F zt2w|Dn^@lRV5_{PBGu0P95MP5lMmV#OjNQ)o%iUfl&GnZb6B3XfEY;Z`uP4Y1f1`Vnz~p;=?p&Q8Vi1S(SYN>+%iGel z7U#2;p;1(tz!zddzyT zGC4U=TUr-Rwf{Om2Ds1H#NkW)GM$PqxfOp<&BQ5z1Z-QcOu*~}K@aq**)KKI@z>GZ zW61ZsW);(mBe>?Dvn+WM%WH-Fqs>o41;kPPBf2u(kr!KIT@S*ZHW+ms48A7I8=G4g z(sZ2T3v5>GDPdnVb-kXgiKOWY&Kv%n)Y1g}y2BrOm%<6U`qiTa#U;dvKTJ)j$5n~` zi?8eE;>Xvb_{5#~ZTa_)9~w<-nOi87&xh~C8NmlNB@N^#w7I&Mc@p*K7acuL1AJe)n_ zcdIAs$aF`6FDrZ+3KIfHufu#Cv#H6sQiKb^vCclF(morKbzYW#mPyr$r|$(tRkGT! zjREWIV(pT#Kh{`$jvf0I*fQX-9dM#@1XdXdI}Tiy6XKU0zVvjC?~^)cCp5BAmHx7H z%Fxr%k;)~8Pf|4(9y4Y4=5m`n9%Jbxl%VzNX@(4I?Ev+dXLS;3T_w|sNGjO zm(Jizhoj1>|*Om~=<`q;xf5q9Qx-tZZ(Ip>W7!luPRVe+5U7C`GX(iufK zRV{tf`$aFMVB0t_7eQF@4jQWZp#C_#Z|=8v!10FHr@2~uk549g@(%O7m~L-9b00?BVOe3J>H3Q0$^g|wXUWby`|Mn4J}apGzji(jr%2EBmWOS+YPIRUnKOG z+a8xU*J0O)&5gln5@X5|`?rh|SP5x$_9Lzr@iTMR&Q5Jckl=%P*n?5Ast<-gI2 ziio6E5CIPdzWQRY5%#tkJZFA!ymw!XH}pfLNKV~u;?D?ZMNM0yGiNx zx;{OWig9+HqHD(H4{t1oOOnZB*M9MQHsv6(*gyy3#idLX+ znc5o}rGKh3D^eHXhg$w8xLQsU`TCiwB*%j$A;be04lb&!xvuAW2Ra3B;4&|nnTbOq zjb=<{l^Z@-edhY@!O8WLx}q9JLu^5dC5Hvd86n~{^B-kBL?C>2Rc%yQd@S4iyJnb; zDCK=mFIE5(gZ}Jsk9mv8{^3iMEe@YIWt~IS@;I{OBIW{nKtV7a&+SC%RSZUK$jpL( z<+KgbDYsR)%6J`BnjRxevnW0#iFxsLe>P9jdxs1s;x-lB`ei-3sl3+`SwphiF zO3DM&6j$+_GxvMtr}x@(#DHzc*_8M!0oLd%v>zZEY@x})`Gau2RoE5x_!N^Gy6+@# zl}J|*+SJD#y@Nem^`6&yc*$?2HM?Sz%b;r5GXjHP-o;~>5S=Egd#5cc3vq6lyPldm zHer$Px@+Xa{R6%A*t<)`Wo=?DWP8Jd7_>X{@;>d3=CI)7BiJk$4X46-v;X*2$!oWd zktkq<`I)?RQ}94OaM!$E(`BG+DxNHHs`lIUcF6&{fLWuH$3esZ6Sk`RT0$yo3bogN%KN?3N#X=X#z^& z7i+0p7rsYm!xAi1Tm>7KrjE`)ZDD7p4utQWC``mZdM&U+ou=y}DV}|$4D_{<`UElB zNpV~2_FssFJr^D_m)D?Q-;fqQxlNn;qr9o!n}pQ7p|Lk-rF<+oElrr_bAdRSW2U$W~9CPi9<~9?Yn;za8qLtQ$`PsD!$pEdOWnhRD|c8 zQ}ULgG+D}0D6EFZI>G3K0iuDz@bDVd6y>mTy(B=~Fq>pXM-TYP)8FDCfhmbc>}cyD zQysICKy0Mll>RTO;*x@R~;g#ClzL1d#M|?FPb5aWoyvE+a><_8h>;S{65;K$QEG^qZW0k~| zlBy?G-hx-QoJ+c?&4No0*eftI6VO8qAK-a2)#xSVeh6;RB(wo3Dk^B7XI?&L=k-rQd-||ehHgGscoW|0t?*|tb z1>^(s!-o$!9qeNiPsaC-CBJLD!SQ4Dw879wrVnrYR(zW6WsjMk3mlFREf*{WNoobvYpA+k&emkQ^74*=RQq|UFpY=14WyVWB}@URS5zF~Ontmt?Pi{w zl6v%S$)>k>?@(|{kd@VreQ`>|GT8;J;}82A@kkkivq+TqQ?=q}tTJkQ1_y(l%p3+~ z&dZ^2Lv(?@o*o%#*TsxYjf>-ep|UU?dg@qC0wmeaxqh}q+$y^_5{H`ceZW&@P~s&; zi)rs^c%lYbzUR*P_wfDj0;*OTG%sas)>f0>U9hW# zCovm)X{~i(_g&+~{o3Z>%EsmfHC4_k;3wX~%HmPs@?g(_J$QHx+0!I+9;E2XPw9OX@rGt13|Ddj(5Gsh#cZ zZI|DQR0r;|%zf<9Us{^#2S^5MP=Cl0&D#6Iuqxz7qt~rsGADw-GP8V~No`!)3o8Rb zSaYJ4aW92!`6A*1L<_!5GS-vEO%=OUfSYy_bxg+^k&|R;!n2?YRQpSAN&lb8$u>{k zg=Z2rY3@Ix9qSG|^JZDYeb*W+ehx#m-!K2#4f(aQajL~ucP>(F(u85|{IfVE#iHTg z`2vMS$l2p{&Kpp6*!1z^O_iUY4?{r$^jBc>U9s=PaUmRT-Kw&2FFAAOvvq7V1Jut- z8xgq&Po?Z<$_rug-HM>(GHo0GaGZlcax4IebfsJE4kDWP$|69^9yE#HbM*jnEf{+} z@nrfMW090Vv5;y*M8uOf4f0_})>&rKIW;x6)pxK|GvSq^Zw%cV|C}a7Cdy!##nBpt`-CncFN6Ky1r}We}&C{oKn)XbcPT! z8gp4g(!)5Zo;~^|D2r6cNo?|VE~7h09F_iiczj$NRo$jG0ecD#A?;g@fmWSolppuA z4IPpO2L>0~?Pn@)@&fn1n;@#VK1yqK_cZ(e-gI7lXbV^Dh-pya-?an+DKLKwot&Q9 zdQ-17k=|aU>4Y&LGBa0@I}7Vu5dQFVC>93df*I5Np>A@cYn;d5`61_uvX6acLkub1 zak~jkSx=8rzPoyDJq%yX15(*iiQbD}5qfDbZjoCQsJOG27n+`ir;G8WQ5jgNNst^` z?B>*VJiE0Iw}0i-@?`hXy;W_J=g z+i1yr2p9AEi(eEk{0;*SIyoLux@u~vn}n?=N&24=fV%V#M4)AYOA> zUVhV8=Tb%g;gyHmcNf+OBNItlh)H`^vX-@E_Omat+D1mHn7ZiihUTWW&t=4$XUB|R zUlC%umgj&vzt#0VWXw`Dv{(_EB@}|-;TOI2rzzS zM_>1Ea24?6jgt>MJDKoY!71T-dIPDcKR8{GJz4Wg+}}+x&`_7du0CaAE_BeQqIf}Zd?Pe;~y{$!-#ulsr(ZPeYR#1f`d`8)fiY>}Y!2Kg}-P zZuiI%$9?c~)EX|bN1~p{dfn8`Eulzb(^6(~dZ5RrIkNRY$e3?$I$C4IJ4JF0{x~&t zH_Fa#;+HQmU_}%lA0q94iB{)t4elNHF7z!cDY*|p%Kj+_CoTf6IKC-)#|Fvue2imrNxe8T10kgW}?UaC0rqolKT1KRqYKTLwxbz{~fI3IFrC;n(~Xd;dc=(dLRJWn;?K zrLCEnsi&_kf!^89ilv5OVYS~e>Y4%zTUxDkp&as zR5zmaF}d8I#`9^Pf5IhLkZUL3T)eHM+BK?Q5k}#hGgI z6PJ2*uyRUxt#!Y&ncY+Ta&X01SvhFw>ZpT$-Ll&LlMLne_DlP{d4uoCRfRGJ(Dlt_ z^247$8WtST;k6Oi?sW`;a2Om`r+P(1M2H9nYM^F-J8_AZPexHebPn>|13IT7@m(>- zJrpD+w#8*Kvmome=c3o)cS0|=e?xK#uftm#H&g4dp&6H~nVbDhQa)x#|x130a00 z7UH!;eMAY_&jlN86@`sKdYhM03JVMGncoSR&O4C0ykfrcbN>i1cG>Jw@GO;QV;*+48Q6>hE5+32oRN{&_36$LyGhGc z@SqOD0isLM;%Ej;j{6d)g^F+f*c7gx5eoi{c zDHqpsX~UzFk*eCv;?mN$8eJk|36QFu^~Z8_-!(Kf^F=KY5G7`MuZdW`s;fu*YSB~0 zhTB%HZ)H3-I`fnD`Ns|8!Ur6YD7J&TOF)aq9|H-}=USjg$Xqs(`e0zh z6h1pLxD-O#;B=Zt>RLfEc8rgw^_-j{*`3Ax5vrvbhVLdXRo?gDEX52P-Bz)Et(gus z)@HgIF9V|(#ase-{gM)dmzVd-`(R%99!rP1qs3#rmrOaznxSFRlsiBy{818m5EQ7* zFwy~{uH2-{*-Bmu|HjBk{>*15Zx5fHpQA4cBgZvY3Vfz9=XZ(gw;o5tth)TAO6M~V z4!s7&ukkYmRpt!%0zQNq&>KT?uvd_UtxE4knM(x*k3$DmIJ1|))l|MQyu9=9^l|@6 z-Rde#|G~=2|w=e_S)ZEn8zZH$k!9eIlsb(y4sn#w=tI;)a;|`X=D2&beLW7Bu^h2VYs)&4-VrjRlmwMPKMOt9a)P0f-umSLh_y%jTww_eFGc#HRyQ2E+}WH>mD0Rba}#AM^=)!bvF10W3ZEe5~oPle7` zYYe$jH{||SXm`B|eZ{BL0pt@w(EefHy0jla6l!Y$l=FL?oQRsm#f4zw9S>1BMSedC zX54r&Ob8@0)j;MWX<0;(?D8dWZ?VWLfM*e}B-U6*GG&0!Hr1#j(nceK3^-{l%*|FAmv6DXw8Zu;ltC(3?C1Jf zGP{<{_WJ(6hj2$jp>ob}gA#pvtI46Ad6;u>HbY2omquyW06jH{go}o&A{}=a$o_w^ zWnnE*#(ADEdtMjeM<^1bW_ zIiYsIMjNpq%zsY9Q}$ipP=89M+Q3Gaqh3btn3XNs@5o=FDlW-wT4dNt4PTBg++L z0OB+G1=Ez=d>Jksr6e6! zn?AjvrC*p&Lb7@=rCBLvHaC-=qLyy>{_ETf37BkHhPnoRO;QW8`v?;qy~hXJ>nFSm zTu^oOZ1%>QD`W0@$!)#oTxt_Y{80D%J4ydJb5pz_Q5pme4o*5*O@T4q`*Q_$zzl>k zq7Q{vc^VqP49sObP1K7T6_yIcH;U@4Yw(g1yG;X%wQaC81(%h~cg#2k5M&S`Q&LjY z-IZyTrwtFl{ zXPvwgmH{`;-wdtL`Pq5 zay}*?$jjrmqIYIdX$U>KI>-k%pP`~{Yzl|fmzV#L3N!2rASC!KO=QuYCTu>oHI)4d z9C9|#Ep;*fNg^RsF@ADrVr2GD=UzG_t?|B~?*c*pU)A_XOy>*G;NG|NlYip@Bcudt zYo&Lm4`vL?3yV1Yn>*@l`r5vNLt2+}^yyz$Ri+ti^NQZ)+T(?k;$j10k&KZY???O# zoiP3~B!#kaUo^fon`4ZzBZI&0_;?%jXw^!L|3oY@E;{-F`sCz(sHdm74D2o7NS42H zh4S)RT57(p3}~2$d)?NB%V|kTqEWIUa^A4c+EYTeLndpYj*WS(4u#%rMQ!I5S=z)R zr9!TSs_B{@AP=S}5hmu9w{3;++sr#mxsUu=j?U{vQjL8s5Zs4Cii$XHkEp2ZlbdGJ zl7tn4{;pIS);o+PVd0VRdsc(NCznl4&F?%teE+Uc0tmtpMwwjgG?~XVGy^+czj(&7 z-PHGW5IK+rT4AR*o>m@5T(-Fi^i@18$4jQKjen7v`UouEgA2{hrtm_c&}=Yp54Qn) zv;OV>{%K&7pD`TS$U{^jGKX7-`uD`Ozo)tyUj`5FMjA{VP~^1(UkJDgN7McJf*YT0 zAQpfeHGiGyAh_60;z)=b8sRhaIaTQ`+@0t<(xJ#OH)S7Lf3IoY9=e2~R-}o1>t~2b z)cwzqr}B+{-jB-4Y#Q>l?EcfdD)ZJoJ7@bw3`Q0nM&a=85CySYyOF#>!u$|l36y{C zZqHGG{@cd|KBq(^B)!w_M_^*^c&i99q5|NACN~(x3X93-x$tuT$?wNq&dH(od-<}( zVgcKK>~J!rUK4zlwmN>&Y5W)9B!DdV|2o~j-XB^d)_-J!Nawyx~{LUInR%4w-)e7w&CA0U>>tEA$p z{!6r)^zpF}d%3V2--V8=GyeCoV(RIG+mK6i!PVH<7<~OqAHX_jl!s0uuKPXKx}(iM zMbo`=b`~{aOE%UaveG4%#%}^dZ)Np7-U z*s+r6Xm@0Th5FD4lVH6c>W`AqtwA1U`6CBmh-kfnyEw1w=Un+CA-E_>;^3zB_?wA_ zYe`^Z zx~%z)P|x@aDm(WY^et#^VZ)l?)41+fu%f8#;iZ?@PgU(ZWC40v8hkq{>5TLZY~N4F zDH!a`Ksf7H?&V#OzrWbenf~6Y%iF6Hz5suJxE3B3_patEF3>t!+|?^VkUS9G`);HC zf`-5CV?S6g2%zD zj>)JoB-eRmG&H}f;YyBtiibzUW+%dCl`k$=!K~&HX3(Kin8F!VkP9VX(J;{*XbI={rw4)fI{I{5ZW7kE0}qAy5J? zt{4?{!EF9;B%t|;Cp&jt7uF^6h-YCRTTiRg@|6u|!c**J&yw0F%u*q^=ilyk->=7_ zUMN4>dE{&f6q>22{dS&h2&Bkzm2+mS9gS#&!^!k5NEdw<-UW#VCIr{yreHGUVeKzF zgK_%{iX|lpmMeOkHLeUZGT7#zDJ?!OA-^Zm;DYT^%j@;m2}s5#%7?Vqy0>Thx-shN z$Ia*Tg~A8e{_EB@_RyyFc&V*m$6zB#9PdXvZy==rG=WBVuc~`vV?c~ERpsNqp^(>~ ze;0WU{!aNWW+QoU*n(QFU>3O_&_ygh+7WU_mcC!8+x}W*5w=Y=93QXS|9p`CE>G3A z^h~&W>!4X&d?c1y;MsS_*8hG{uvIKuhU1R)@E(W-;esZl67%Q!>Z%SzQ!xC+3r??| zubcV6S3yKr(IOF(G`yVvzFW{YJL~^&G#HMzts_XTJVe|4lz&{1Uu-KJZ!X&7ZE``>jWXw@pQ{}> z4e3kF&QS`1qR6O+5Gqee7GnlMWn58LR~LZ#Jv^{QWO`eGExDaVXV^u6CCJ0YFNkH* z53Jl>o}F-U3GRm=^}mH!v;{AQ>`i_rM8vA^&AYHbd{9^%^{9JQwxZhCD6+e`htdm z5%v;%X*ycEnF72V9h_VRy+mmLLI}RJ|A^UX0e?Z<>_upGl~nJw1V*TtJA6H9Mz(fB-uOh#drCdqJ?ddONw9 zda*gV(*14Z-*%)dUCmu=p>DPiC%_-Ore+X#HxXLeKaT$A_jjCbwpRb^$;tI!X}u)K z{zt>k3FKh^Z!}9U+y8_1NArKuEX@BWE2z7R!(TaBn6q0tSUOrdxw*dZIRC4=m)iah z@&60b%M|*zv%iY?cW%OeA{SJ*bcHy$|0#i%ldYR5NcgXW{!{$F75SSb32}tFSh~8t z&_sFuMfs=fKk>T%>qeCC-#-2+{7=GL7u%OiP5;Ct%K0w`|CIeFUhls-_^0q6gg>Ph zRJHZ8bkLQueJSW)S#W|lgxUYA=0BN|5C@2h2GrEt@=s)cQT`$NPxN1Y^!`sj|Iqw{ zX<;tt>TYIdY3}xq>-BQg{u=#nOs(1fAr@x;uV~?yu^^}nv9PuBmNIp-6a{f`@(XhC z2!aFvoIHOT9Nfa}|AF~O1b;M=E|#Wl5Eo4d#6k40G#vkQ0bD@7znTBk|BEWj{%0Qj zV_y9|Y5$VG%vw>j7v{fL08zB6t;&~WfgVj>N|Qikk1JW; zit)ZbOk5j}R~DVXvZg%0O!!WtNoT-L%^-DH!$9BI(eP=pz4JP1_{XfmQB|=%alN~- zJ{#Ic005`??1sF(uZ1spdzF4LY&$^I^R&fv{P%tCRZ|X^Tk??#f(EEA zeku`QF1D=5mviH1XU_}aCh;^fqS9i;p_US>jN-D^AmEuv=qG=Nk8AAjmMB?RyP~5> zZviuml;PK;2RD5d`1}S<{JR*gHyP9S-b7&~e=(V0T|Li-9X_hVwfk>QH#JBjv7qVt zha1mR;qx}z9~af?992&Q49&lFIyU@`{kHGTo~iaGgM)2pYaTQTRDWizsogE^R?eOE zt_I=S99ljw;l%&?T7-9njKj5;79Eg^)|b7)rGvO2px?5uow{V?9;|NX)2Ry}eLcwj zvASYFNUSS}nVCQxFY!<^bk@~?o1+bwDkxBy_u)+AqJwr?iw3u1O}6`X*{r}%M^Dcn zhaL@X$8|QhAc6EbF5e~Ui!MOKV)hQAC+HcP6k|Uuf<<8C^c11YINLsih%yylru(GV z{bO3is-P>6`E`w!AtFAPN_W!FojpQTg_fO`-T5Sm4%p28lx$?g-$X`VW^9k&CWY;8 z5)qAvv9o2a$}@(qw>tbhGo2e@h%0z_ZBa63J^jI)W-HevJ_OGCyTO-9Tgt!(yO2Io zf<)C$zGLN4#$+kz%Ixs8ZcjKr4YhZQ_D(y*{(V*!MY7cHmQnpaS*ncVGkhSF&^RTv zag^pq?-hIf^2h-4vbk$eZ;09OQJH~M3D?f9TyTr4hC=MrweQoq!cBUl^>^!68i%$< ztgi_ugP#R%;J^>V#Stg=NsqK1J{o6zsxUoT6%N>zTS}O+zj}MkhMkz6d4&!?L2vwY z50A-#$2MJr5?N14yQIh5rK^$oFtyY?c1sW$_^L62)|?KN%GW1Z@aqAb`Y^I+>B#0a zYI|)S?>3blmDOQ-+;#iN(J#=w-3#YkDtBwoYV{IoRITH6ix!3Ok< zhUU^`g$lIVCsf$$&HXgVHcb%lql`Y1GJ)f8Cej>Edlq}McQ=rGUy;|eNkzS;;tHIn z?&KGWiJ=mf@a>(sujsO0y3z6N{26o0j_CDv+$iyhl||aqrKUgaR*xx*L4*08K{_Ud zz}J=xj<(zqHGSUka=oUA=?R;+pD%>lPCD;JmoC|{WssEK*#anih{GPo(b1$Jd&Jva zKEDR*{c+k+&atS4o7bH8&!4hFBX8QUu_?lE_o>u-ye<%LHLj>$J96cAV@RH3jo!)~(re2BOsWY(}EL_4^Ehitd ztydZYSko>xnQ5ARVlOv3w;2)TtEzsxQi`t=M@N56=~H(;C{fnLz5C!%C=Mgee*9J) z@s>hG9OwE*rk;5K9#Pd4@KDY7jyxX0KPuBrF!||#r97L3HSOmglSm!+iRkH|@MFg- z`zyQfE5sb}O!wgEg-W8f^|XFV9xKUneVjuvI-quk)Y|zIx7!F`OJ&0)vAc1h8GI<= zH!J2Y)8--S-I1cJ=ZvhWbAB1ouF?YH?wv6$^}(w^y=IPL28sEUMMhqml^eR|{Meci z)=SRLGf{DYxtu`BE~QUnpKMW`B}PUIal~76ZyHA^jH9=BGLahH!oRwampG3;|D26^ zKG6I=Fz*TrdMI*{4dJqv{suBKC&wd%@u>q%9leTj--@Mvcf1P~8~ctBbd#Y)BXqEr zERxb?KC4G0g>F});{gdJHbJ9CQRLn@M$;F)po{qn=LqOwIN&T&H5!54<> z{f&fI&OqO0z+%Mhg&k)(%F7>OU>OkRc~_ExHTg9s5a>5yXW4P34*F?c@AW}#!) zwVc=rib^DgUCi4(pQIqS)cnSvu3zr@fw=cOMX}**MrW)N<~b8R2wxYYN2o3sJ$I@S zJ?t)JNxO~}ABAEimbk)#mJK2;BB*k~lzwQO_v0GE3wruqqUdIqd4kGojbU{qdlI2b zeQ=ZFGB?8@;!=LflOzsaM$0^je&s6BJH~0n{EHZ7 z7~Y`eCXZCYlcm{7-0(%qj76tlw)T-GXvy3GdH@Z1Gei~N!5|eOz_5JvlS?7Lv9v|O z&9p_>6tA(3aaKbS54KI9g7X)AmCr~_p&Puu)GNYYI8GQ%|K@~%)0S>4BjMEIo~+@`r@$vKnwAE#byDi{d3zN) z^w{+@pX|Ad8N>eJ_1bUW8MbQ43$0xaVCV0Upkn3B+1Ol1Tf|j~?h1SCk;pd{riF5~ zEL1t;83~l}wjnL*j4RhJq0$Ir+D3uQ%7Y;V_&yM&=L6do%G??Ku?1lbS=eZ zW4`=PQ}jyoz^V7)@8f0AWCM_)o-^8`$`j7(_&p8#ih;ru@Cfae7cuRQp;K#${hTx_ z_H(N=oCk^l(OjyvL3Ay!-Jw)EV|)wizZJ>GBO#g2_~~yr>WYKjJ``wv_Qz#Zd8WfB z4`4~&r$Tgm-}D}_b_Fr47G{_3I1}+FRU6dtllJ^?*==q@~V2uQbYz41^&S*C!NYPlm6=*{bgsLAHM}A5;TzY zR3P+ zdo7IuG+H5wS=T@P8)SXwSvUzI~YR^d% zriLZDKjaKqSRrv=^?LQ2kZ36PO(vT%%zK3$v4``Dx{#-cQfNzxV?^9@K?g1e-D)jq@6l2= zaI}@R#g0d5TqeK^ZCL@-VRfd!E{#s*U)&?=7_h+8;Q;7p7 zJGMM|7z+?Vt&lq2=@BFJ&`u&kR$KjnU+DNEzK?h~!W5%vNORBCZwxRAs~@rf#Iw-S z4zm@T?go;_rrMs$PyCfsX#zrWA%w&VqH zsz!*0my$*E*ao1BrUEbq%(7L+K4B~+xLoeurv<_*c_@`8R=Ui;P^~vS3)4*64{yO? zPb~iwKZ+VXbfcI9NJRXE#a=dw1f(Pi<~(>5qcI?YE70PnDte6BiCSi;6NTQKlzWC* zbb`|sf53u`-UlsQ(BL1emScbrsVoEq_O1mtqYcm*>F=fs0?ejBV*F| z$t}tO??}|b-t}9|+sT`0BD5Z;%ciRi8{g-Z+hR z0pQkN^=lCx9VWaZXvb)tT4x@MFXWG9-I?0PjzOwC(tE&qj`s@9y@;$MOUpjsua*wg ze8(B*5*2wJx*no*r^8p}{oeGmA)$gc3>E*o^O$i10=I}}d?J}<-t@cIz zPgvZ{sRs-DBSfTH3&q_>)h~0+xtnOfFy)HPZm9#tq|}4j{?4IX)WWqyCk%6*w5L|; zUoC@v-+Iw$T{r{XUv}eoiMx3XxFrup+RF8(Rq2wLpTP0=oOv1}B31CU_6FITYg87;d8L-@4( zMvAc9*D+`BqQ!9^?W(7IRarHklEHYvZU^59p!GJr2Q#NE)mkn?g$kzrq{;^S)wePC zL`8!l@*>=Rq&U^K3yu9ovOO$>nncGsri`1uEx<-pswCIsOniDQR?B5~~ z>933c?X`?Q?mDn!YYm|wv$+`^F_29t981I3s^;$`$MT7t<4IFCbu^HUq?tvR{-8cA zPcmp4FFRwQ*@9Gx>cHDi6Gx!+T?J-1Q?u4ge~|D0@Z(Mgg{w9PNmx=3dcJB7Y;VUa#Y8dj{=B-=@84&%V~62ODXcM49q<@~~*-GisHKUvrw&HXa~xvX-`)mW4R zOVGQomNI#@q@Q}4!1(ZwO3s&Q; z;h}9qaD#R!1t5`G1 zj;ZvJ*NieFj*vqxCc+ZyyGC%iR0E6A>gpRjT-X`|TJrrWeAdG=+AfXh#*b}hj~aOk z`{c8OWD+n7$1sb_5ej&e^leFT;~(Q@rVhFTNxPvxQf=}JVEm{LkYCBC2kgy` zA>IuLd!1+_bTWvrsSE7PA&#!{i)KwuJYiKEwJBs+Pzog0#VP8ouZb~Y)+^0^H5u?? zdm|%k%y^Uy1}s284`OU%yIl37(!AmB#DvtF&ibpN&dx2N?gDw#(=<^xl2bN}G@E<# z>Y>;2P=^*?^Scbb`~F;bO(-OfW8F+<3~BA{T?o2aZ=sVx%*zNyV7qJrMqoC{PWy;^ z6s?e`B#xkU)z!ea>KSdydW6F?EWy`6?+@skgXB}MP)HIahSDEYKY7TT%DM5JO)>orcU-HEDI ze6@|ud%KHzY4aofS;&U-g3Nrumaf@^lV5IHz9dz{31P16YIT?xJl%HDQUQ!`%7k@l zrgugP8ZkJ6olkqTkghpY5YQv7hP_1t_xBgtLfr||W3iiOUoFwvUkM;?s%G|tWMg#N z--bjd<0r3r!jms2lwNVG)tHH8?+>g+8o3l;s?V?C7F_DXmoU=8c8Lh#fYTWQ2z?zL zX2Y~MnzruNMdN;$R_}bWoGqQy&--q!BKCs|Y`o$pJPLC{iqYI6_`|;Xg9IN=P@}7Wot}RsYu+tFC zN=gz1-M-;&*1uUHH)Y4D<)BoymQ4Zq>lY)YV}YWcEDL9!MY?>o84h_(eTo9z=y0NL zrS-cCy(0#+>jE|&&N{CLUak2NJP=I;utiLSgZY(EfX7|VY`^5f-E{pTRx0ZxjI(YU zm2grf7Yl>~PaI8#YlhrhhGV~8H-8#O3P0^T4#BvITPJgKQk7X6p5S(!ytEPTpDm+&FkR3 zB}PVB*L7{`LDXvN&QdX(O`)W9FOB98h`65a|_VZ zK-&kLh%dWS#nqnqMnh;15`3*`h=SrZ(IVU!R0DR@8AZAoFhBpT|yGZVG8LcQjg{FXgkE zWKTwbb{$M_ACTERWy^}{V0)EfMz%hkgr|)xr6K9>Zyo7sdq=ev!!l4TAu&WM*Q3XO z+EIz%b`*kVJyqG=G5?1oOM zcPCh{1Z(UqsLuFU!h9o+<@WOzT>j;RQEP}@@j@C}K>?x9I}BOY6_hoIka4Wm z$O?1j9bxB3Wh;RaHNfY2a<{knm4W6pEza{7XVk|bF~6!(NE`WhfiB5X;HFd2%x~*~ zIIqCR=lscRHCje8D)~u6ti5o=LI5g20R% zKQOVP6*IC*Qo?v_W&AZ))+-F+vsoP=s^t9W426-EhJup0HY7aF_p8&p+_%@FnNlv3 zoQ0=K(MrRCwXl0AkN8bj3?ua(s6iE%j}hq2I6zF=+$iz5fe%qL+AsmH9$y~N)9|#< zk%$!LjOzGXL{af>K8?%|fN^)YwT$>pyT55vU+E*WvP4)NTGMglhETfkjM7FmBe5QL zS4ZEhY7ZJ*3)+DUc~mkIo=1(CEk}^=#WKDHs_J-Kr6hjY*5GK&KHD>p@mS_?qj1;z zq#yssjO8+udX zJGBx`WcYdN(@FgK%pfxK=C{aLhXpLoa!}i@LKbq&3YU%5@zm>+E)SBCaTfQ+>D%L2 zr@W1M%6eYkmAEWma(|!zng5Vwi6P5)OWbc8cAgJ$#CKn-f1+Bi*umWN9b83M?4REv za3DmkdZuh2Dld&sZxutsx&rM8AC?e!p;n^^He%FrHU6izPcbb-REit^ z*R9%(hpa;J(9K~9VXF^H$Tta76&+3S*v+eLI&X{MX-DALoY&be)#G7dpT*0mqrAYM zBzs(tuFX0T41g|qpZjZ%=JCkr1wHIVs!yEef9P%2%#@xT%1wpSeoeIch&c(#h>nin z9YtagnD?r`V+Bzuy)FIq;2_-1Q`T`)lm?RiU?Dv$z~_-^ax#ZaN?u!B+f{t!rCgjo z^;w*i0EfHlt5HYXX<84_e$#x`PjdgBHo&%%UXUVy8!=px0hG+DnE_uJ+XWkVyI0UX z>hVi4k}hw6;J{69t`gdKTA+UR%d*T)F|y~Pr#XO>+T&Fir4;&S3J%Vr0WDa{n=mil z{$!8&nCLoj^0#A+S;%=IC+@SXeabxv{LLw_yHB7b8226YkI~%P3%BK1gq7z zz1d5ohJy_rbj`dPHVGhocWDS;%mAqfGdvSi0^%gNZsz(cJbHF}QeNN^2Sr7!r zdkY?eA=YnM(!H7qm>6Jz10ell!py~W_J+n%ygIKvZl=t+DB^xZ~2M%55r z{(;2iI;xKieurtkj$8IRFENKT2VMM$FF}zVVbS(|UZ^@H@F&)uERd&DoznEZU|j-7 z({n9ZU*>E=Wp%S#ZB{7X%Z>V@@V>C)Ik$KGfI$ z_H)v*OuXdj@$O(kCGkQ8S*jx!NMf+etRR=PkW^y;-AnUFaN0dSZ?mZHi4x92th^`b zWm!VjQ$!Y}Mdqu|e)3X`42F~#R4rcP+~+KvX0ohwqX%UFx_58o z%rg;s$UEi%IZ>hcXp&aOPVS;=S#<0kVAzs;<*E5%aUq0O9XMv=0B9DBrA(R3C^Z>B zYaJ}mSTd%4C7|je^Nm08EQ6gtbi;|8^%WD zx^qq53HFSayH@HZs`Jg>JashI9?j4@h)Jb61ekr$s;H0GJA&P$(6X0>@-Po@9cxtg zomMHpq&KC#5~4OqtDQTuGkqsGbdd)-9TzR!%nMKmAA-C3u5XQWchZ===#qMEy-;cr zskl4;_1h=Tm!(W8*?%L6^l}jNmW=N-0e)T7N4-Z&=;;Bo%z}P$GDe!MNfiD$_LFRW z-^MjMk)aI}=}nPyVG4>8@XIC(bx9Q8?5kRVE3yIO`L^N4nJ+UHJJ+x7>~g9vL)RDG zEYp)Is^#H1AJx=TZ4OVrSQV zW1Nlhid;GL&`ur8R!KuH)=?O*cE)W1pHy<$jc$dRlqbMWs9zxe`v>6#(-+DM2o0z=tx=c?Zk4h7J-!@(#x`Y>TQ^V*8UNu`7Z> z_u`N~_rBaK#S#&w<$S8khWhniO!INA()4P$;N-?%5xr_u&MG<)+|6iv0JT?{vqkQq zgzLZYMUV<R0 zZS6cZ{W>0*K~{lrLSiW4XL7)uA!ey7Cs%L`mXJ}Qa=adOd*+z*g)W&2aaA=QQSq(^FmKvJXvY*e4-O~VUHC;TM_)GOEeiqZqN}{`Hy&yt@x8-e3$MKF3d7XI+QdACug;rY>NaVfJF>|bU)?9)`s$2_HRy$$Q+Rs8 z$r^M&BQZ2ECdK(wZlCiy$ec@GNE5-@ccs}GZMjDEi?!AT5tFOGFRMh3K%VDy1Znlc ze1`RoE%eot#L$-1WlkItOj@Atoo60tg%UBNC9+7`Z-$9?Tu7?|hUY^mEu;2 z6T+w6%d4!hauHU}+ + - - Frankfurter - + + Foreign exchange rates and currency conversion API | Frankfurter + - + + - + + <% if ENV['GA_TRACKING_ID'] %> + + + + <% end %> + -
-
- -

Frankfurter

-

- Foreign exchange rates and currency conversion API -

-
-
-
-
-

- Frankfurter is an open-source API for current and historical forex rates published by the European Central Bank. -

-

- The API updates rates around 4PM CET every working day. Historical data goes back to early 1999. -

+
+ -
+ <%= content %> + -
+
-
-
-
Best Practices
-

- The primary use case of Frankfurter is client side. If you are converting currencies in the browser, you will appreciate the unencumbered access currently not possible with similar commercial services. -

-
// Fetch and display GBP/USD
-fetch('/current?from=GBP&to=USD')
-  .then(resp => resp.json())
-  .then((data) => { alert(`GBP/USD = ${data.rates.USD}`); });
-

- If you are working with rates on the server side, download them off the European Central Bank to avoid unnecessary indirection. -

-

- If you require more currencies or granular data, you are better off going with a commercial service. -

-

- Cache results whenever possible. +

+ Frankfurter

-
-
-
-
Notes
-

- This project started out as Fixer in 2013. I renamed it to Frankfurter after selling the original domain in early 2018. -

- The API is open source and comes with no warranty. -

-
-
- + + -