From a5f33711ce18fcd72bb5c80c1e927f858c0b54eb Mon Sep 17 00:00:00 2001 From: Artem Kurinniy Date: Tue, 25 Apr 2023 19:25:04 +0300 Subject: [PATCH 1/4] make build --- dist/index.html | 1 + dist/main.5883b77c.js | 4 + dist/main.5883b77c.js.map | 1 + .../Email_with_placeholder-0.png | Bin 0 -> 1147 bytes .../bitmaps_reference/Entire_document-0.png | Bin 0 -> 33280 bytes .../bitmaps_reference/Fieldset_tag-0.png | Bin 0 -> 8158 bytes .../bitmaps_reference/Fieldset_tag-1.png | Bin 0 -> 4275 bytes .../bitmaps_reference/Fieldset_tag-2.png | Bin 0 -> 13800 bytes .../bitmaps_reference/Fieldset_tag-3.png | Bin 0 -> 4745 bytes dist/report/bitmaps_reference/Form-0.png | Bin 0 -> 32650 bytes .../bitmaps_reference/Number_with_value-0.png | Bin 0 -> 345 bytes .../bitmaps_reference/Submit_button-0.png | Bin 0 -> 819 bytes .../Email_with_placeholder-0.png | Bin 0 -> 1147 bytes .../20230425-192445/Entire_document-0.png | Bin 0 -> 33293 bytes .../20230425-192445/Fieldset_tag-0.png | Bin 0 -> 8159 bytes .../20230425-192445/Fieldset_tag-1.png | Bin 0 -> 4275 bytes .../20230425-192445/Fieldset_tag-2.png | Bin 0 -> 13811 bytes .../20230425-192445/Fieldset_tag-3.png | Bin 0 -> 4745 bytes .../bitmaps_test/20230425-192445/Form-0.png | Bin 0 -> 32664 bytes .../20230425-192445/Number_with_value-0.png | Bin 0 -> 345 bytes .../20230425-192445/Submit_button-0.png | Bin 0 -> 819 bytes .../bitmaps_test/20230425-192445/report.json | 225 + .../a96f14595379b7c348d66e115ec65a93.png | Bin 0 -> 12777 bytes .../html_report/assets/fonts/Lato-Bold.ttf | Bin 0 -> 121788 bytes .../html_report/assets/fonts/Lato-Regular.ttf | Bin 0 -> 120196 bytes .../assets/fonts/lato-bold-webfont.woff | Bin 0 -> 33272 bytes .../assets/fonts/lato-bold-webfont.woff2 | Bin 0 -> 26248 bytes .../assets/fonts/lato-regular-webfont.woff | Bin 0 -> 31860 bytes .../assets/fonts/lato-regular-webfont.woff2 | Bin 0 -> 24992 bytes .../b815e28b1e230cff6e9d7b749edcd562.png | Bin 0 -> 12777 bytes dist/report/html_report/config.js | 225 + dist/report/html_report/diff.js | 1843 +++++++++ dist/report/html_report/diverged.js | 340 ++ dist/report/html_report/divergedWorker.js | 6 + dist/report/html_report/index.html | 44 + dist/report/html_report/index_bundle.js | 3602 +++++++++++++++++ dist/style.1038547e.css | 2 + dist/style.1038547e.css.map | 1 + 38 files changed, 6294 insertions(+) create mode 100644 dist/index.html create mode 100644 dist/main.5883b77c.js create mode 100644 dist/main.5883b77c.js.map create mode 100644 dist/report/bitmaps_reference/Email_with_placeholder-0.png create mode 100644 dist/report/bitmaps_reference/Entire_document-0.png create mode 100644 dist/report/bitmaps_reference/Fieldset_tag-0.png create mode 100644 dist/report/bitmaps_reference/Fieldset_tag-1.png create mode 100644 dist/report/bitmaps_reference/Fieldset_tag-2.png create mode 100644 dist/report/bitmaps_reference/Fieldset_tag-3.png create mode 100644 dist/report/bitmaps_reference/Form-0.png create mode 100644 dist/report/bitmaps_reference/Number_with_value-0.png create mode 100644 dist/report/bitmaps_reference/Submit_button-0.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Email_with_placeholder-0.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Entire_document-0.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Fieldset_tag-0.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Fieldset_tag-1.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Fieldset_tag-2.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Fieldset_tag-3.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Form-0.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Number_with_value-0.png create mode 100644 dist/report/bitmaps_test/20230425-192445/Submit_button-0.png create mode 100644 dist/report/bitmaps_test/20230425-192445/report.json create mode 100644 dist/report/html_report/a96f14595379b7c348d66e115ec65a93.png create mode 100644 dist/report/html_report/assets/fonts/Lato-Bold.ttf create mode 100644 dist/report/html_report/assets/fonts/Lato-Regular.ttf create mode 100644 dist/report/html_report/assets/fonts/lato-bold-webfont.woff create mode 100644 dist/report/html_report/assets/fonts/lato-bold-webfont.woff2 create mode 100644 dist/report/html_report/assets/fonts/lato-regular-webfont.woff create mode 100644 dist/report/html_report/assets/fonts/lato-regular-webfont.woff2 create mode 100644 dist/report/html_report/b815e28b1e230cff6e9d7b749edcd562.png create mode 100644 dist/report/html_report/config.js create mode 100644 dist/report/html_report/diff.js create mode 100644 dist/report/html_report/diverged.js create mode 100644 dist/report/html_report/divergedWorker.js create mode 100644 dist/report/html_report/index.html create mode 100644 dist/report/html_report/index_bundle.js create mode 100644 dist/style.1038547e.css create mode 100644 dist/style.1038547e.css.map diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 00000000..7dc98331 --- /dev/null +++ b/dist/index.html @@ -0,0 +1 @@ +HTML Form
Personal information
Registration
An interesting fact about you!
Additional info:
\ No newline at end of file diff --git a/dist/main.5883b77c.js b/dist/main.5883b77c.js new file mode 100644 index 00000000..03d4459c --- /dev/null +++ b/dist/main.5883b77c.js @@ -0,0 +1,4 @@ +parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;ce.length)&&(r=e.length);for(var t=0,n=new Array(r);t !INPUT_BUTTON_TYPES.includes(type))\r\n .reduce((acc, { value, name }) => ({\r\n ...acc, [name]: value,\r\n }), {});\r\n\r\n window.alert(\r\n `Form name: ${form.name}\\nForm value: ${JSON.stringify(formValue, null, 4)}`\r\n );\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/report/bitmaps_reference/Email_with_placeholder-0.png b/dist/report/bitmaps_reference/Email_with_placeholder-0.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff9dae9cdac978ffa5f25a0ff3319b1130a6491 GIT binary patch literal 1147 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
  • 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 literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_reference/Fieldset_tag-0.png b/dist/report/bitmaps_reference/Fieldset_tag-0.png new file mode 100644 index 0000000000000000000000000000000000000000..065316cf10b33c7c498ccd54c172cedc982cdfaa GIT binary patch literal 8158 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 SCjFhzEyB|FEamjooBsjOt7(}4 literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_reference/Fieldset_tag-1.png b/dist/report/bitmaps_reference/Fieldset_tag-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec076edf4aff6173c94ef5e142f029ab967894c GIT binary patch literal 4275 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 d@?aXdpr(Cgz@_z!e1&)daoWzDY11 z=NZZqrEgC)mrA-|dxKQx@t2p2wA3Z7E43BltD{~#D<#)8OusqRHhqh-7M-Ym>cd{; zzgqU1TYZ)~pG^p?um&V8Opf6X62LE{G*~DkWcD& zRQJ1DW?4<)@NPp1X8RM&vZ4}#5_ZMjv HMf)w^2Cn>Jmi6)4QB^WUKGwu|E-YLL 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 literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_reference/Fieldset_tag-3.png b/dist/report/bitmaps_reference/Fieldset_tag-3.png new file mode 100644 index 0000000000000000000000000000000000000000..f160c3d46666d5763d6c2b7ae6526efc071e187e GIT binary patch literal 4745 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 literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_reference/Form-0.png b/dist/report/bitmaps_reference/Form-0.png new file mode 100644 index 0000000000000000000000000000000000000000..804cdadd18c022b819bf5979320dbe7160bf671c GIT binary patch literal 32650 zcmcG$3p|u-+cs{+O0_EOR!KIkLZu>Ykg=(>XezW(WLptsGxjqWGiYa3BqWuLgd`zh zCdLfyNV1Q?7(>!v%#8hD4FB^U&*uH!=l6Wy`@P@$U%!59S(>@;>%Q*mI?v-gj^n&; zov<)lwnSlxl$6vm^pV4-q@<*Wq@)(qFIot{(Y>A&1^@ZQ|CHGwsoYw{ekrMqQs~16 zt%9BmvYam4;Yf3Hj45-h>-vX}yh}dcO;o^gi^o^p8t5iCS7}c&DyInf22v%SpmCAXP@bAz{$SvvKiRB=XJsH z%t0b?9iMYr2~ECa_a-!sBYpUlzY%9NI3?!(9pThWtXq`!0vMZ=lv(?nE({F$r<{MJ z>lfsQzrthHhO(@Vk~rhEqZy4a9_v|UoI+<=xid#|&K@IivYOp_S)CS{s|QljzKj~2 z$!D(|?r8d;+ zt2m=^>CMf}u`L^9B0||Xv5(b++|sKD8e2HOB45;dTtQzr`}NVDxb&Ku8eiSOABG`g zmmB|BdjGik7A468pI_%}*`=$aql#{7YU0}nL#FuKeiYl+<`@bMEDx@DTl5o4D^}Y1 zV2!?8wUERO(9flJ?&Hz85fnAM7jrXmR6A$AVsJt?@33*c*ZJziqiWU_6U&gXc6D{Enci-l zJD7bnMLg)nBzY9sYOGoE#kBy_9;A`b*w`3%G5?`{^4;gpp9g&ZxR^yJ*!B9IYiv=N z=8s@s7IT6z$%O3Y#+jK?)H<1nxT|zi9;wQCF_V@5NCmh|Da5U>|_O`_8 z@o{vK?HTp>SXBpl=(!4c+>ZFF&+g4dS?iCC)&`X zt1iXZIBsFd>H}<{LtKY@kyRc;wCZC~(LQTeESBt@6Pjgp$|yxHXMI^9_kl*jZF~wm z*N(M;qd(2zG4>^y*VMti76ugD>cuYRTCBQt9j4;g_nzU&T;8%q_o73$id1**+*$ks ze+ip3?|@;{ zjT^tJ#iJ?POU(~67!1~Qh=;4I>39g?MTpmTzKFg-+sO0U#ILW#Is@Y)I=b$dabZmM5{(b#$YizGY=AN<7 z;;m|{7EjRyEp^A(v)?*igf)5*2rMy;RoCtttVyOxErb>lj+ZFXSn$kZpxQbp6AI@~X3H4;v=VX3^@eG1X_#inWb zykWjD;iy``S0N$3#?_(Y(?#uoTx)LvOhQ90Z+yZsgUf)Hz)^Rn4}+oG!{&q(fE ze%ecQG3FJUv?cEhe;(l^CW+(Sau2BD%PX6{aOWgM=@Co|KEw@&0G5yEin067^ zjG81}lS771~-^woAUtW z=FB%jlAl!hh4ttKuu;EZC~D|O$1Bvj&gPswt&O+ZH(7)7T#XiK*FBC!vlbXV3onHHy!o>R$bfOrMlIEmn0XZd&I$ zHF)$njIOWsL!=ywjg1Zw1mcT|i??0zcquyg1ckHc_1j;#*eSbtNlvfiCg)F?#+5sj z2Aw>1>{zN&hZAwCxBm0w2Jg~Tzv97KYmMKh=y{N&tu%Ud@(WN^5FQeLFwKWyL8+l3 zA-8vQSmoPT?S2%{)TefZNOUxws-(_MCFL7ubO@!YkbU#Dc$z>c^8_bU2&u_VY_v}>`ZX7As*YP{b%i$FSj-A-|p()6`ndoK+^QHR9#DzwlyKh zS0D=g`^_fVNw?>B67t!gtFh%VQm7EgTdj!RHirE2zqw2QWh0m8qh)uYw{PDbzx_MNW z=Os%d$X01}?oI;Rg-_ zUQ7P%>H$C~0d(6O4E2Fg!qH{+k=~3h!5YaOq)zS{ap(hN1?!0&5|nMFQM_*$`;un< z+UpJJxO(8gw{5siW!;JwHaiA>)+FW9tu!(+GSt>P!zNCsay{`fgFNoL~q@m=9D>o$R)@bBWjMzJ7f>0{C$} zgqBBwY|_|rIh5uIFmX7@ zo-PnZk0c(=ATSmqpDaHa(6w&}0^6hGrg0F4U=#ixQ^}eNHOh;WQz;St_SKo8&WX}eF0DR`;uSLb{m-MovpH)e*`;T zR_)BC%3UpQ{$z?p?iRjv^s8=%kV`TBP5sHxZv*qUusnl zGA^nA%163d)1}KB$Zy{4?q6~D$v-!SFcsBfqf$^^jL`T5%4iXdUaLKoPiHTcN=+QMM0Z$@50_{xx%t0rIkRoMd- zO={Z$Sb*!a92L+Z#ZLvq*3gI)~1_lNqoF!F` z=c6MF*i;hp?p|D8wPwOm0=F+?sC}B(lF#ugj^KWdyv2b$LVX}`V6ySKwmB1@T4~nh zyG}Q2Ih3fPF>6rqRa=uSzN#2VEOcJw-E##g2nY3}OOdD}CKHqHF=dy$1Xge9^de2 zkK0WRNsMb{9a$ZeB!er174qV1jveJtmCL5s6ZtmZ00pUespTS(;JTKU7PZXH)pa46 z4fTd*qRHlF$d)e|T&DV09p$8l?Xd#hkI~?rnwlk#q*$JtXs=(dxSi#gM~&QojV~=K zDpF#`rU&TnWDED{>aKfCqNj*DEFcAcLM;K@)aFU{u0U3g)cLvPgeBtX=@54QqeqYG zpI?So8L*gYzKc6v0&ofbSUl0we$5AfPIuPP4jb!hs2?8usLoH+a>5o!W8V}PuUE*Y z6m2Oe@ObQFo_rP$CbDi*Xxo|oK+Jj z9Di%pJnf*A}QL09%XbG63Ur`>fU-&Om%g2>Xi;;2MlIfB*&@JrU$YiN}|-6w+1SyCv@J<>-AjpkF@6)L4r}} zWW6}K$^|L=CZy$?_u}xzssiNRyVQSf@GcXR&p9~k!}p5lu|FI?U2KqdK2BvVS4wnw zT=QJJ;-P8UO8w5ud#49-tTdi)HvpLbP;LkH^l`d?+C$@!nO@FO+E72NnX}*pFuFzb zD%S$jxG6@Mm~nyyxL0d}&%ivcab@q*>16T!>&M}Dc~P{)P8%v=vOAJcIq2qLTz4>K z{IziXzH8I-*aHxZFsiLRnD-@NyMEYgX)VbRH4-WFSMEPzy5jmV$%g;Xn3QShvTVMN zXx;GdH*pINuOYKL?u3N$S$ymnn?TOV{_L_p7Cy?uv$Lh9h8|x3S z&A0Jn_(3Q#l)0A<@Dxj>Ws=>C9*443NRCY>$id_)}Rw zTs3!SYC;OR`wAnuT*EH13>{xMwKYV@!d2SNrJ2Q4*p@Xzh}gPjd4>dfmH&uRi-0F? zZ*BDv@brUG-yJj(pm;i!^(}(=hFdKg{T#w@y~5bp?B4G{qrmP+?a|S!8wK=+^`tbr z-x%OKRzt0IU$WvOUuNS~A}~nqGi!El&KU(73IW`EfyTMwQ9|@aVVxp6CkMwT=#p)2 z#y+xoGAnCaFo{7S(#~ezcpk_Zol0d?3O_ga=fPrsW^$L?47eQEKh0Fl_vZG*b zeBZYA&hCn>$}s@?`oCqJ&YhW_o+h6jw99z_z~7+_$}N}O{c%5_FgTjAi7mVo)$slM zce3!_arGieeFk*fVtkg>lIT~~*=K|&$}6U3MS|=$&!g?_VNa>aP^$r^0{{fP3?x>Z zCWLB{a?8`2B~%s7K`c>sBI1Z(-^3qZ%jQI7f*_)n+~yFK!7-z*^}=9e>RV#~&|*K3 zX}M197^pE|*icnn@lYZN6(%A5wmf346eh1(g3v07oI3)}SmgawX&)AU65GSO{+3=`oU& z<|6F}+r|Kj@7c4b=S6!z=~ncJ0vUSmd-|zfM`Qu3uOX2SU-$Dcd-`2*a zb(HWbC#Se9&w+}4n$^ZFA*hOp%Mf5%HNBb))jZ|TUJa9oKjJ-)UUIMD_Prf`}lzuA9)2Le)zB^&DW%^J-NeV{wjgiT6}T^wo~Q6N4J+>+pgFrU&H;!!zDBa}Lz zDh6lw$B1T{JnMxBgeX5x3odc{+G62toonAPHOdK`7;F<8$d<3Zcon~bDOLCS zN#hzRl{l1~%{96cvVa!?$0QfH#PHb_s%nQanooV0Jv%{}{(eVm4B5fb)u9{|yMZlc zv5{yp&BvADKd(e`hTfu8L0yZ7lh`w+Bu;6S=t$o_AfZH2+06sFy(ulk$LU)1$wU7B{?o`!m7I{DUG6>MXw(?a6f%WItd~( z8q!i@pQ!&zbAJHP={Gg!#u-lByf88ML|$ImY)DirlB4A#GxZ}Z)#Fj5ytCQ1PEIK{ zBC|iC`Wz0;Za$TILNEO?Nm)P_@#hn*&vixH1pqw{dGu1v$Qd~eef&}EUL3_g*t}KZ+U{pDqt%vpn8MMrTsKKAoU)dHghq^w3)i zL=Gbp#+qfN5nwJb6r@ul6<+UZL=H_%|dv1!?4wm@Lj#v9=d#NppYr#LBc6E#>PcAZwGHl>&vv+@$>t3sPqVck&9lx?gEwQ9OJGy_iJr!2|bo9-~eyIqIH~EzHOe*u)F`d(EDz(hem>Ly zOANoprbALiZZGWhYx8=m`xzrHrPHC*Zo|<oN@r&DtpK8j z^DSftmQN}kUBLc35h|;$g_I7v_yHKuON4yZ2L0tpukUV;Wy3%`uj<_@s=d~3;QRe! zYdiCp@vjG;9!h=fbrpywD4kgfP&B^nk&b6g2gA&#gpO35$mh9A_@Q9cz-2vi;OXFoqWkJKwc0W44HS0~%JzfB0W`C%Q zQlsD5=A7-zY%4Ky^JbM~T+DCPeXJn!E_VZM9P>oy^RD5g7nxdX?_f;yJhY5AldUDy zP-Hu3lXQUqKRxqyx{7Foyonwt4|!O;Wf~JTKAN3JZx<2(B~yvU3vX5Sj1a=QDu{R> zCvHv`zvHBYIYJ2Si7{>oo2d+28Y-SOChXvuf+H;?1UD>V+!Ah z!k@0wuKtC5{A-m*tjQdz<;`2(_xOI-bP~B<_!aosv=}3WVBDTU*x6yb-U9*d?K@6 zI?XEQtZZ%uMAeY)8|&0ptVI4cs&4h8a^QJ{t1nf#_`L{h`%4-19;5rZKnpE9{pbMl z5xv{XdAKgQ(?ajao+>g3pv2RXf|lfB`D4+1J!Yx!@9VMuR^ql1Ce;~WSZQQ6^((%(Yp<#M?6TxTttneVmi;ZYo=^fFjmzb3 zzAc%{aPfK%B%~k-k1b5F$Q0FjQ7q`q?#t|tsmMg6=bRk3(%APJ`SJ=GV6Y$*$E8C_ zrF)xH-PvlDW0_j-A_{Q>%z+jOO!?3jbp z!MfU7K2@@ErAnd+>!v?_`b6&^;nXI>yTK;CNBbq!q1m}tC|am!B1-2%Ol41M)*!2d zso>)8f4Z?{?<{ZW%gt-=WC2MXU-hR%tVY2e`a*t-L(qLdH4$KMQmlu7y z%;e@2hy)0{DPUpbJj*C|`SKxPJGr6S44&>2ewkf}&%?0^iSs<*(6<5R4PxWkb?bVANg`f=2epWY zTo;@WckLHw@x*Rj$p1+NH7XVVtvq?E@_*LP%VRrk5aZ6CJqs%N>n%`RJq(a+;^n_A zo{>^L{MQm?JtU4=$~~`_ET4ah^W_n%=i?2T0ObD3kNXSVi!|y+J47270Ue{CT$@@U ziNNJs{}=UOr*jm(2o}Akr=s3x+L6pA5YyX_cE(rzNF|q9r-aQG=Q`3}R>r7A&hi7r z(}51OkbPs*Goy7|Rt&!@otqU+_iBahpLZ&4^s6YjH40V|AVo8yTkI;a zNI2ddsWJfYAyqU9-yR=LnX^aAmnuu*?stnMBa6J?>CuHszI%0}y!E(c6o-Vj(8YAr z5BF4xY7L1qHY&u))Xvb+8hYf4i4qXLbfu9rDmC;&fw^b~-kH8tvAt#{$WKs-e^JW< zR2e4$`G~dBfE?O|qoXr<7oWdNS z%6g_+e5FfH*}&&?r+3HOl^S6^70ZM|t+1(Mgqh(=z8EDaP3x(Qp~jBkI)gLwc))Zf zgZNx$D15Sg3mSGs6Ic@*L;BTdv(sGIyqK-;!sf)nB060YtxuRPbj0)aq3xQ6Qi6Z3 z*S+ZN{Kglvt_P+mP{?->PgWXZIqc9;bMb(6nIEro>St02znC*NIqd9EMsz@~4uQ#` zlv#7NRkP(F0PO71$>E+|I2yD6Zk&d_;zDK3}&KlF91M zQSjIhfCITLJ3-LAyca0F4)p*Co8a`xDMpaJ1n3tYTX6&#?DBuFDEb;BRiRpNoT3lT0 zU{<4IOne0|jyC!IPO2*VZb@EV9=Di7YPzFEe*sI3`eQ7yY$gK%OpKOmvU2uzg3{5u zpcVzr%@SB;VNNPxGx^7^;_eK?n!tRU8|!bHo~jGWO>_*YqRlnu5r4nUHj)qGB;x{L z7U2tJ0%hFoqC~=9=c{LtIjt%tocDnjiM$i!o67BG=Ue|aRc~ObC`>P)#?cDy)1~Im z+}zw)i$tKL{1DMmx`u{IB^3_}Huqnv1*%QCOOqTrJH-i^naszp@SU0Tg=(OGRxH8< z;4qk4b3z!v>9HP_IlZw?^;l#%Z75Dm*D9Owdokf9#;SId8tIG(Mxw&rK+%z|js(6*|%__Gi+-~e2BXNsv zQ3WC(LKBWgt9J72%ZP?!vya?JZT?DF+hWjibieIufrUH^YVZDl&Xx<+fm=qAeF#L7 ziI6Vp@UJuEGrD3%8V#o|y?WOGUsXhhLcU4>CKN~w!+F`EXN zMSz-O%TbrlY*dIgy-W#01%_&sI8Tn}h4EGmLflq(^x(b6I3C_0JGv7ms5ibXk9*^A zigx-HZDI6%CNUVMT_gfpQgKRJ5*{BG=JO6|c|||i5|0K4L2Qdhm>qCU{XB@*FfT~2$;Q#2-asMUiOv&N#Fr$51uX2aU%>4e0Sb#CEdr#djP)_Cd^ z>uGvWt32)^<0G?Vp;|xcQ#&^!(Q(Nq*f9YR4u$*MX8V&*%`=R*rDMu7Pi;#)EX+kG zlCk$xezt>p?vBN_m=_2QwDuk{fFjnlAZy+Y2O>E*Pk`7xuHF+Df+uJs_+8?S^RP^@ z;aANuWaUHT9avS_lxZp8>h{K0rRO@8Fld#6YSYHF*=Vz$iD7eNzH^8TMsz=x|@{VER zK*rBq`A69n{ggc$2VDu*urZXBc!K=U&m?ck}boqn_@sgHk2V_L5*s3h#mvL65Y^gLuSm}Z01g{csvXbe(2K$e6ZQi7DYZ})5=GEJgiyf}A!TsGD z@NUtJ)IX)7@D-~jl?VHlA)nH_{qT_F<@}etYX1eCFEQb~{8u}h(!KJSm0*jxI&X_< zsQed&N)OmM#8>9X2F)RQ6MggMMGJySnP4UCmxwn~mZ|?q4LX_DZ~~-w(2IP+%?_@R z0fjk!xg_lmt=UkG$ndGKeEf=M4oBH+S+!VrPm&MA(eg}%NucVF!~xS#*(`Z+QkK#A zYC}N3#HIK5UqPQLvR#%F3pHf!E5k%c3pr<5FTg$P*9%Pe)r~$L4Lp4j7@A*NpXz&< z0}@lQGjLC9JOGDhS^06Nu5IkQGu4o0mg?cD$P&)Oinmd{xGwlQu;`Fk=DoUrD?ya} zKK%A&^Go=-vA+-uydcJJagGA17lHqX8;+6d5U*_-2PkEpDQf4D5tA=qbqK~1yKKPl z_dn6609b$#%P1wWFyU#+e*cPQkS4)P3my~Dk|49GdF6CNsEH%T3442c>-VvMbwVLB zf>in2=)Dmspq+(@=y{(${fYKNlU2b``TLR^^??9F^XSt9<>_y&G(aASyjyuu8#X2t zC(uZ?p!NXy$rl4!PS1&44A!y$F*uQ7cxz-L?)bvaRujZ^NXvRitb+sZ5P1qI%Ln;65rVZc5irM5+7MC+9Nr>)#;KD4z{~#dHv7Rl z5+vL^;m@fpzAgrh8^aNS=G_->Y1HqL+3Y@E5U z875nR_Wjm>9=P`pHnwanF>kd@)>lJ^j5k{Y+u5-&q_M?B3M77GW5L~D4{l@&WsQ#a z_3L>4VRjDylInuIGrkA3@Qby=g76O8cHNQLyg3h^A& zaNz0t?$*`Sd0e@&%}M~-7I29DCd^#XVj93$NWIxyU>q^G!!#0372BUhri|@mZ@<)G z4+^!tpBc?>oj2S0JTw@s;bZ=TM1igxJ8X0AT!X}Nx^UMTNen7)XiCad8Ti}gd~N*i zYktW_fAddMQP3gS;fw#~wllr;KPx$u=ks-uI?!mkFAe=kvWTR}-K!?!w^)`){MAx= zwg%2oj{;Um7Q%VASN|^-rvDiu)c?~}!t>RKBpOF-GsGXn$#<500qlY!2Hu0b`$yG+ zNn0dLLuF^@Mv33neUq2UgUoJaB-kkKbUxPQ^_?i1;KeojQQFR4 zAO0zJ*NJKta8FQTq|OM7UVt7$R8g)z!^JY~FFegrn}dV#oPZ zfkiqCn7i@uaT9Oc{mt)zkaG!)Zcm@4Fd>YDvQsWg20_wvMt2E1iqmvEgG_+>0b3n} z8p0*m{swiYGn=42B#skI&D{pJ1d1%UT zYtaBJzjZQ%k-&TdyejDD(UWdSbH@0IsZ&{NUixRY=J54+9`#WR>>>*jf^cka!T7b@ zf;@}NG>gn8YsSWjPMobb+aXLa)yd`USVq0co;ZV3LX8WahEPRJGzpIH{;)EU$rckoAne4~eJaS$U->u$90XvTM$8WIFu-0V>-iq4GoCA*&o+!%s4Be2=+KFXiBuNFw0|RwNQ$L-KMhK93EyEhbqf_9~7Ax?pDhr!c0w}kRzjUdL#*-t?!7zhbc*r^_l<9GNj4mD85p-)j+XLqb+ z7Ii`fQaD+JzJj}Iv}aF&vl7LdjZGV2J$UfI-T>QPRyh7N)iKY*-Ce_q2>J&yWnkWO zB#fU)Jm6hfK`ANG4;X}g5O9FT{czpw>FGHb6viy_P>~8ioY;`D@nwlMzj&S6P7wJ# zO9c8(JP%7i0ND;^y&q+$S|D@?L+@nykFSB#4;ZM_X&oJ%4(XeS5u>Fakjw9PKGjR# z7b|?4`vZB(d+7*kyv33fAcz@Xs|U1rgn|uN(P@qX=B?5bTccF>qy9n&0QU|LfVy4z z{FQ@<6DsF-c2);*&7D6JhmJzBSgzLb;q`odb6q(+z<6V;T+&-zg=NrH;lTI`bk;!k zhe#&ovL5VV!0CJx$pzDP-HiKrFy+J3ZT+HV!zE!* z_0#nPEGh$6A1PO+bHaSjf=(xvhxt4E&8i! zaSdl)PAL;?sRltAKp2YNWSP0Fy~9ghBET>WW!eOTzoK|hG+j4+sO4DN%2>zrx<_%C zYwZDqK;XdkL;+h2YXhPzpgY7)$b%dC6)R5j11dv+MnK!)RmUpcoSvhD>q0tHs5Rd? zlk4E<$WMwr?{=xxugay-@H)f+SrSGvi};KGr2JH%^f}^}hxpf0z}Ub6+NHsoE+S-{ z>i75{B;e?X5DN6)=^blL0zp~LIHesI1?x>2|B9N^IgwQ3`hv&zC-XrZbuXYsgC+m2 zoQCf4LDnVg?Hc)}b!9neqPGGO-+wC@E=12n{@k5ZCZ~Z=MhnCVqnq({6D0=;819=( zAtKxsr2XkprxCLs<-t_>W=t)T3|G{gl!>qK%=VVr!2)STf8* z1rkGQYYb3^JIbVEuH_pS==4qgrd7Ht;;&~Q=-2-YMAr9;OR7U=_mnPBHng@SrbnRq zdhDQ^WSr67uE70JyCgAsVU#Nax6_nd<5YL!JzOAv0IolLlQoe zpMGi^4m<%$TWirBmcqG6d(CzFjQ)V-y+mY~29K6MDQ7?*oWe3B2tLp@t&j(T6AgC< zd?D-gvmU+=DG?p1tpgM^5)M;NOFYl=(|e{_0%GRetYEH%Jtt;!L6B6K44G(i8_zTr zqsv4r0X9bqoLqvVkTY`5`g5SPfdVHzM{w3CgWUyveoz@e3>J6uRN(D|40XLb5m<3iTe$HLSX0Fymt?Up+t=P%c81{?-9tq5&nyAL z)Q6{e4N~jNAWg=lLnRPJ&C0X|fdq_RxxIte68P8O+G}zXtR2_COg4s>KRqifEAuFZ zr69uWd3)hwk1u3lB;&oZ%^CRq>5lWU&WvGJOyNFixsU)&h5}s)NA6QWLK^4Ljo@iQ zwNS~$xNptySkeqrrZd*XpE_N_2*H8bUEv3>y~9E?afAFZ;bS+HLwg0yu9z2)$aCDn z!lz(A(xCo|uL77BIY802&TjT%*nueqjLyRS=8YN05>=}{J+5-OZ;@$oiOj9!)2|fS z;%7rEFF`LzBfnrXSwuwkPI%zfGHJG<8g1U1o%3$qnk~ILH$b1)a)5dGNE|q+C1vU4 z-En{xINBJmZ`2XsMKTnXMSoPOox{q7Lmyt8`38zZU9tpN{Fqqy*=09V{UI3H!Lz(H z$C4tafjHieW_+)OkPc14r;Qz{*cyTne*LgAM|{Li2u#y-%Lg2@ zUnGexEvc$Qtfcp>lE7o&Frh)iCh*%O!J|LRJ$MQ{IityPC9p2|Y_7oPctc;)gD<^) zmsNvcj-V|}Ee3>mq=;pKUye$b{cjVOk>j_x2xYXQ60`(N$THwKiQJKtU2lXt2DG1b8f{8@v`(&mi z0e@ljFa~Qr0j|@Id|1Ve(L?q@tU{*q^r~q#hdB;TP{xb&l~4eK282;`9!aKme`wM z4HnkvFUKt{h0(R%9Dr_2qoBS3eFXgKB$>?3*a$5jFMCWbOOYAIvqdCQ*le&83VR$x zhI*B`Ni)i65%M3yprHe7F&_t2cAkJBz~ghnP}Ff}XeU1QTY7iqQBUv*v^UAu5|@1&{b&-pK?>V2;!_hz=vMJMWmLSU z#-=14!L<0M9QXWc|Vd(Xles=yWhCe1LDE~xf>(t7RsarMoWzKBnD zYNVIm_u)OX&&;0-z)YLoso_?AM|p$H!NK;yKm)>b!1*NT6bNO@)!Cgp7t1X%tPIpz zfjf~h^J5Eq{gOjzkhbFQ4H(MrG7$)^0+m^RJp5(s7iE`kgu)2JY38tOpe@6h^TAAM zZ2leZR>6Z{@D(=1{vDORQR#H8O5bS`2!+m-V9Jzk?k&j$88lL}E|BHp1gep(+gOM} z9hXX|4+M){gs4PNv+Ei^l@pv#{xc8pGYde%x}uY0SSh5s71?@Sw!1k6#I_f4JlpA! z)6DmEKi8E_-k1Wl;u2BJby6uV?b~-aPtCoaP?*AfI%>fUDalJ^i^mP}G6}NtdnTwT zfHQVqTU71Hrs1s-O$=J6DyGBFKha3|5)m0Ap#<-_u=b0s&Zer!vW3of7)U6T8q(O` z^h;-L8fAOlo-Oi{-@Gi@)xU6QyhY~t@S-r}H&TvQ+)8AXB|i>so;O|GlaiTlh*}jc zB>_GM7Od!!T=9t1f_YtZ@qus&wYKq>MMIMBs!IJLxk$Lo#=l==ojOaZYljGtXmWCP zf(gVd9`hx(bfVoOgquSddsG+d+Gvhk*5|lP(D}cRw>aHnJlliT?Xf{}-YVpt;r=j& zrNba%SIO_`cU7$RCXObdb&;=?%dhB)_#;aDmfR598^I{y1h|gOf?ddu1<2P9$|0i- zFSrUnH)xfIjV7_5obXuwQ)~9S)v>%!-z^X5Vp>|D>wb`onuAl?|g z%tb@xE6|FE*sRX&Z}2YkD{T|7>dyZRVW{!D^Txllr}_uNVJt+?@s`Aa7zx< z@RMK?12Q$2I{@NaX6H?y=Hc5^*Ld(>z722>O`fCODnz zmi!8(U+V-0m|vZ;wg=YG2A9Xcx2tc{iDcInVJOV}Vv)GrwfYTrL2F1F!!;(0!R@x^ zUp8cULAMdKL7SW32$U7OmJdC|e zpt4%V#scb!fs=-blF$%_!6SzoXNQKNqu^||nsXGiaR7CZ&aS0VM*BrKpkZVc{>2KJ z2r`-M64d}2^!qm@@XD`W0{<)e6r5MVEx8~MGjQP?8985M$<>Wy&2Ux7p+&YiLj;;5 zfd8*`&>_CMWi>3=_oGl8MroS}s(@nwkYvwTCa8qgP5=@uEiJ0N$hI3dZrHpoh+yQR zL6{gH>Nb(UUFXqSp8mo(aJqab1Kl`iXN9~We!{cskUw1j`oWFLlH6>7p_YxaI2Q~? zvx5O$-qpP~Z%(G!pZ*5@V1uLm4+?iZDV#vKPrZlv;;1J|yXSsXt%iX@|1b14*yVen zP$)uV9iFsqVJnCj;M2Kz$yE9xPHt{1`M4da&{*R<_-~+cyZrVXumut`5wHzlX#(=1 zo4DawS|EI90CWq&hag;ATwzH``)YNw^?{ZkSojs&dy-~4JHZQcytPS@#z&Mpz(sUH zBvbQ3>jDo1#AI6?{0`W3$DTD zp_jg!iBg2e@iB_dk#%fWF;xLZEZG9IfS9ZS$=B!H7KSK)(?&|VR~8; zf&0IfCN8F2_Qn)4T4%A;~)Ru+ny@5^?Dz3p9h?GqCA_b8F96u0N?X;cL|!1REI2*o0h!>~Ro z&t|B=HdBeo`t`Vz;IEJ+`cwGjRzO_m;W zvTS9H^>1uRY2)_GFUs=Yix`f_Lc_y&`xdstr=&Q@FE4_=2I3{CBQff%`64r7l2d0%`1SKECH^<5xc?^z^LHH7^*()rlxhPwezve= zmimnTteJ-(dMjmuy8c>p+f7dHEDXhmq<#HAqoB&=L*QBj&Lb3P2w*x}b=X2R^uZM$ z$;VCs9LPAeAG2rqD;6e__vHG~jAx-n#<3-J(xNFiL*~KA$W-W{h#@AB*$&8~J}h*W zorG6yo1=~fq5zIhumv2<364t#hr6fFcJxui!1dWzQPOz^CZ`zYb(1QW-Qe(uuX^H6 zYb5IJNUY9u6a)iEM(iDAxC7t<)5%UD0Z#d-mftMNFpz#fDo-GHJn+rtW<5xC$Kpsv z1O*HgjvP{jUA+bC3AqZ`Yt<{z1eD8F&gNgt*9#~Uh}@p9E3(qKA*bVb=HLp&;E#W* z$Dhn@R5I~!hqcjfXNIQi%? ziNxPevDfs#Q{BT>lkRY80}PKhAC zGBeW841t^lDIG*{(D)&tHzJ5&zbHo8a7kS?XEbDTC^bqO(Yn?wkv4IIHgM3SqO{@H z7wSyzLf-}aV-E26%rh7m5sUdSgB!ymj zU@GI%TgM{$@Z5aGEhLDp`>${wk2iGi!^tlj)buwU zYEM~vL0YUgz@^-L2mO@gq+w!bP*1c?F!rPA7+AhP$jZs?9Nook=BFGPBsprkhus%v zTqm-#R9leZ@w|a%RKYG(6dk(XO?tgzL=_b`f$CX)h9nTdQ+3x57QB8u^Xbkyh$tWa z;L5I)c~`%y6+^)jTQn7pQen!>fN=p&Q3!k6;>exe4+qJ)5^TyR58WM^(7<4yc>Ys z@35M#JrF{V#gI33Mc3eHAXPyM^zNI&I{Zqt zxSDMG8sz0esVhXh31}eNxCrrlK@ss<6Q%UbUQ-xKjDIM?XiLiH15Q7k5!Y5*N5|eu z@GeC4=xwH~cZUC%#>KkWGxm`>gcEEi++=H3Ci-TX-Mkx4v|;JKD(y48o@K5yUzCwS$u%YRo%454*WbVKSVtUo~pgoEZF`$;=Y z+QZj(Os_e;+HS#1_ByTZTa{m41O3*^2} zbpGRgr87=tk)V-!u@H1VI70~9rTj58NALxmg8Hj^gkX$4Zj>U}PjSqH!@5$+n~_UY znTE^mvVs%swADkQRN8g_SX_@DIG^2gzDfnaa+bwu8% zk0y{cinqBX?JO3rZ7t7%(%k{%6%!5vgCg<05bFEp=4@+xEvuvB+sw=idLKe<9NDqJ zAlwAbIz+ayC-eLFXJiWHgAh=cA*~Nw`nSi)-rnADqJulG3atO@j z3m3Y7Xdy=h9odKsz8Lz!Ur|_abV}pI1Q|5ug%i&ZYY`rgdNPLr=lU7s(OX&`Xu|Tm z=!NiCaZyro=Xb#WLjec{-cC5-WWumwc_L+$odZS%TF~$zfF4|?KSF~6lI*(2XP0T! zjfRk!UC=EM*x#5z=d^c^Kur*%3MC z^4~%KB9$AZ0PqyH;6}ZiWB30t9k2lb|Qsr%zqSlufC)HFCN8kXDPw&NFz8tOF z&#JTmDx~uAHu#{=Y=iWFi zW|`w9$gRq^-+}3Qfu-(5m%t&0(85xAmJbJ*!6~S%UyyIrqF~-r!J!R@B0z)C=6*_q zV_Ya3R`wD$g~=nOPQZ~vAeq1)DwW!eo!=Fa{udgTN%@dLHvxhRjhyWXm-w*D7;<$3 z+!DaIap{QQWv{6cq)mmF25@hPkaHFli$&Ic z-U1j<1j!)y85DQR5zk*-y7W$0Hn4rJp+=UJ%iUqqgZhT6{}P>tyHWVT3ZC!M0!QqighVk5D=*%l}*`%KtNH@3xYzy9YL_5 zB8VUefe=Xr>q1z>1Y!u3vXcZQ5J*Uv=L@!X{--l@&%OUS)8jc+2qC}i``-82Uh<}+ zcwB4uqwf@S|L9cybGtJO*d*e^ zF0UkRyW=0?8N>fo{vQn256I;ED+GwLh$WHxx!&4&RxtDA;y3IGP}K!*Z3~kZc?y*Y zQ83wbJyNqygC~r$l=Cza7Y4K&8hLPggd=xR~ z4RC{@M**^FSC8Uy#_7$+$C{fRM zJYHjee?P;YAWT9iVeB(X@VZUE;lOl=#{|3X4{>LQvcIkuiwg+?DJfItelXjHNCoEk zIq5sMn&TF62U3e@gs=!f^Fz+Hkfj3ZKTt6gVeg(w&9kk1=F86WE zW$7~hZTSY`Az5q+SQrL3z>Wqm9iojqjD|0@%PtX+AaFB-PjT!71W^**yB|7Q_-HOB zgd({0DlNN3PUkIWxyOM7O>nlymY4pmmQ8Ft(opW!9oC^;L&Jg63m^(Ra0t$Zb%jDd zR2{f@B-AronY+8K-;F%jkr^L7pA)Lx{Lj14<2i#YRlcOdB%bUPZ$IdPk9d5mML95~ zHk)+2@12~I+D)ogKz$8ErgLe4UA;mQe()gHL9;@HDG&I{cpNVG>Q*Om`gLA%IvKRw zyQJDim}m+%)#m2E>tYee#VT~}Rt?Ud2P^g5tsDaiaJbB?wR_fFyc(dntT$&0;qU=+ z50nc+ikG^RcQaseCXZof1t;s}g!T-7=1j>K6lIw_BOR(g=}?8ax{L5YLIwolH@c== zn3|xkYwX1;ka?M9_@`*>%)M^NL+Ra_7F^7K?bc<$4QZ+CE3W2*v<`EqgZYC%3@kZw zr$^<|_z#?LONbewMl*O1MpYg~pzI zUl3cAE~7QcFUQZjw=xvc!#c>BGUYw9nXf-NLtR$)+0<}}#xXf8+pS-iA0OEN+fuT3 zspy;-<-qyl4#D}$9az(s{`&dVZSd*cb9jz?J399!%HPDeu8=A%cXQVI+`g)3UJo6s zv@}yZ(2=#9)G&bUU8ZN+P298vZ|^xA=?;$I z3~}3?*#hn`q>+P7wxoVmm27+Vy_Y5q*l$s(zmzk%Y~9i(VE8L?9rYp0dEW^BH;nmJX}O+UQ0NN~Sn_RN8p61rRU5Y2~Ml-+HU zA`Itgd?r23q-vN+%SF`LKT6VKmez^t)BH0u=9gL}9H!i4*U9fcxm2g2Rhm$o&Zkl{ zCWjR?nb&qvYDM&}kfqQ2B))5VS4DRea7ano`Z=k~73#R%4tRYx8nE#m>Fl-SuU|Xx z+Xk7OC6y#{!T4&7Pm*rx7?PI#4vtxaeEGf9=aFM^IHdI_x&Xft*HvO6Fyb1KNbia_ z1em=L9mde(nTrB>sa;Q^Yq_Jf@=k9qtKY<5Adq*{i|b07GJu%J~{of^GomAwSU#6Uwq>Asmqcadefp=SNW=2+wV3F%ef-lY7a7xmUH!*_*cW_F;q- zBvx($M4gTgZ<7p82l}(Pb+(RvsHhGH1vyk*Qazm#yU<8a>LI`ygJvFz@u1*fN^g(L zY1c)%UncY|W{1nAL+MtH#>>ZalfA2tQcL@B2sRZqkp3Xu*6fwdiEQSYGbY`%15snk zp#ZF6+_+=*ESRtOCS!CYYYJ>Ap?U__8$VE@HgU$UReblP8eM$u<_DhXn2zn~&23Nb zvbb~RDFN&!oj23Hu+}VqqB6iC=JJqk`d3Aa8wVO8AmC%bk>)db3 z%&yye)r3}rl-HHi)(!fDE1^g#Lwm1eh0lrV)C+dq6>LW1x+U}k8%=HGI#;FjS$22T zJNt+)30W^Lwa9d?uk`IJz8Twko3&^XPteDXww6@YSQl4wOX-TCJjt63DtoR4KaiL1 z-zvj7;0TS?olN@YWqPZq=r1NS0@j4SNu%hl&Xa}Sl&lPmpe?j2JUENi<#Cig`i}=P z^w}kOZYhi#y;bM5OW{CwduLV1|GG3k-&(Y6o(SF{qLazII@f;zm$Zl1qJ`HiUoR2o z-NDwc8#0l=tD<%k)#=t1u*yI0FtB@hC@H!8s1M4ruQ$OQ$Wn|`o z?2Y)6U(jDs-@ok5{|njAzUItEyalptQp1iif*n&`1ne-N2EwEP&j;oFBr%ZjHsTimgE1>1B0U+?K|VR_F1{L0AJ1aAV1rkGIFV_J)v4&hXSe z5{a&-cls6JXF*7Ye2ooUSxqTH+0)Fckf#`&wy8X~4r>>(2kRAYLRo`9#Pyi{P_}m! zxGLx+fo|TggI-;n?S!O zAZDNgxFL=?Z*Z_h*=KwetCceH_Wm}s8Rix6W`4U|eCkcqn}i(#{Z}p78DT#&n*+{o z#4L)+ccqk;PhgIeJ~IWp?HO?@a7T9!q%_juZHkl725jd!+X^g`&1c1~T?v>3^(-Bj`c zO^(=yPm>pTutJN#p`fxoB|>6RIS|yhHc2?mVA8JN1j2rRa!qid*Q?51Jc(tOyujiA}r#y#SN7 zS(tUCn43cy8kNNtmVKs1Fk}y>&wqk?aP_QU#DCxlfJMY#nwy$FYFcl8*r%*fB$CV{~4_Z@3{c9w1wn zrba2b%?!A=)kwN30ZkV;I5|6$(2Yt7gi^DDmH8ns*`Wypa<0CL8_fV=WAw%WvC>HU zV09tFdMa9l=k$0JN{wFBS!S*-n%<@0B_QPi0(!6=XGX6yi< zuG~$3Sx}fHRcmhW8n?D;$e?c75hRGB#!7Sp+Q>4jV&eazx+SDb7y5lq_2)-*mVO!* zl8VtTKR5J%Z2Jtws4|c%&f6FAtPX_eYI>%wlR4iFPdL|`%N{gW7NWr-?M$e+*v9>O z0T%(S9uOc4QME5Fr5%-#MQDXi^*YqA!oUg{CtMU``lC$kVeolo*w0bTuk!3!g9p6( z73v((bsqJ6kwU~*@YTnZ?Mo86_+3@~38r)ec@RfDJhX9d-!euK!3wF`)89PE5k&5) zyWU{Cr37yoIf4GY!AHKf8H*s`(By`=MUS^<<-10UO~3feC)TRYs&uPut_` z^|U$X)?r%&5$EXQVi{mc&Ryj18}s!>kevWH0V`&@MSUXl&IsCzFXMw)O8%;&)>}6Q zedVEokdF`M<>r#4n#97gvQ_Rc&c0IO?ItvP0}^CFN_A{?N)bs?_RrObWD8y~bgc-9 zk`sHl%Ci11CnNT>6ro-a_!31H1Tm6F@K4nA2^YSzC4{D10>$#i9`vd3$pNlLR;Fnc zPKH~_Xc*lCK+*KBf?yUc4?3ygj2E^dAJ%AKQSRqAU_h-jO5oqn`3_ zh0cPKIa$%^t5`N{Ic+jFW$Y1li7-;3)`C(6q575WSTs93I}wGBBd2U0&Xxn90+okw ziDUzi3&@Wlf{GlPOv}@1Ej%Wtn6;=tK$IUx_)oF{oP+LhxHiCPiMd{Bs6h`3ZLYe7 zemTt|qxbot0%hU>TEgff(_i%k0?;|lhLR6Djt^T_Qe28Ns8!0V@#_fOY(rt>+5%pv_#jy;07ugrJN zdAa6kQCV3IkH=g44JFmkF5f>!P&~7;>Be5*Y!g=N+Rn~HCj2s)7LAuH6q>{nIh#D_ zf~g(OMF~{sl_5f))Kyy8?p*GA?*em9PD;(Xgf+_-Hu6#d?xhd?EvB10zR11u_Ov>+ zxpmTsvK1}lz+~m8i!4}u(9$JYfIT0%CsPMAl|{ITDxiY1V@l8$VilwRpH-UF|1RGp z=v$=*Xhv!t{f7+Y;?Og~}O{d0XdInvsuD ziVjOMJggoVhV>Uk^tvs|;4ITwoVrMJM7p_u<3(FXvSo>4aF|I^uGO!>f5ojs`3EEd zcA*o03=7KN@15|lqhoON#E@A$d=+{?Z({^dt7AdLdhG4}t5yclLVUaY6#MeaLrA^G z44(_am3}FKF~OZmUALjA($m2qj}3O2#H!&9ka~?(k1T$FEUSnR|0)rh5vb&}PGx0f zG2bE4%D@iGgqzWLW#vho>gf`q)qfogam%T6s}<8u(uZKkR4@M-&S@|@YwxReIadtW zZ&xxU@8Wr?5#ZKf^AQT4y32IkRfpXu?-F`Jp0!Pj?7qt%lkdO+Y|fe)^9nP{G!L)y z3!2k{r!VqX)1b)WCB_@SDR=su<8Zf;UL7F$>Bdh8i4yep$K6BYidjoozV9@ys0c~$ zj~yVT)Hkp9I;0yVe}x7K0+P0yL2!4mp`$Ud!+f8_`5Iyr)$hzjTP<2`^C#p1M?3=F zmPBDV3aN@Jj}ZAOtO7@zP84LC9yFoymE=5s_)?dE8T zl=G%07Pd_J-+squ0^Np!*}(1(yXM_^(q)3NP?B6bp$CT~Blckfpv8}aDLq`j?V}#e z8zZO4bi8r|VI}zx!Z&i)=14Wm;f5QE-LBI5i_3U%sI$6 zHxurw^*Ej)WF8Tm0z5P-n0#-#=<7tH7T34MoEvH@6@brIx8_fIoZnaZE0j{WPVPo* zsz!gGK`%M@$fTft6<5q`yxVACher?%2^5+*&xxeEczNg(JLp--_OaCcMLrq6fM-IL z5dQnt1m|q@3!Tv4bDqyWxe4Xr1*I)f$&|s1n9o+~9}PWM*>qpLc=40}T7uuh2~0t& zy~NrISphE(4RVHB1Hf71meBl^28~t5T0D?=>hO@9eKqlh2fh4To!O1U!$Bj2qXM<- z?foR)$<>wp@Cdu=yVYxd(jB@0d5|~ca_l_U8~g7{X`w?udSxSSqaGRoL*6QK>>j@; zd5Z(A^TViS`s9T--R|(;{NBAU#4G}#PWp!xkkx6h!oh$r+HVeuy)Q$c>OrLzmUV}P zno0N|9cl{nKJS9#EM~AQVF$Dg7w$yGRyGufw`8WCgx* zoW&oh+Mr%I8=sqT*VAi~0^Y&I`BQU9U3;$BrjLtw87xWusN6weO^D$xk^xF?d7iHT zM(tzkHb;Zj0T<*)AHT}WD}cW0?~jA9nHB-Unw*R zx%*1y(JPL1%&<_3b2ejx4SG5TniX|Yc31$nrpDeRj7~HBT)E`m0Rtb>I09Qjh4gO4 z3_hR8rrv^Nvp5j|g}Xxw5gtmwMH-&cd-d+!u@MGiO|PLHX^mjbr+5N@Kmm&d58Dtz zk&Y(-zjxPI7|pYy>?>%R)#vZL2ZE_13%=C<`AaTjB+Kle?|zUee=^-$cL!7{fI-~2 z0_N$g?Kg(+MFa&Io3o4fLe%!vsj8smkEGXCs>o4n5RV^nm^_GA5OhWjXi^HYe!;XadB{W zX~H5YMl*3{mV+L#+^@B}1=597q=;sgN<)VGzvsm2g(FZReJD<*(0w8lBF@)wJ2yjP zdGvKN`{79p+zMXZ5wBWWT23^-ehFIH%j;Bw>P@C7Lt|}emKA5mTwcT6==|~lF`YDa z-Gq3EsY5YzKbSrBH-dMGiZb_d5*}EKm#b^LWRwp;VqsDKf_Jz3Yb^XPE^yi2WL~Il zQL5V#g@KUoMy!deb{^LvVp{hj!!eE8?!TAjqK9CGPGY|PQtJ?!Nl49s7xheU95$RQ zvtZn}85gkF5VUg^O^OO@*XE~5h%;(aLjKg_&Aj2DHFg-p_5G~ zaW1L*_vEqR;v7}8&zcYS z8}k9G4QcMh{aNZdDY{#5GaR_fb_KX(`~h>#VFZOTD+CgTmKM8eq}T@pz;lz_SEG##fs;+7z?Pcy=c`h9q8zLznjx4+m|Ct7Ku*z^vYGwgtO z&+*EYcEB_DPRj30JGlu@g{?6C$>@Mw6yX{n&5CFab}e^dL!vMe`+>*f`^vp>D}93W zup5HmfHOc%x_y`eWS7PrZ34UB-tZLKaw&4 z?bqU217yB1Qwf}^m^kgMf~#D>A)ZbRR z+K?C~8k~H~Z?VEU*H2VO7%36dW@t5fmOk>t$i7t9us6nPY{`T_^Zen3Fi`R#Na+c> zmdzjQ+>qp>L;+N)k6G83XiNw*4S1(9a;q0{%}GAhXE%!2N+{A~+$Cw4(rQ}{<>T$` z)OSg3$X^-U)YatAN4Tk~zE$@Srr?mku9%5oFp-%Q!Qx3Ha8%y0l$5Y~NW3Q%lP7xN z^0X3T%D~%im$+=?M4gOEc`HKhg7i9nRQChxO=pz9?iyub+`6SPmm)+IenZ9B^NLf| z;k~zT&RHSdo$K&|&g1tz8{ zKx0`J2|x@=J2zB(>K=!kr!TJ}SHo&-?Hdxb*=K7d-Jz9=R!dC&g+K~6n?C$-;1P*j zAdP+-Vqo@dBLN4%)Fnc3G%ra(}47s}7v{{XhvifkHQ54kcE86s{TE@Ge+h@29 zW;E+rDC_>n%#Gh_go%f48HL+Hzg5du2>87;zT9WKh9pgI1bTYPI1&w5)sC&XG|Tr& zrmm)^H!jHDCPd_HPOmK>@p4dL%xb8U)GKsGx)rF3TiYbOgSy7QC?Edw0eR;ZQ57Yu zaQl~s)*DYz;3HuLlN!o9Tot!m=wY|XaFt{Ou-oNfqn};7;S*DL+x#1G9<~} z7!MLePT9YB>d99B-MfCNc1rs=b>8yzGaMMpM&+At{9s0~q+Ijw0!y(T2R%1TymqI# e249L?X%v|Jv3B0Wg%0E`?fz!}W$xzvC;tParmKAb literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_reference/Number_with_value-0.png b/dist/report/bitmaps_reference/Number_with_value-0.png new file mode 100644 index 0000000000000000000000000000000000000000..f050f2546b5ecc3b392ab822cf671d73f3ef6e0a GIT binary patch literal 345 zcmV-f0jBPx$6G=otR9J=Wn8B%pFcd{^KDLkw?7;@I%~}wx!L01Ujdr1H-6>dvTN}_KGK*nm z$oM{g9L9l#0{LmUw&g}_N6_*IIO65}`; zGsf8cQA+I|&K9H;DJ9yrUCp|#gVq{aYfRIGJkP%p^4l0v`o0Ha48HHLUTm5MLWui1 ziXsfduzx}ec+Z1*o&f-5S^l}1l6MA-FGUCe&iP9llO#b91iOT?&0FoGltP-Oh~xOv zc@Dv5DYw=sisIv8j>0A>|3L__LCURu&n^TY+J|CU7GzllVBJbupYM`QO5vOvhkah3 r9e4L3a8d}I6apuOzyq$o;2aMwt&mCTRYt#g00000NkvXXu0mjf;J%G( literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_reference/Submit_button-0.png b/dist/report/bitmaps_reference/Submit_button-0.png new file mode 100644 index 0000000000000000000000000000000000000000..717d83d5c7766e822d8b3bada735749a50660e67 GIT binary patch literal 819 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 literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_test/20230425-192445/Fieldset_tag-0.png b/dist/report/bitmaps_test/20230425-192445/Fieldset_tag-0.png new file mode 100644 index 0000000000000000000000000000000000000000..5aef7d85a47b4157beb009feb7b1d763b54510e9 GIT binary patch literal 8159 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 PT^?|WVE^v!#U|L))Y`+mRo_wf0C?mG^4ma?0n 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 literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_test/20230425-192445/Form-0.png b/dist/report/bitmaps_test/20230425-192445/Form-0.png new file mode 100644 index 0000000000000000000000000000000000000000..565d631d98cdb99fc331c07406f61c8565f6874a GIT binary patch literal 32664 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 a;d=Dr`85|}{F2C9I;?kGm$i295B~)-XI}dN literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_test/20230425-192445/Number_with_value-0.png b/dist/report/bitmaps_test/20230425-192445/Number_with_value-0.png new file mode 100644 index 0000000000000000000000000000000000000000..f050f2546b5ecc3b392ab822cf671d73f3ef6e0a GIT binary patch literal 345 zcmV-f0jBPx$6G=otR9J=Wn8B%pFcd{^KDLkw?7;@I%~}wx!L01Ujdr1H-6>dvTN}_KGK*nm z$oM{g9L9l#0{LmUw&g}_N6_*IIO65}`; zGsf8cQA+I|&K9H;DJ9yrUCp|#gVq{aYfRIGJkP%p^4l0v`o0Ha48HHLUTm5MLWui1 ziXsfduzx}ec+Z1*o&f-5S^l}1l6MA-FGUCe&iP9llO#b91iOT?&0FoGltP-Oh~xOv zc@Dv5DYw=sisIv8j>0A>|3L__LCURu&n^TY+J|CU7GzllVBJbupYM`QO5vOvhkah3 r9e4L3a8d}I6apuOzyq$o;2aMwt&mCTRYt#g00000NkvXXu0mjf;J%G( literal 0 HcmV?d00001 diff --git a/dist/report/bitmaps_test/20230425-192445/Submit_button-0.png b/dist/report/bitmaps_test/20230425-192445/Submit_button-0.png new file mode 100644 index 0000000000000000000000000000000000000000..717d83d5c7766e822d8b3bada735749a50660e67 GIT binary patch literal 819 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 literal 0 HcmV?d00001 diff --git a/dist/report/html_report/assets/fonts/Lato-Bold.ttf b/dist/report/html_report/assets/fonts/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..74343694e2b2114272f38b1124813b972cb592e5 GIT binary patch literal 121788 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 literal 0 HcmV?d00001 diff --git a/dist/report/html_report/assets/fonts/Lato-Regular.ttf b/dist/report/html_report/assets/fonts/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..04ea8efb1367727b081dea87e63818be0a4d02f0 GIT binary patch literal 120196 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�r(aJ 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 d3)lz{Xfc9M412p literal 0 HcmV?d00001 diff --git a/dist/report/html_report/assets/fonts/lato-bold-webfont.woff b/dist/report/html_report/assets/fonts/lato-bold-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..d02221df5b1fe1ee13eeb0988408ef43a795d786 GIT binary patch literal 33272 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 literal 0 HcmV?d00001 diff --git a/dist/report/html_report/assets/fonts/lato-bold-webfont.woff2 b/dist/report/html_report/assets/fonts/lato-bold-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d330650bc325af7126b1411b2bfaee8747826c1f GIT binary patch literal 26248 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 literal 0 HcmV?d00001 diff --git a/dist/report/html_report/assets/fonts/lato-regular-webfont.woff2 b/dist/report/html_report/assets/fonts/lato-regular-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0e58138a07e7dfadcd6bb92348ff09268098228c GIT binary patch literal 24992 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 literal 0 HcmV?d00001 diff --git a/dist/report/html_report/b815e28b1e230cff6e9d7b749edcd562.png b/dist/report/html_report/b815e28b1e230cff6e9d7b749edcd562.png new file mode 100644 index 0000000000000000000000000000000000000000..3c5adc37b2a8af0688dd640f6e7b759c2b0d31a9 GIT binary patch literal 12777 zcmbVz2UJsC)9#^H>C&VIq`XoBq4yH1gdRYegc6AK-m7$_gAl4BMX4%?N)3Xj5J0H{ z(nLVIi1c=k@ArN0`v1FbS@*IQ(_d^mO5-06-uJ zUMrE4f`9pyBI>~p3Lo8D{s2J5_~(}ZC@f|L01{@5xmAD_!a%{v+fxkX?Ct0x7UJmx zQiCt6hWMbI++6~A99>*7UdoW2wk`+{##tF+DUE<4d^BC$FuGxWE@okd=1yVmPV&wW zRTUnk5CxEdr%M2eC&bgk%U>Zx8S*z@1@QXMZE*V?QWj6oe}?c6 z&2|p*}9+rY`>8fqqUdT0x+ge1Ej@QPA{rK?QjGnR|PC{AZ$!|06Pw zrY4UN0_BA9`lEvIe|fuG8l`+1`=9^eCiQymQ+JuOWc33(YAQAsh0zr{r$6!g6O15jR0 zE_!ff2xuHJ48~bO28NcBmPN~m%A%yDMWxU#P*D_25_D5JX?aH!)DbEx4-WMAj48mq zodW;3z<=I%{(pSm$PWXCAj;$ao6n!X{NpJncjBP%;(r46 zUwVlD&no`??7sx}f5^d%@#pfNR0V$dC)v4pff>#ZOl9gOp)~*?5~>GRHxDV^iVQ90 zK)$>@{A$x-Fl>Mxl)Obg#Y6X&nE}4={LE*ga9d>9g6U^0mC8Jbd-f(be?S z)Nh1Oo@nmsif@2K9c zUpw9MA68zqbwq#9)TEIwb~grMl1&>;tg*i@XLMa(`j;%v)tvY9CcWY)kk>P07TSWj zyjH1*nwCF5c@y_L>VD6T4Q-5nPY!1~!a9yzp-J&#?C&r=XpFuSXe(~_$XXXw#mu{hmSsc0GRo#LC~ z@C&iwi?nv7bwMAWfNI+Q`EnG)<09``BveY?sdykkDR*5 z7S)+}{(faH%kB!jq4d7KP8A;1M?EV^kGF%oNgP8wk{H9McfYhBC%Sw6C4Qqru{8OR zEiqJzBW3fB{B(2Rd7r0FCdb#*z!tKXSicH)h%4dKbKUFK@75WKGV?`WJM@iVuI9Jd zHIQheuF>#PDX!u}HpPd#&TRGNd1NaGc$1pq%!|xUq;v^=n3$QrRtS~nE(l#G8~h#e zb@G9sP%^$W{Gw{5N@gn||Kbg!X0-unqPsEQl}(RY^c0l+)>HNz;)Q3Y`$M%Xc9OoP z*md(_@1Tj&&r-rXSY~jCM_>1yY>3LnrFia>THz zmp!3glL*tS5$F|u2JIK5FoTcA6~(fF>tipfs;X#ex2KBBS2BBM*s&ilpJJ3ee~nQ> zOp0|`e{5}NVe}{p*znYRSpdEBV*Fd1x#uCDwHR*>aNE6#>Y)L=_$m5Z)Cqd3gPq17 zyx_H~5}lm*#sst<_1_f7%KJ}O7pFQ|D`jcuGl#V*8k?KasGBPVj#Q+A;~G-S7OsMh z>`J%RKz!gz0BkE6J!R71|0dD=viV_ig|n^;8mHU4Xq=1LTPeAW@%g~r`Fo_cD63d| zYP8Lufz+GWwEFg4nWkWo&R_j(qty}G`X+QneAfZ!Ao28!wTZbc=_B&RkHNXtuT1T( z#Bk{Sv8k2-?XG%TS~)qb9>J*d?|@)l=6l_10T5-bVW}&+*(6P_Lq~XA-ifS?$6P0O zOdD=3_j}yOP5x@ew~Ib>faw?B1qagt5}2;ZrmG}@nh1@4Zw|`>kSuhJlPdty8L@C* z(&VMx*LuD_)Dke}n=Pu$_ppE?6|+czs*`ng0kzZXH_7~{hpP8W=Ni6W>Zy@0c2msU zT37ryRpj?!ks31EJfy_%(*zqXlVL_fzekW5L;f(u;aU&S+-H8#n$D zcXrYW9$ko(Ecd%y;j5Z|(a{^=IDTxf|Jc9?!sv@`TV=|Yq0pbCN6y(oKU8*S#HqDd zYJ`~>UTA98sXKllHZbAXduvyp{G;RfTZ+o!{M$c>X|ETCD5WnAB8)j`GWl7nVw1Ce z4E`4L12YedYUY-NvNjC>AJ`oV>RCwcS&UH}zI)IT6c8M&kxA@8pVOT(^uQ^rp~cAy zM!yGq#BdcUxhZi+IUHq;kPkUNVmC$WM*1J23LJoxA2Cf$TLn$k9oK0Js%D+EvfLEs z?qAHQgeZ|@YP^LG>bknRhEIp7=-}cV8lR$#1=e?V{0i|Y*(qka`g%mI>37KviGbA9 zn`-a<@XuhAn9vu$aP0f`X6uRmRWe=yc!*Z}~aULdmOf zk6ASAc}>k<8;-ZCFeRK5DDB6eeWI=A%`QE=xps;z>N}H*zvN6TR3t)G8K#)hwD)s^eWuC#r3MSl>iTPHyvUyQFYTT^X>D!Y z3us>Tcq=tHfPIsg90A0+wkgZsPrhd`T8CQEAvn`%(Ev3Cj-nG$5tK3al1~UW37=8m z%2M1YVP&)q^sr0r9_U4FL&Nry$&K?DRTv{0v9L;wz>C=~rKDnZ;b{%(K}9UZhA%1F_>BmsvgK!_9| zVXV)sh!eX%hK>qnBC~&Ir{%(Z#zb@$N%={m{cFCm(I^6t0*< z3P~1-@MjKk92eq^lcy=hLcj4Cx0^J4YRK`Vlqb@x)E7HbUITAvy5^%Fp;*#Igbbp z^#u;4eG8Fs;S4lM{lp*MmqT^(Z;o8=^ zeVewtH9bU$CZ{Rqs!g$j0LvBBOcy0pYUb@s+Ugs$sSpCiBG<$`c_VdRedBbvQhI5r z*ZPlj?dZnz6vhGHIs6n4;qRZgz3`0<+C^fCYFBGk+2ki(EiDHL&nIeYYFfRQ`qETJ zrJ|`9Fi7N{6e9drK(lZX-T^HhLkh_Iu@l6qJ=C4tr-Kbc%7@(w4?cWc9~&FnB=X6h z+^8q~DFo|kY-)lrkrR70G&FDpXd6_<1#Eq!Sy`Tx@jQ9lphJ6=nQ7t0jRv^7I=uj* zkU^|WDojQ2PF>`SCc|H2h(V+ZuM@u9!kDT;wZOV^XKmmJPeZ!)z zAWCK?SCa;KxN)M1S1L;Glw^0**AikN%{OGZL)+&4Hi*RTho4(^1=Y zI(4P!m2z|B;l*8xvL)6A`4YzIoGY(p?A*_J8&zgJKQ3;i>GJ#0$3P&I%D+DFeKyN8 zGcy}~i|-;e9-EkG!FQGp=HU*qWimOQ5y!Bzr#DMWafFt)w@17@oSh^~6=a%oWEE@{ z6s8D2*nZbg(ngm?!-L|tYabZU_kDLYAGJP)>520iMZNI+y>cI(OT)_)5ctw*;K87q zCno7*j0VpBy%-(~W1(WUr{rCJD56K{_&K&jykX|2n~shSiy>>*Xv$i#fuyCKo#&I9 zuw*Pt@m9x$fpv+cg^*Z>=~Av8N8`H`i$N+_txSZeLz7Jg^NV5i5+2)v{hnqNAkY zR*9dquhlHg#?|SCCSSWhQA+NZ7~2tk$lFa}>${xI*ulrcaF4qsnL_Rnr+^QnNaGGy zjX&Dj^)8l*AlDp;6h4NTQ@WM$1v0Vgeci%5f9cZ^IirBQ&eUU=2039Gg6gQh8B_;KeLijg~w-5q4 z1RM`cy&9iBmCw{`sHwSbs$YE`-2-I;#Jc8H>Aei3y~fi_$V z|CMsVI4bJG|8b-^xX#+@W38Idh~SgJ9_ZZl_}7`(dq6X6PlC7i_TBD<=bt~Q41TKL zi{GV$lur`itapi^FIJozrwMxe{S~LJt=Sp`0qtYl1jHCZ;;uGKU) zc8PP)G!jE8)M#PcE@(pNwHTYpKs)64`{W;r)!{gE3yV4Cd+(z3;Ne%bb_rPd1-s^N zyRr6J2HIWH!Hh^hxfibZ0w_pfH-0$<9@k;NV=cTq>F(|>TanVJ$ImcXX;)OD%b#9t z@8;%q1jMZWZaI$VEV|Njq%Fd1L(QWPe-8xEe`W%%F8X{iMoN<}>=jl?-ybs?mD-^0 z`9gwo{dfS~W1;RjQUX5W5x_Ko0kJWvu*d@(Em&T({6FKdDqol$vPLM1hrnc`! zE$AM?bmY16B}3gi0j=r+MO|i)(}p#dWr>@Mq8ITUBD@mqU*($X33U zGzmP!U0<*uAH7#{bk;W1bH0O3@tkQv&3B$-J&hm7(@_={WuTm9Nh8i$pB^2ht)ld^ zt{Eo9zZdp>7s~iE`g{-ivNtV+(CvvTU{#y23opNP=y^0*-}%n;BrmOCNH}hNdpn9Y zTb1q-Z=sDG57vfc5dmI;l1kw$5yos>A2Wd^DA~E_Hb5 z3gkxoBUR?>PEJld0WQLyb-BL^jfKqXFw@r`8N0<+VYq~s4S;zPpK46uzDn6nWOePl zedFPcD$K=$+M++5`?WkUz>v~Q1y~SXQI5Cpz(;R{=!g1SXh`r zqmIA)26aye0*Q>C=2N*5|N5Ou=2(kNg*~Ij*KYv|ms!>+*pD0g7aySaR|$kPl5GSL zg@450K#VqwfO3zn)$x>{Vvnr>MG%dsN=`@F6n?QsM|IJC%W-jWxn5XR;{CDomW73d z20WPlvpI0B-F|1)aGx{d>I3H1ENr70a{s|@{~t^jvHrAr^UFkCVNMC8cjBSxmG6XV zg%sk(2d=^DN)~>78^oHW)twbgz_(a+fPdr?Uyxv#KA9} zdR7L7MDW~sSN`JU=Wh*f{kdM-h?;X|ne$(RQ};5^5jP+7(Wk+x^5i94;;3YY#osY* z6n>hWO^A&pU}6sYG&$e3q_*^YiB-SVo6_-DSch4`@q74~4jhT?w<>Mz(lM>Q#Xy-r zb5V`%4*2anX9>PN7F!q(3kJ z1ny2iU|@p5Xhh$}zP)Pc?L9S~g|Wc%e0)S3-M6IB(9pxGled5x7$^uh6;Ss{O7yW{ z=YHj-FAv=jQjQ}k0UO;Eas2CDt!3jJEl^nHsV};-9~KB%2hqiF#+V8?krWGJkdu{f z@9uTw>J`~_gazJ+**T5qoM%tmRRl6>YxD*8kT#tWp|?bsPhs>O-*-b)OziBGGwu8Q zY$GJ;$dzDF=ug0MDu!N~5InbCf$ZA0b6@5eH9}@*Vor$+uPgQfHA_O^x;)SJ}QB3ho7O4 z6Jq*hw#40FB$E5^^nB9V?A#Ysu|Oa0GksSkaHEQ%j%??tryR!*izon#Fz@4KvKH3`>6YV zT{rv5{i>J@7tiyy+k%r?jh@i3n(?`t^N#99i`T1~ibj0p!Eqg9&iqc<=6+aXLtWk3 z!x74ObF0x`r(>u$Lq_ZN%t>%Csv5?*#9gPrjIwj?L6AprZoYY_vfyeFkkX;sSo5t4GFg5aBdVnKMTgT73SP#DAx?)tt_>26- z6)h7LbvS(wl#9!=sPCQw^yqc&FKd83CWD_LC9tN3%L2K-*x#>z`=tD>TNcJTKXpvl zUVsd-IoBi}GAnJ_<@D=&%J#uQkei~yLRT|WK0>^A++W|}EgaJQ!C!aN^YiZTiM<@@ zo~E?Z{9NQ~XC_iVUM3FZugQIhVM2sZ;%Al5S+3M8tQh=q;PG;p=v5+z2*o{n^^{wD zdn;Z;%@@N~92yF)4z`SG+GIW&PW=_q9jM-3e12%hoXN*m)M-!zBe0%87fgD$`*w!8 zARYPlgr3El$vDFS4e_z5+8{+6*Cf;Duc}N=I3e6NuUskL8Ss$)XB&H8-uZnku z5TvH2ewtH^8Afuexw(>^IHgoPzE0H0vH31C`i@$DX$(I#n&HcHC$e;IZ#LgB9sW=A z^LOiQWO{T{t?sl{?(?p$af3&cMqsvu>lpiJr*Q7Df5I6%|Zm1 z`U<7p*`*QTYNO4ez+drn1RIL8)DCR0%TH2+^?`wbB{ek{eXDz-LjoJlg^bW%O`*qR zZR)m&OQ0^0qPAAfaX*ZrAiSNy=X9F0L zpUf+KrP%_qe93h8dZE6*oPQtgqtqtpGj!B@pLl=XO;Fu>hc^`z_%7_Wld)vw%Ar9} zWgzzcZ32~vtu6c1>(EJZOY?gkbk{?}GL`eC4CR9_ znJli$ktfGi%dkB=Y(r61Xvg@rNzP4$K8A;2-smD;;DwBU)!Kq{5Hn!)2ZJDymkxz1 zU<+%#$#uBXRcfw(qHW!}BW&NTNS6GjW=Co=m+DkwvV$FIbVMjay~+SbIvOddh|HYc`8**kIv%)APxFiD{obrjo6JF-8}R=z{7ZVK@GAluU0E#m&>G zL50rcy<_Hrs$&WCg;b1cZOzGb#3(6?u=Y*EwF{%CrArJkdq&dHp~q(2=by^IWtRst z=QBO7X#Ndn&ruilC^2}3y%sRBqs2P# z9Be2soBD}mnPfOYqXnMShVb>2$m+_e>I3#q6gyX z2A8rl;e%Be<_6n0BY9O@67-xOt$hPt&`R#5EoJR$gDitsV!}b#S|)|q8^)hWBazpn z5T`^?nIgtaWvCnh&+b_(qKh*bKAnQD39hBAUts@tWpMH=@4Ief=2SNhmgPY7d1)%ib-e6{F^>N%KYT`$X9Z`!Z=Txd#9nP6{*e94K+9@~gjQv)jk6(R?c z7}t2Z+nwt*wHHw}LG-{ZklHsnz3H&BL*T}u@zvbMrj1KCyK#P}3yk%8fa_Lk0A|*z z+Vuf_q+kp;6bAOt#ekoN=uS4ABw&w3PKGL#9wIF*4>MlQY9w>@K*7`#GCxQRJbCiu zhhCRD++`_O`5omgLf|N(^P0h^2z#2i)n664&W#+^Z>{rA#ppZes7a%hhFZ$2s?cpU zHAb*K&(?-{!i6`_8zw5F41;eZ6Y*?`i+4^>Pt#}jTZM|hi3|SiLj=hpCoMPOkpCK@ z-&>(ea(;du7#($SoEa#L>``e@d82iDW~%p3N;-@Zv-O{q@MnK5K4GvcNm!$((8fFNe>Uuyb=iz1~TL#bsxInvNju zn6=B~=SfgAvJ@=L;2g-76NANPCigkMzg<7`D@00xRWU!UVD5f}bI&`x?~M8|CCxc? zjC5gDWS~e~JRO@f0GXx)QsCcG%{(jSccSx$S5HHjk8k5w-aE->MP0=uv^HEy6`j@8 z)JQ}oSvK0wKEg~3CeY0TKO16WV{P7>as#$vlVX4gI_kaEMpYbkULDS6`Muzck5UEo zLIedl((`u_?s|UpP`|Qsne&#sWJrxh2Q%{ zGUrNM_X36cKXUq9)ha)>Vze&IxUw6ZZTc-_&jj2wNT3rGRDckSe*dy@N_*iL-IK*! zYbT@LA^g@{`)=D#=L~^E;?-jsfT#RkR&iWCd#w`MzF@7jXEEf;$3y>7VVSESdcaE! z8acP-W8SBki`cgxMT?w{dSc0kR`)`|Vt^Wne80(KZEt_UL(hgkYj{3U-_VdwZ^9XK zXn{ngMWzBcN^yB^+`v>nH8r*KSz9r6US8f_X0fDKb0fV8HvorZNxaO*?$z&Q=4rZT zIV-|$D;hE&A}5$OmV6h+KCC&9wy^?Edn>a^2VHYVH%8;LJZ~xrQ^dt2CWdX!v@uFX z2GRl)U^g%L@$*Mqa7Vaks_sI_%?+4%!+bM|W)sbq-rUaF(W3MMU;%_^vNoZqq~{r% zSNS3AO}u$n80lGq^~-f3`VQ)abTf**pQq>fl6xZPDBrrk*ot#K{ZK`EPFciWQdC#; zhmjCZ&w4}n7SLBWrM%nANRRevwh(_$&D+~ZVD9nd8Lx6%_Y*KwyNDcwm%Syw8hUvR z7JnREs95;kAV8;4hj>|W};|}k2rsZB<7r)zW>FI_ZQ|%PtK|Aq~>$+KV!rybKwdjqLpScgy zc+9mE*llq-QkG{b04GCX7C&jlgXxd;Zozc^eq?1^2ft z){BOLFQtV|{i)aEUkX9*6jX&iMn->0ZOHwVuWQKC^#*JOm_b6X{n<_!!oOnp{0J;E zSz^ru1+T4zmTmH-S4_M$Qtb#r&bl{xPCbvL3flgfSfcm}webKE;(4y%QDc+wU}7mV z4#Yxq8G=5)trS~4ym3R3o^D=Le5DR@B{aH_W-jl(#I%j)7vq6nT0)6}cD|<1D!y`h ze=zu^HE>`fI?}giNqD$LPqL_F4WVNURvyp5tr>Pb#Ny(ZIltGd(?Eb8VB`D?hFTk` zgaJzW@OeUjxA)o3-6~8pPkDa9u}xIh<=fBwVA0ur4||Cq-+k#plQgqE0q?X|6}XQCzd+7lBKO&Tpo2xB4WC`vW_ zT0jHd^gj0ZDo_+)cX`3;eA8|+dI8sd%XtBH_)Vtkj*Q zQC(mwkpg#)w*@<(7k)JaohoI+VEuL({~cXSI~_E(n`stieYNOGB7fCA!Ys>;mW$0# z-91U^Tnh1;X=!d=cQm4JkEjTy@Fahlo4ePFIDH;`X%cV{|M^<_qYGWymK{$`%V27L zl6ZqV$ny?mxrwjwcazxvbc73w3T=Wpko(ZU+&eEpKro}pO9?=w-k zj>0tfkddFPU5Y>=>6?64V9y0-5L##%aio05AktV8wiID(Iq8!WD{tqrPV4v*-* z4N1FCNTG%G0iMcsZX5{tqlRC=&nS9#ye zpHcJAubMzwhYubi-g5?j&6=N@dP9KYKwn7HpF2!9V@@|K*TEJZ2P^CAVytQ(o}0Iv z8x-&qgq8Q?vEgfS^pQ8oKbzUuoVJ-y{Yl{lqqdsxJ?yb1{I`3?`#qymOEItu_4xCT zD~Twj5BN!dT%lx0ab(YdNU#2SmhPFB{#tE)J?DPVcQBK_K(X3j-+(Em*8R?%7MtM* z;K~_?-Qh2%L0{AiEQcMu7!Y%R1|$6%x>^FZHV%pqqqZ~)hJekly}fa8*=aEtrX(h; z1YyGsdIagS)MR_$p<>Api$%S)bT7;nIo?Qk1cAv?@^TFg41^0H8(#Koaq1erV!%gO z3NcyV69Ex=EH*engSV`vW(T$6nn|s5Ob|0}VapTaoPJ~_azKE-;DD9sz~@J#wqivh zvs)Y7@n>AXwTj&NfVSC3W8^VvJWyW;hlRWNvru%Y9-P*_FlZ+^y1=<;hx8``EhbQ| zj6aj2?|@V)y~XQ*y}Upk%!4n@m{Ic{sFy%_8}^tTB1xdcN=?fBf<>?3xH*#%np;eq zO?*9zUyv+YZ~xuz)RB9F%*(SnaIH0BEq}CJ z(qr*o;czds7?B$Mx5#z>2wHS#bJQ*ud<4B;Q-zVO7-%7s-4QG|vLfn!ri8r$%uRP``1qjR{8tc=X&UPA&wPB>W|^ zOXfe~jX;-C&h~8cxHf^iEXEYxB(Mbl4RY{|K;p>2Nkr!j#ON72Y(DNgt)4i2ps!@v zo0*f#QN!xJn-*w%)`^_1;e*X%{FxRyN)@&W;s#hSorye*#VR@}8aQ$kVq%w=8=eNf z4OC&GxMDcpj!``1#=+4CRy%8S^yk4))`&3vP|VK5uh9G9DL*XGrFlVZj4_7rs}oWj zx>4`l6X=i@LIXU8vhq`|v5V}vjCyh9d({u@OiaIDaKutcZgS8-VjH|T!=&QkBCvV- z@k|oDcB*repH3tV>+n-8RsN|3G2inYn_XB$tZ+-drNr6Scz^Hji#o4ht1v@6-QzVPio8ywr8Kadj>`Zeo~jhG;j*MqjEwWij^Z+AwR ziZB=5g!^MdTcwYzD{@b@XF3fW&w<&HalE{}>W~wiD$anI(VK=iintfxxx^&p4u5O16?{Rn zn?~#s7vWX(9pYChr2S8uV*xSt*@m;k;NY@D*h6HQ96&*0Jue;_=N1kWGw@%R27E= zc*M;HsLm;l!4u~d%8v>#c*#w4*4NiwZixH<^d#WmIYZ&iF_Q;!gvEx3zK~(r!!g-< z&4Z_3i{^-wlE71(=iiB`gC%r>KQ*UK$c=oR{WLaqsVXqA8viZ%1`UbfD>9SOlsST| z%n=e{V(@fK_%EtS9bWFQqdsGE4{;B2^qj(O^bUbi%&=E8u}D!?C?Y~4s+9`pPlT+F4>G^p~o**@? z&c`Z=N>xQrosgWxG=9N8AKJ<>mvi&*+%1;tj?b;ab##&*jC7hWg@qN)26zhV7|6F@ z{TWa9?P$uYcdBnK;QEJ?`?`}p}UxSu@@axZUG#e(@d&M5kkP?H@Ru1rV dpl9MGtqSIaZQd4t$e(}4(9<%6H)uG-{SREOV^;tG literal 0 HcmV?d00001 diff --git a/dist/report/html_report/config.js b/dist/report/html_report/config.js new file mode 100644 index 00000000..431d717a --- /dev/null +++ b/dist/report/html_report/config.js @@ -0,0 +1,225 @@ +report({ + "testSuite": "BackstopJS", + "tests": [ + { + "pair": { + "reference": "..\\bitmaps_reference\\Entire_document-0.png", + "test": "..\\bitmaps_test\\20230425-192445\\Entire_document-0.png", + "selector": "document", + "fileName": "Entire_document-0.png", + "label": "Entire document", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.07", + "analysisTime": 23 + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Form-0.png", + "test": "..\\bitmaps_test\\20230425-192445\\Form-0.png", + "selector": "form", + "fileName": "Form-0.png", + "label": "Form", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.07", + "analysisTime": 21 + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Fieldset_tag-0.png", + "test": "..\\bitmaps_test\\20230425-192445\\Fieldset_tag-0.png", + "selector": "fieldset", + "fileName": "Fieldset_tag-0.png", + "label": "Fieldset tag", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.04", + "analysisTime": 11 + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Fieldset_tag-1.png", + "test": "..\\bitmaps_test\\20230425-192445\\Fieldset_tag-1.png", + "selector": "fieldset.__n1", + "fileName": "Fieldset_tag-1.png", + "label": "Fieldset tag", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Fieldset_tag-2.png", + "test": "..\\bitmaps_test\\20230425-192445\\Fieldset_tag-2.png", + "selector": "fieldset.__n2", + "fileName": "Fieldset_tag-2.png", + "label": "Fieldset tag", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.18", + "analysisTime": 15 + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Fieldset_tag-3.png", + "test": "..\\bitmaps_test\\20230425-192445\\Fieldset_tag-3.png", + "selector": "fieldset.__n3", + "fileName": "Fieldset_tag-3.png", + "label": "Fieldset tag", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Submit_button-0.png", + "test": "..\\bitmaps_test\\20230425-192445\\Submit_button-0.png", + "selector": "[type=\"submit\"]", + "fileName": "Submit_button-0.png", + "label": "Submit button", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Email_with_placeholder-0.png", + "test": "..\\bitmaps_test\\20230425-192445\\Email_with_placeholder-0.png", + "selector": "[type=\"email\"][placeholder]", + "fileName": "Email_with_placeholder-0.png", + "label": "Email with placeholder", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Number_with_value-0.png", + "test": "..\\bitmaps_test\\20230425-192445\\Number_with_value-0.png", + "selector": "[type=\"number\"][value]", + "fileName": "Number_with_value-0.png", + "label": "Number with value", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/html-form/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + } + ] +}); \ No newline at end of file diff --git a/dist/report/html_report/diff.js b/dist/report/html_report/diff.js new file mode 100644 index 00000000..0b824f12 --- /dev/null +++ b/dist/report/html_report/diff.js @@ -0,0 +1,1843 @@ +/*! + + diff v3.5.0 + +Software License Agreement (BSD License) + +Copyright (c) 2009-2015, Kevin Decker + +All rights reserved. + +Redistribution and use of this software in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of Kevin Decker nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@license +*/ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["JsDiff"] = factory(); + else + root["JsDiff"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.merge = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffArrays = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined; + + /*istanbul ignore end*/var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_character = __webpack_require__(2) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_word = __webpack_require__(3) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_sentence = __webpack_require__(6) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_css = __webpack_require__(7) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_json = __webpack_require__(8) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_array = __webpack_require__(9) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_apply = __webpack_require__(10) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_merge = __webpack_require__(13) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_dmp = __webpack_require__(16) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_xml = __webpack_require__(17) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /* See LICENSE file for terms of use */ + + /* + * Text diff implementation. + * + * This library supports the following APIS: + * JsDiff.diffChars: Character by character diff + * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace + * JsDiff.diffLines: Line based diff + * + * JsDiff.diffCss: Diff targeted at CSS content + * + * These methods are based on the implementation proposed in + * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986). + * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927 + */ + exports. /*istanbul ignore end*/Diff = _base2['default']; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffArrays = _array.diffArrays; + /*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches; + /*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/merge = _merge.merge; + /*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP; + /*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML; + /*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize; + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJEaWZmIiwiZGlmZkNoYXJzIiwiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImRpZmZTZW50ZW5jZXMiLCJkaWZmQ3NzIiwiZGlmZkpzb24iLCJkaWZmQXJyYXlzIiwic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwiYXBwbHlQYXRjaCIsImFwcGx5UGF0Y2hlcyIsInBhcnNlUGF0Y2giLCJtZXJnZSIsImNvbnZlcnRDaGFuZ2VzVG9ETVAiLCJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2Fub25pY2FsaXplIl0sIm1hcHBpbmdzIjoiOzs7Ozt1QkFnQkE7Ozs7dUJBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7QUFqQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O2dDQWtDRUEsSTt5REFFQUMsUzt5REFDQUMsUzt5REFDQUMsa0I7eURBQ0FDLFM7eURBQ0FDLGdCO3lEQUNBQyxhO3lEQUVBQyxPO3lEQUNBQyxRO3lEQUVBQyxVO3lEQUVBQyxlO3lEQUNBQyxtQjt5REFDQUMsVzt5REFDQUMsVTt5REFDQUMsWTt5REFDQUMsVTt5REFDQUMsSzt5REFDQUMsbUI7eURBQ0FDLG1CO3lEQUNBQyxZIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogU2VlIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMgb2YgdXNlICovXG5cbi8qXG4gKiBUZXh0IGRpZmYgaW1wbGVtZW50YXRpb24uXG4gKlxuICogVGhpcyBsaWJyYXJ5IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgQVBJUzpcbiAqIEpzRGlmZi5kaWZmQ2hhcnM6IENoYXJhY3RlciBieSBjaGFyYWN0ZXIgZGlmZlxuICogSnNEaWZmLmRpZmZXb3JkczogV29yZCAoYXMgZGVmaW5lZCBieSBcXGIgcmVnZXgpIGRpZmYgd2hpY2ggaWdub3JlcyB3aGl0ZXNwYWNlXG4gKiBKc0RpZmYuZGlmZkxpbmVzOiBMaW5lIGJhc2VkIGRpZmZcbiAqXG4gKiBKc0RpZmYuZGlmZkNzczogRGlmZiB0YXJnZXRlZCBhdCBDU1MgY29udGVudFxuICpcbiAqIFRoZXNlIG1ldGhvZHMgYXJlIGJhc2VkIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm9wb3NlZCBpblxuICogXCJBbiBPKE5EKSBEaWZmZXJlbmNlIEFsZ29yaXRobSBhbmQgaXRzIFZhcmlhdGlvbnNcIiAoTXllcnMsIDE5ODYpLlxuICogaHR0cDovL2NpdGVzZWVyeC5pc3QucHN1LmVkdS92aWV3ZG9jL3N1bW1hcnk/ZG9pPTEwLjEuMS40LjY5MjdcbiAqL1xuaW1wb3J0IERpZmYgZnJvbSAnLi9kaWZmL2Jhc2UnO1xuaW1wb3J0IHtkaWZmQ2hhcnN9IGZyb20gJy4vZGlmZi9jaGFyYWN0ZXInO1xuaW1wb3J0IHtkaWZmV29yZHMsIGRpZmZXb3Jkc1dpdGhTcGFjZX0gZnJvbSAnLi9kaWZmL3dvcmQnO1xuaW1wb3J0IHtkaWZmTGluZXMsIGRpZmZUcmltbWVkTGluZXN9IGZyb20gJy4vZGlmZi9saW5lJztcbmltcG9ydCB7ZGlmZlNlbnRlbmNlc30gZnJvbSAnLi9kaWZmL3NlbnRlbmNlJztcblxuaW1wb3J0IHtkaWZmQ3NzfSBmcm9tICcuL2RpZmYvY3NzJztcbmltcG9ydCB7ZGlmZkpzb24sIGNhbm9uaWNhbGl6ZX0gZnJvbSAnLi9kaWZmL2pzb24nO1xuXG5pbXBvcnQge2RpZmZBcnJheXN9IGZyb20gJy4vZGlmZi9hcnJheSc7XG5cbmltcG9ydCB7YXBwbHlQYXRjaCwgYXBwbHlQYXRjaGVzfSBmcm9tICcuL3BhdGNoL2FwcGx5JztcbmltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXRjaC9wYXJzZSc7XG5pbXBvcnQge21lcmdlfSBmcm9tICcuL3BhdGNoL21lcmdlJztcbmltcG9ydCB7c3RydWN0dXJlZFBhdGNoLCBjcmVhdGVUd29GaWxlc1BhdGNoLCBjcmVhdGVQYXRjaH0gZnJvbSAnLi9wYXRjaC9jcmVhdGUnO1xuXG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9ETVB9IGZyb20gJy4vY29udmVydC9kbXAnO1xuaW1wb3J0IHtjb252ZXJ0Q2hhbmdlc1RvWE1MfSBmcm9tICcuL2NvbnZlcnQveG1sJztcblxuZXhwb3J0IHtcbiAgRGlmZixcblxuICBkaWZmQ2hhcnMsXG4gIGRpZmZXb3JkcyxcbiAgZGlmZldvcmRzV2l0aFNwYWNlLFxuICBkaWZmTGluZXMsXG4gIGRpZmZUcmltbWVkTGluZXMsXG4gIGRpZmZTZW50ZW5jZXMsXG5cbiAgZGlmZkNzcyxcbiAgZGlmZkpzb24sXG5cbiAgZGlmZkFycmF5cyxcblxuICBzdHJ1Y3R1cmVkUGF0Y2gsXG4gIGNyZWF0ZVR3b0ZpbGVzUGF0Y2gsXG4gIGNyZWF0ZVBhdGNoLFxuICBhcHBseVBhdGNoLFxuICBhcHBseVBhdGNoZXMsXG4gIHBhcnNlUGF0Y2gsXG4gIG1lcmdlLFxuICBjb252ZXJ0Q2hhbmdlc1RvRE1QLFxuICBjb252ZXJ0Q2hhbmdlc1RvWE1MLFxuICBjYW5vbmljYWxpemVcbn07XG4iXX0= + + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports['default'] = /*istanbul ignore end*/Diff; + function Diff() {} + + Diff.prototype = { + /*istanbul ignore start*/ /*istanbul ignore end*/diff: function diff(oldString, newString) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var callback = options.callback; + if (typeof options === 'function') { + callback = options; + options = {}; + } + this.options = options; + + var self = this; + + function done(value) { + if (callback) { + setTimeout(function () { + callback(undefined, value); + }, 0); + return true; + } else { + return value; + } + } + + // Allow subclasses to massage the input prior to running + oldString = this.castInput(oldString); + newString = this.castInput(newString); + + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + + var newLen = newString.length, + oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ newPos: -1, components: [] }]; + + // Seed editLength = 0, i.e. the content starts with the same values + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + // Identity per the equality and tokenizer + return done([{ value: this.join(newString), count: newString.length }]); + } + + // Main worker method. checks all permutations of a given edit length for acceptance. + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + var addPath = bestPath[diagonalPath - 1], + removePath = bestPath[diagonalPath + 1], + _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + // No one else is going to attempt to use this value, clear it + bestPath[diagonalPath - 1] = undefined; + } + + var canAdd = addPath && addPath.newPos + 1 < newLen, + canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + // If this path is a terminal then prune + bestPath[diagonalPath] = undefined; + continue; + } + + // Select the diagonal that we want to branch from. We select the prior + // path whose position in the new string is the farthest from the origin + // and does not pass the bounds of the diff graph + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self.pushComponent(basePath.components, undefined, true); + } else { + basePath = addPath; // No need to clone, we've pulled it from the list + basePath.newPos++; + self.pushComponent(basePath.components, true, undefined); + } + + _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); + + // If we have hit the end of both strings, then we are done + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); + } else { + // Otherwise track this path as a potential candidate and continue. + bestPath[diagonalPath] = basePath; + } + } + + editLength++; + } + + // Performs the length of edit iteration. Is a bit fugly as this has to support the + // sync and async mode which is never fun. Loops over execEditLength until a value + // is produced. + if (callback) { + (function exec() { + setTimeout(function () { + // This should not happen, but we want to be safe. + /* istanbul ignore next */ + if (editLength > maxEditLength) { + return callback(); + } + + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) { + var last = components[components.length - 1]; + if (last && last.added === added && last.removed === removed) { + // We need to clone here as the component clone operation is just + // as shallow array clone + components[components.length - 1] = { count: last.count + 1, added: added, removed: removed }; + } else { + components.push({ count: 1, added: added, removed: removed }); + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, + oldLen = oldString.length, + newPos = basePath.newPos, + oldPos = newPos - diagonalPath, + commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + + if (commonCount) { + basePath.components.push({ count: commonCount }); + } + + basePath.newPos = newPos; + return oldPos; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) { + return value; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) { + return value.split(''); + }, + /*istanbul ignore start*/ /*istanbul ignore end*/join: function join(chars) { + return chars.join(''); + } + }; + + function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, + componentLen = components.length, + newPos = 0, + oldPos = 0; + + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function (value, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value.length ? oldValue : value; + }); + + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + + // Common case + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + + // Reverse add and remove so removes are output first to match common convention + // The diffing algorithm is tied to add then remove output and this is the simplest + // route to get the desired output with minimal overhead. + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + + // Special case handle for when one terminal is ignored (i.e. whitespace). + // For this case we merge the terminal into the prior string and drop the change. + // This is only available for string mode. + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + + return components; + } + + function clonePath(path) { + return { newPos: path.newPos, components: path.components.slice(0) }; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Jhc2UuanMiXSwibmFtZXMiOlsiRGlmZiIsInByb3RvdHlwZSIsImRpZmYiLCJvbGRTdHJpbmciLCJuZXdTdHJpbmciLCJvcHRpb25zIiwiY2FsbGJhY2siLCJzZWxmIiwiZG9uZSIsInZhbHVlIiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsImNhc3RJbnB1dCIsInJlbW92ZUVtcHR5IiwidG9rZW5pemUiLCJuZXdMZW4iLCJsZW5ndGgiLCJvbGRMZW4iLCJlZGl0TGVuZ3RoIiwibWF4RWRpdExlbmd0aCIsImJlc3RQYXRoIiwibmV3UG9zIiwiY29tcG9uZW50cyIsIm9sZFBvcyIsImV4dHJhY3RDb21tb24iLCJqb2luIiwiY291bnQiLCJleGVjRWRpdExlbmd0aCIsImRpYWdvbmFsUGF0aCIsImJhc2VQYXRoIiwiYWRkUGF0aCIsInJlbW92ZVBhdGgiLCJjYW5BZGQiLCJjYW5SZW1vdmUiLCJjbG9uZVBhdGgiLCJwdXNoQ29tcG9uZW50IiwiYnVpbGRWYWx1ZXMiLCJ1c2VMb25nZXN0VG9rZW4iLCJleGVjIiwicmV0IiwiYWRkZWQiLCJyZW1vdmVkIiwibGFzdCIsInB1c2giLCJjb21tb25Db3VudCIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsImNvbXBhcmF0b3IiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJhcnJheSIsImkiLCJzcGxpdCIsImNoYXJzIiwiY29tcG9uZW50UG9zIiwiY29tcG9uZW50TGVuIiwiY29tcG9uZW50Iiwic2xpY2UiLCJtYXAiLCJvbGRWYWx1ZSIsInRtcCIsImxhc3RDb21wb25lbnQiLCJwb3AiLCJwYXRoIl0sIm1hcHBpbmdzIjoiOzs7NENBQXdCQSxJO0FBQVQsU0FBU0EsSUFBVCxHQUFnQixDQUFFOztBQUVqQ0EsS0FBS0MsU0FBTCxHQUFpQjtBQUFBLG1EQUNmQyxJQURlLGdCQUNWQyxTQURVLEVBQ0NDLFNBREQsRUFDMEI7QUFBQSx3REFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUN2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RUFBd0JBLFNBQVNrQyxVQUFVL0IsS0FBM0MsQ0FBVixDQUFsQjtBQUNBSCxnQkFBVWtDLFVBQVUvQixLQUFwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFJNkIsZ0JBQWdCakMsV0FBV2lDLGVBQWUsQ0FBMUIsRUFBNkJmLEtBQWpELEVBQXdEO0FBQ3RELFlBQUlxQixNQUFNdkMsV0FBV2lDLGVBQWUsQ0FBMUIsQ0FBVjtBQUNBakMsbUJBQVdpQyxlQUFlLENBQTFCLElBQStCakMsV0FBV2lDLFlBQVgsQ0FBL0I7QUFDQWpDLG1CQUFXaUMsWUFBWCxJQUEyQk0sR0FBM0I7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsTUFBSUMsZ0JBQWdCeEMsV0FBV2tDLGVBQWUsQ0FBMUIsQ0FBcEI7QUFDQSxNQUFJQSxlQUFlLENBQWYsSUFDRyxPQUFPTSxjQUFjckQsS0FBckIsS0FBK0IsUUFEbEMsS0FFSXFELGNBQWN0QixLQUFkLElBQXVCc0IsY0FBY3JCLE9BRnpDLEtBR0d2QyxLQUFLMkMsTUFBTCxDQUFZLEVBQVosRUFBZ0JpQixjQUFjckQsS0FBOUIsQ0FIUCxFQUc2QztBQUMzQ2EsZUFBV2tDLGVBQWUsQ0FBMUIsRUFBNkIvQyxLQUE3QixJQUFzQ3FELGNBQWNyRCxLQUFwRDtBQUNBYSxlQUFXeUMsR0FBWDtBQUNEOztBQUVELFNBQU96QyxVQUFQO0FBQ0Q7O0FBRUQsU0FBU1ksU0FBVCxDQUFtQjhCLElBQW5CLEVBQXlCO0FBQ3ZCLFNBQU8sRUFBRTNDLFFBQVEyQyxLQUFLM0MsTUFBZixFQUF1QkMsWUFBWTBDLEtBQUsxQyxVQUFMLENBQWdCb0MsS0FBaEIsQ0FBc0IsQ0FBdEIsQ0FBbkMsRUFBUDtBQUNEIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEaWZmKCkge31cblxuRGlmZi5wcm90b3R5cGUgPSB7XG4gIGRpZmYob2xkU3RyaW5nLCBuZXdTdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjYWxsYmFjayA9IG9wdGlvbnMuY2FsbGJhY2s7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBsZXQgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBkb25lKHZhbHVlKSB7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgY2FsbGJhY2sodW5kZWZpbmVkLCB2YWx1ZSk7IH0sIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGxvdyBzdWJjbGFzc2VzIHRvIG1hc3NhZ2UgdGhlIGlucHV0IHByaW9yIHRvIHJ1bm5pbmdcbiAgICBvbGRTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChvbGRTdHJpbmcpO1xuICAgIG5ld1N0cmluZyA9IHRoaXMuY2FzdElucHV0KG5ld1N0cmluZyk7XG5cbiAgICBvbGRTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUob2xkU3RyaW5nKSk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKG5ld1N0cmluZykpO1xuXG4gICAgbGV0IG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGg7XG4gICAgbGV0IGVkaXRMZW5ndGggPSAxO1xuICAgIGxldCBtYXhFZGl0TGVuZ3RoID0gbmV3TGVuICsgb2xkTGVuO1xuICAgIGxldCBiZXN0UGF0aCA9IFt7IG5ld1BvczogLTEsIGNvbXBvbmVudHM6IFtdIH1dO1xuXG4gICAgLy8gU2VlZCBlZGl0TGVuZ3RoID0gMCwgaS5lLiB0aGUgY29udGVudCBzdGFydHMgd2l0aCB0aGUgc2FtZSB2YWx1ZXNcbiAgICBsZXQgb2xkUG9zID0gdGhpcy5leHRyYWN0Q29tbW9uKGJlc3RQYXRoWzBdLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgMCk7XG4gICAgaWYgKGJlc3RQYXRoWzBdLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIG9sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAvLyBJZGVudGl0eSBwZXIgdGhlIGVxdWFsaXR5IGFuZCB0b2tlbml6ZXJcbiAgICAgIHJldHVybiBkb25lKFt7dmFsdWU6IHRoaXMuam9pbihuZXdTdHJpbmcpLCBjb3VudDogbmV3U3RyaW5nLmxlbmd0aH1dKTtcbiAgICB9XG5cbiAgICAvLyBNYWluIHdvcmtlciBtZXRob2QuIGNoZWNrcyBhbGwgcGVybXV0YXRpb25zIG9mIGEgZ2l2ZW4gZWRpdCBsZW5ndGggZm9yIGFjY2VwdGFuY2UuXG4gICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICBmb3IgKGxldCBkaWFnb25hbFBhdGggPSAtMSAqIGVkaXRMZW5ndGg7IGRpYWdvbmFsUGF0aCA8PSBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggKz0gMikge1xuICAgICAgICBsZXQgYmFzZVBhdGg7XG4gICAgICAgIGxldCBhZGRQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0sXG4gICAgICAgICAgICByZW1vdmVQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoICsgMV0sXG4gICAgICAgICAgICBvbGRQb3MgPSAocmVtb3ZlUGF0aCA/IHJlbW92ZVBhdGgubmV3UG9zIDogMCkgLSBkaWFnb25hbFBhdGg7XG4gICAgICAgIGlmIChhZGRQYXRoKSB7XG4gICAgICAgICAgLy8gTm8gb25lIGVsc2UgaXMgZ29pbmcgdG8gYXR0ZW1wdCB0byB1c2UgdGhpcyB2YWx1ZSwgY2xlYXIgaXRcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGggLSAxXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5BZGQgPSBhZGRQYXRoICYmIGFkZFBhdGgubmV3UG9zICsgMSA8IG5ld0xlbixcbiAgICAgICAgICAgIGNhblJlbW92ZSA9IHJlbW92ZVBhdGggJiYgMCA8PSBvbGRQb3MgJiYgb2xkUG9zIDwgb2xkTGVuO1xuICAgICAgICBpZiAoIWNhbkFkZCAmJiAhY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBwYXRoIGlzIGEgdGVybWluYWwgdGhlbiBwcnVuZVxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3QgdGhlIGRpYWdvbmFsIHRoYXQgd2Ugd2FudCB0byBicmFuY2ggZnJvbS4gV2Ugc2VsZWN0IHRoZSBwcmlvclxuICAgICAgICAvLyBwYXRoIHdob3NlIHBvc2l0aW9uIGluIHRoZSBuZXcgc3RyaW5nIGlzIHRoZSBmYXJ0aGVzdCBmcm9tIHRoZSBvcmlnaW5cbiAgICAgICAgLy8gYW5kIGRvZXMgbm90IHBhc3MgdGhlIGJvdW5kcyBvZiB0aGUgZGlmZiBncmFwaFxuICAgICAgICBpZiAoIWNhbkFkZCB8fCAoY2FuUmVtb3ZlICYmIGFkZFBhdGgubmV3UG9zIDwgcmVtb3ZlUGF0aC5uZXdQb3MpKSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBjbG9uZVBhdGgocmVtb3ZlUGF0aCk7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBhZGRQYXRoOyAgIC8vIE5vIG5lZWQgdG8gY2xvbmUsIHdlJ3ZlIHB1bGxlZCBpdCBmcm9tIHRoZSBsaXN0XG4gICAgICAgICAgYmFzZVBhdGgubmV3UG9zKys7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHRydWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRQb3MgPSBzZWxmLmV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpO1xuXG4gICAgICAgIC8vIElmIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgYm90aCBzdHJpbmdzLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgICAgIGlmIChiYXNlUGF0aC5uZXdQb3MgKyAxID49IG5ld0xlbiAmJiBvbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgICAgIHJldHVybiBkb25lKGJ1aWxkVmFsdWVzKHNlbGYsIGJhc2VQYXRoLmNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBzZWxmLnVzZUxvbmdlc3RUb2tlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB0cmFjayB0aGlzIHBhdGggYXMgYSBwb3RlbnRpYWwgY2FuZGlkYXRlIGFuZCBjb250aW51ZS5cbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWRpdExlbmd0aCsrO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1zIHRoZSBsZW5ndGggb2YgZWRpdCBpdGVyYXRpb24uIElzIGEgYml0IGZ1Z2x5IGFzIHRoaXMgaGFzIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gc3luYyBhbmQgYXN5bmMgbW9kZSB3aGljaCBpcyBuZXZlciBmdW4uIExvb3BzIG92ZXIgZXhlY0VkaXRMZW5ndGggdW50aWwgYSB2YWx1ZVxuICAgIC8vIGlzIHByb2R1Y2VkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgKGZ1bmN0aW9uIGV4ZWMoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIHdhbnQgdG8gYmUgc2FmZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChlZGl0TGVuZ3RoID4gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICBleGVjKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH0oKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgbGV0IHJldCA9IGV4ZWNFZGl0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHB1c2hDb21wb25lbnQoY29tcG9uZW50cywgYWRkZWQsIHJlbW92ZWQpIHtcbiAgICBsZXQgbGFzdCA9IGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdCAmJiBsYXN0LmFkZGVkID09PSBhZGRlZCAmJiBsYXN0LnJlbW92ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gY2xvbmUgaGVyZSBhcyB0aGUgY29tcG9uZW50IGNsb25lIG9wZXJhdGlvbiBpcyBqdXN0XG4gICAgICAvLyBhcyBzaGFsbG93IGFycmF5IGNsb25lXG4gICAgICBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV0gPSB7Y291bnQ6IGxhc3QuY291bnQgKyAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50cy5wdXNoKHtjb3VudDogMSwgYWRkZWQ6IGFkZGVkLCByZW1vdmVkOiByZW1vdmVkIH0pO1xuICAgIH1cbiAgfSxcbiAgZXh0cmFjdENvbW1vbihiYXNlUGF0aCwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIGRpYWdvbmFsUGF0aCkge1xuICAgIGxldCBuZXdMZW4gPSBuZXdTdHJpbmcubGVuZ3RoLFxuICAgICAgICBvbGRMZW4gPSBvbGRTdHJpbmcubGVuZ3RoLFxuICAgICAgICBuZXdQb3MgPSBiYXNlUGF0aC5uZXdQb3MsXG4gICAgICAgIG9sZFBvcyA9IG5ld1BvcyAtIGRpYWdvbmFsUGF0aCxcblxuICAgICAgICBjb21tb25Db3VudCA9IDA7XG4gICAgd2hpbGUgKG5ld1BvcyArIDEgPCBuZXdMZW4gJiYgb2xkUG9zICsgMSA8IG9sZExlbiAmJiB0aGlzLmVxdWFscyhuZXdTdHJpbmdbbmV3UG9zICsgMV0sIG9sZFN0cmluZ1tvbGRQb3MgKyAxXSkpIHtcbiAgICAgIG5ld1BvcysrO1xuICAgICAgb2xkUG9zKys7XG4gICAgICBjb21tb25Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjb21tb25Db3VudCkge1xuICAgICAgYmFzZVBhdGguY29tcG9uZW50cy5wdXNoKHtjb3VudDogY29tbW9uQ291bnR9KTtcbiAgICB9XG5cbiAgICBiYXNlUGF0aC5uZXdQb3MgPSBuZXdQb3M7XG4gICAgcmV0dXJuIG9sZFBvcztcbiAgfSxcblxuICBlcXVhbHMobGVmdCwgcmlnaHQpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29tcGFyYXRvcihsZWZ0LCByaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsZWZ0ID09PSByaWdodFxuICAgICAgICB8fCAodGhpcy5vcHRpb25zLmlnbm9yZUNhc2UgJiYgbGVmdC50b0xvd2VyQ2FzZSgpID09PSByaWdodC50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gIH0sXG4gIHJlbW92ZUVtcHR5KGFycmF5KSB7XG4gICAgbGV0IHJldCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJheVtpXSkge1xuICAgICAgICByZXQucHVzaChhcnJheVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG4gIGNhc3RJbnB1dCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcbiAgdG9rZW5pemUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJycpO1xuICB9LFxuICBqb2luKGNoYXJzKSB7XG4gICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBidWlsZFZhbHVlcyhkaWZmLCBjb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgdXNlTG9uZ2VzdFRva2VuKSB7XG4gIGxldCBjb21wb25lbnRQb3MgPSAwLFxuICAgICAgY29tcG9uZW50TGVuID0gY29tcG9uZW50cy5sZW5ndGgsXG4gICAgICBuZXdQb3MgPSAwLFxuICAgICAgb2xkUG9zID0gMDtcblxuICBmb3IgKDsgY29tcG9uZW50UG9zIDwgY29tcG9uZW50TGVuOyBjb21wb25lbnRQb3MrKykge1xuICAgIGxldCBjb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgaWYgKCFjb21wb25lbnQucmVtb3ZlZCkge1xuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQgJiYgdXNlTG9uZ2VzdFRva2VuKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUubWFwKGZ1bmN0aW9uKHZhbHVlLCBpKSB7XG4gICAgICAgICAgbGV0IG9sZFZhbHVlID0gb2xkU3RyaW5nW29sZFBvcyArIGldO1xuICAgICAgICAgIHJldHVybiBvbGRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBvbGRWYWx1ZSA6IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb21wb25lbnQudmFsdWUgPSBkaWZmLmpvaW4odmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcG9uZW50LnZhbHVlID0gZGlmZi5qb2luKG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCkpO1xuICAgICAgfVxuICAgICAgbmV3UG9zICs9IGNvbXBvbmVudC5jb3VudDtcblxuICAgICAgLy8gQ29tbW9uIGNhc2VcbiAgICAgIGlmICghY29tcG9uZW50LmFkZGVkKSB7XG4gICAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IGRpZmYuam9pbihvbGRTdHJpbmcuc2xpY2Uob2xkUG9zLCBvbGRQb3MgKyBjb21wb25lbnQuY291bnQpKTtcbiAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG5cbiAgICAgIC8vIFJldmVyc2UgYWRkIGFuZCByZW1vdmUgc28gcmVtb3ZlcyBhcmUgb3V0cHV0IGZpcnN0IHRvIG1hdGNoIGNvbW1vbiBjb252ZW50aW9uXG4gICAgICAvLyBUaGUgZGlmZmluZyBhbGdvcml0aG0gaXMgdGllZCB0byBhZGQgdGhlbiByZW1vdmUgb3V0cHV0IGFuZCB0aGlzIGlzIHRoZSBzaW1wbGVzdFxuICAgICAgLy8gcm91dGUgdG8gZ2V0IHRoZSBkZXNpcmVkIG91dHB1dCB3aXRoIG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgICBpZiAoY29tcG9uZW50UG9zICYmIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0uYWRkZWQpIHtcbiAgICAgICAgbGV0IHRtcCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV07XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0gPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxlIGZvciB3aGVuIG9uZSB0ZXJtaW5hbCBpcyBpZ25vcmVkIChpLmUuIHdoaXRlc3BhY2UpLlxuICAvLyBGb3IgdGhpcyBjYXNlIHdlIG1lcmdlIHRoZSB0ZXJtaW5hbCBpbnRvIHRoZSBwcmlvciBzdHJpbmcgYW5kIGRyb3AgdGhlIGNoYW5nZS5cbiAgLy8gVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBmb3Igc3RyaW5nIG1vZGUuXG4gIGxldCBsYXN0Q29tcG9uZW50ID0gY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAxXTtcbiAgaWYgKGNvbXBvbmVudExlbiA+IDFcbiAgICAgICYmIHR5cGVvZiBsYXN0Q29tcG9uZW50LnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgJiYgKGxhc3RDb21wb25lbnQuYWRkZWQgfHwgbGFzdENvbXBvbmVudC5yZW1vdmVkKVxuICAgICAgJiYgZGlmZi5lcXVhbHMoJycsIGxhc3RDb21wb25lbnQudmFsdWUpKSB7XG4gICAgY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAyXS52YWx1ZSArPSBsYXN0Q29tcG9uZW50LnZhbHVlO1xuICAgIGNvbXBvbmVudHMucG9wKCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHsgbmV3UG9zOiBwYXRoLm5ld1BvcywgY29tcG9uZW50czogcGF0aC5jb21wb25lbnRzLnNsaWNlKDApIH07XG59XG4iXX0= + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.characterDiff = undefined; + exports. /*istanbul ignore end*/diffChars = diffChars; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6WyJkaWZmQ2hhcnMiLCJjaGFyYWN0ZXJEaWZmIiwib2xkU3RyIiwibmV3U3RyIiwib3B0aW9ucyIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBR2dCQSxTLEdBQUFBLFM7O0FBSGhCOzs7Ozs7dUJBRU8sSUFBTUMseUZBQWdCLHdFQUF0QjtBQUNBLFNBQVNELFNBQVQsQ0FBbUJFLE1BQW5CLEVBQTJCQyxNQUEzQixFQUFtQ0MsT0FBbkMsRUFBNEM7QUFBRSxTQUFPSCxjQUFjSSxJQUFkLENBQW1CSCxNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNDLE9BQW5DLENBQVA7QUFBcUQiLCJmaWxlIjoiY2hhcmFjdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckRpZmYgPSBuZXcgRGlmZigpO1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDaGFycyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykgeyByZXR1cm4gY2hhcmFjdGVyRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTsgfVxuIl19 + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.wordDiff = undefined; + exports. /*istanbul ignore end*/diffWords = diffWords; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/ // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode + // + // Ranges and exceptions: + // Latin-1 Supplement, 0080–00FF + // - U+00D7 × Multiplication sign + // - U+00F7 ÷ Division sign + // Latin Extended-A, 0100–017F + // Latin Extended-B, 0180–024F + // IPA Extensions, 0250–02AF + // Spacing Modifier Letters, 02B0–02FF + // - U+02C7 ˇ ˇ Caron + // - U+02D8 ˘ ˘ Breve + // - U+02D9 ˙ ˙ Dot Above + // - U+02DA ˚ ˚ Ring Above + // - U+02DB ˛ ˛ Ogonek + // - U+02DC ˜ ˜ Small Tilde + // - U+02DD ˝ ˝ Double Acute Accent + // Latin Extended Additional, 1E00–1EFF + var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; + + var reWhitespace = /\S/; + + var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + wordDiff.equals = function (left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); + }; + wordDiff.tokenize = function (value) { + var tokens = value.split(/(\s+|\b)/); + + // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. + for (var i = 0; i < tokens.length - 1; i++) { + // If we have an empty string in the next field and we have only word chars before and after, merge + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + + return tokens; + }; + + function diffWords(oldStr, newStr, options) { + options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(options, { ignoreWhitespace: true }); + return wordDiff.diff(oldStr, newStr, options); + } + + function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOlsiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZXh0ZW5kZWRXb3JkQ2hhcnMiLCJyZVdoaXRlc3BhY2UiLCJ3b3JkRGlmZiIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsIm9wdGlvbnMiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJpZ25vcmVXaGl0ZXNwYWNlIiwidGVzdCIsInRva2VuaXplIiwidmFsdWUiLCJ0b2tlbnMiLCJzcGxpdCIsImkiLCJsZW5ndGgiLCJzcGxpY2UiLCJvbGRTdHIiLCJuZXdTdHIiLCJkaWZmIl0sIm1hcHBpbmdzIjoiOzs7O2dDQW1EZ0JBLFMsR0FBQUEsUzt5REFLQUMsa0IsR0FBQUEsa0I7O0FBeERoQjs7Ozt1QkFDQTs7Ozt3QkFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxvQkFBb0IsK0RBQTFCOztBQUVBLElBQU1DLGVBQWUsSUFBckI7O0FBRU8sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1BBLFNBQVNDLE1BQVQsR0FBa0IsVUFBU0MsSUFBVCxFQUFlQyxLQUFmLEVBQXNCO0FBQ3RDLE1BQUksS0FBS0MsT0FBTCxDQUFhQyxVQUFqQixFQUE2QjtBQUMzQkgsV0FBT0EsS0FBS0ksV0FBTCxFQUFQO0FBQ0FILFlBQVFBLE1BQU1HLFdBQU4sRUFBUjtBQUNEO0FBQ0QsU0FBT0osU0FBU0MsS0FBVCxJQUFtQixLQUFLQyxPQUFMLENBQWFHLGdCQUFiLElBQWlDLENBQUNSLGFBQWFTLElBQWIsQ0FBa0JOLElBQWxCLENBQWxDLElBQTZELENBQUNILGFBQWFTLElBQWIsQ0FBa0JMLEtBQWxCLENBQXhGO0FBQ0QsQ0FORDtBQU9BSCxTQUFTUyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsU0FBU0QsTUFBTUUsS0FBTixDQUFZLFVBQVosQ0FBYjs7QUFFQTtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRixPQUFPRyxNQUFQLEdBQWdCLENBQXBDLEVBQXVDRCxHQUF2QyxFQUE0QztBQUMxQztBQUNBLFFBQUksQ0FBQ0YsT0FBT0UsSUFBSSxDQUFYLENBQUQsSUFBa0JGLE9BQU9FLElBQUksQ0FBWCxDQUFsQixJQUNLZixrQkFBa0JVLElBQWxCLENBQXVCRyxPQUFPRSxDQUFQLENBQXZCLENBREwsSUFFS2Ysa0JBQWtCVSxJQUFsQixDQUF1QkcsT0FBT0UsSUFBSSxDQUFYLENBQXZCLENBRlQsRUFFZ0Q7QUFDOUNGLGFBQU9FLENBQVAsS0FBYUYsT0FBT0UsSUFBSSxDQUFYLENBQWI7QUFDQUYsYUFBT0ksTUFBUCxDQUFjRixJQUFJLENBQWxCLEVBQXFCLENBQXJCO0FBQ0FBO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPRixNQUFQO0FBQ0QsQ0FoQkQ7O0FBa0JPLFNBQVNmLFNBQVQsQ0FBbUJvQixNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNiLE9BQW5DLEVBQTRDO0FBQ2pEQSxZQUFVLDhFQUFnQkEsT0FBaEIsRUFBeUIsRUFBQ0csa0JBQWtCLElBQW5CLEVBQXpCLENBQVY7QUFDQSxTQUFPUCxTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEOztBQUVNLFNBQVNQLGtCQUFULENBQTRCbUIsTUFBNUIsRUFBb0NDLE1BQXBDLEVBQTRDYixPQUE1QyxFQUFxRDtBQUMxRCxTQUFPSixTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEIiwiZmlsZSI6IndvcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtnZW5lcmF0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWwvcGFyYW1zJztcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbmNvbnN0IGV4dGVuZGVkV29yZENoYXJzID0gL15bYS16QS1aXFx1e0MwfS1cXHV7RkZ9XFx1e0Q4fS1cXHV7RjZ9XFx1e0Y4fS1cXHV7MkM2fVxcdXsyQzh9LVxcdXsyRDd9XFx1ezJERX0tXFx1ezJGRn1cXHV7MUUwMH0tXFx1ezFFRkZ9XSskL3U7XG5cbmNvbnN0IHJlV2hpdGVzcGFjZSA9IC9cXFMvO1xuXG5leHBvcnQgY29uc3Qgd29yZERpZmYgPSBuZXcgRGlmZigpO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgaWYgKHRoaXMub3B0aW9ucy5pZ25vcmVDYXNlKSB7XG4gICAgbGVmdCA9IGxlZnQudG9Mb3dlckNhc2UoKTtcbiAgICByaWdodCA9IHJpZ2h0LnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0IHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KSk7XG59O1xud29yZERpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3Jkc1dpdGhTcGFjZShvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICByZXR1cm4gd29yZERpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucyk7XG59XG4iXX0= + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/generateOptions = generateOptions; + function generateOptions(options, defaults) { + if (typeof options === 'function') { + defaults.callback = options; + } else if (options) { + for (var name in options) { + /* istanbul ignore else */ + if (options.hasOwnProperty(name)) { + defaults[name] = options[name]; + } + } + } + return defaults; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6WyJnZW5lcmF0ZU9wdGlvbnMiLCJvcHRpb25zIiwiZGVmYXVsdHMiLCJjYWxsYmFjayIsIm5hbWUiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsZSxHQUFBQSxlO0FBQVQsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFFBQWxDLEVBQTRDO0FBQ2pELE1BQUksT0FBT0QsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUNqQ0MsYUFBU0MsUUFBVCxHQUFvQkYsT0FBcEI7QUFDRCxHQUZELE1BRU8sSUFBSUEsT0FBSixFQUFhO0FBQ2xCLFNBQUssSUFBSUcsSUFBVCxJQUFpQkgsT0FBakIsRUFBMEI7QUFDeEI7QUFDQSxVQUFJQSxRQUFRSSxjQUFSLENBQXVCRCxJQUF2QixDQUFKLEVBQWtDO0FBQ2hDRixpQkFBU0UsSUFBVCxJQUFpQkgsUUFBUUcsSUFBUixDQUFqQjtBQUNEO0FBQ0Y7QUFDRjtBQUNELFNBQU9GLFFBQVA7QUFDRCIsImZpbGUiOiJwYXJhbXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlZmF1bHRzLmNhbGxiYWNrID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChvcHRpb25zKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgZGVmYXVsdHNbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG4iXX0= + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.lineDiff = undefined; + exports. /*istanbul ignore end*/diffLines = diffLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + lineDiff.tokenize = function (value) { + var retLines = [], + linesAndNewlines = value.split(/(\n|\r\n)/); + + // Ignore the final empty token that occurs if the string ends with a new line + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + + // Merge the content and line separators into single tokens + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + + return retLines; + }; + + function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); + } + function diffTrimmedLines(oldStr, newStr, callback) { + var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true }); + return lineDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOlsiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImxpbmVEaWZmIiwidG9rZW5pemUiLCJ2YWx1ZSIsInJldExpbmVzIiwibGluZXNBbmROZXdsaW5lcyIsInNwbGl0IiwibGVuZ3RoIiwicG9wIiwiaSIsImxpbmUiLCJvcHRpb25zIiwibmV3bGluZUlzVG9rZW4iLCJpZ25vcmVXaGl0ZXNwYWNlIiwidHJpbSIsInB1c2giLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBOEJnQkEsUyxHQUFBQSxTO3lEQUNBQyxnQixHQUFBQSxnQjs7QUEvQmhCOzs7O3VCQUNBOzs7O3VCQUVPLElBQU1DLCtFQUFXLHdFQUFqQjtBQUNQQSxTQUFTQyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsV0FBVyxFQUFmO0FBQUEsTUFDSUMsbUJBQW1CRixNQUFNRyxLQUFOLENBQVksV0FBWixDQUR2Qjs7QUFHQTtBQUNBLE1BQUksQ0FBQ0QsaUJBQWlCQSxpQkFBaUJFLE1BQWpCLEdBQTBCLENBQTNDLENBQUwsRUFBb0Q7QUFDbERGLHFCQUFpQkcsR0FBakI7QUFDRDs7QUFFRDtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJSixpQkFBaUJFLE1BQXJDLEVBQTZDRSxHQUE3QyxFQUFrRDtBQUNoRCxRQUFJQyxPQUFPTCxpQkFBaUJJLENBQWpCLENBQVg7O0FBRUEsUUFBSUEsSUFBSSxDQUFKLElBQVMsQ0FBQyxLQUFLRSxPQUFMLENBQWFDLGNBQTNCLEVBQTJDO0FBQ3pDUixlQUFTQSxTQUFTRyxNQUFULEdBQWtCLENBQTNCLEtBQWlDRyxJQUFqQztBQUNELEtBRkQsTUFFTztBQUNMLFVBQUksS0FBS0MsT0FBTCxDQUFhRSxnQkFBakIsRUFBbUM7QUFDakNILGVBQU9BLEtBQUtJLElBQUwsRUFBUDtBQUNEO0FBQ0RWLGVBQVNXLElBQVQsQ0FBY0wsSUFBZDtBQUNEO0FBQ0Y7O0FBRUQsU0FBT04sUUFBUDtBQUNELENBeEJEOztBQTBCTyxTQUFTTCxTQUFULENBQW1CaUIsTUFBbkIsRUFBMkJDLE1BQTNCLEVBQW1DQyxRQUFuQyxFQUE2QztBQUFFLFNBQU9qQixTQUFTa0IsSUFBVCxDQUFjSCxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QkMsUUFBOUIsQ0FBUDtBQUFpRDtBQUNoRyxTQUFTbEIsZ0JBQVQsQ0FBMEJnQixNQUExQixFQUFrQ0MsTUFBbEMsRUFBMENDLFFBQTFDLEVBQW9EO0FBQ3pELE1BQUlQLFVBQVUsOEVBQWdCTyxRQUFoQixFQUEwQixFQUFDTCxrQkFBa0IsSUFBbkIsRUFBMUIsQ0FBZDtBQUNBLFNBQU9aLFNBQVNrQixJQUFULENBQWNILE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCTixPQUE5QixDQUFQO0FBQ0QiLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge2dlbmVyYXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbC9wYXJhbXMnO1xuXG5leHBvcnQgY29uc3QgbGluZURpZmYgPSBuZXcgRGlmZigpO1xubGluZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgcmV0TGluZXMgPSBbXSxcbiAgICAgIGxpbmVzQW5kTmV3bGluZXMgPSB2YWx1ZS5zcGxpdCgvKFxcbnxcXHJcXG4pLyk7XG5cbiAgLy8gSWdub3JlIHRoZSBmaW5hbCBlbXB0eSB0b2tlbiB0aGF0IG9jY3VycyBpZiB0aGUgc3RyaW5nIGVuZHMgd2l0aCBhIG5ldyBsaW5lXG4gIGlmICghbGluZXNBbmROZXdsaW5lc1tsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgbGluZXNBbmROZXdsaW5lcy5wb3AoKTtcbiAgfVxuXG4gIC8vIE1lcmdlIHRoZSBjb250ZW50IGFuZCBsaW5lIHNlcGFyYXRvcnMgaW50byBzaW5nbGUgdG9rZW5zXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXNBbmROZXdsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBsaW5lID0gbGluZXNBbmROZXdsaW5lc1tpXTtcblxuICAgIGlmIChpICUgMiAmJiAhdGhpcy5vcHRpb25zLm5ld2xpbmVJc1Rva2VuKSB7XG4gICAgICByZXRMaW5lc1tyZXRMaW5lcy5sZW5ndGggLSAxXSArPSBsaW5lO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmlnbm9yZVdoaXRlc3BhY2UpIHtcbiAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgfVxuICAgICAgcmV0TGluZXMucHVzaChsaW5lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0TGluZXM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykgeyByZXR1cm4gbGluZURpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG5leHBvcnQgZnVuY3Rpb24gZGlmZlRyaW1tZWRMaW5lcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgbGV0IG9wdGlvbnMgPSBnZW5lcmF0ZU9wdGlvbnMoY2FsbGJhY2ssIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cbiJdfQ== + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.sentenceDiff = undefined; + exports. /*istanbul ignore end*/diffSentences = diffSentences; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + sentenceDiff.tokenize = function (value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); + }; + + function diffSentences(oldStr, newStr, callback) { + return sentenceDiff.diff(oldStr, newStr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbImRpZmZTZW50ZW5jZXMiLCJzZW50ZW5jZURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic3BsaXQiLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBUWdCQSxhLEdBQUFBLGE7O0FBUmhCOzs7Ozs7dUJBR08sSUFBTUMsdUZBQWUsd0VBQXJCO0FBQ1BBLGFBQWFDLFFBQWIsR0FBd0IsVUFBU0MsS0FBVCxFQUFnQjtBQUN0QyxTQUFPQSxNQUFNQyxLQUFOLENBQVksdUJBQVosQ0FBUDtBQUNELENBRkQ7O0FBSU8sU0FBU0osYUFBVCxDQUF1QkssTUFBdkIsRUFBK0JDLE1BQS9CLEVBQXVDQyxRQUF2QyxFQUFpRDtBQUFFLFNBQU9OLGFBQWFPLElBQWIsQ0FBa0JILE1BQWxCLEVBQTBCQyxNQUExQixFQUFrQ0MsUUFBbEMsQ0FBUDtBQUFxRCIsImZpbGUiOiJzZW50ZW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IHNlbnRlbmNlRGlmZiA9IG5ldyBEaWZmKCk7XG5zZW50ZW5jZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZlNlbnRlbmNlcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIHNlbnRlbmNlRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ== + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.cssDiff = undefined; + exports. /*istanbul ignore end*/diffCss = diffCss; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + cssDiff.tokenize = function (value) { + return value.split(/([{}:;,]|\s+)/); + }; + + function diffCss(oldStr, newStr, callback) { + return cssDiff.diff(oldStr, newStr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6WyJkaWZmQ3NzIiwiY3NzRGlmZiIsInRva2VuaXplIiwidmFsdWUiLCJzcGxpdCIsIm9sZFN0ciIsIm5ld1N0ciIsImNhbGxiYWNrIiwiZGlmZiJdLCJtYXBwaW5ncyI6Ijs7OztnQ0FPZ0JBLE8sR0FBQUEsTzs7QUFQaEI7Ozs7Ozt1QkFFTyxJQUFNQyw2RUFBVSx3RUFBaEI7QUFDUEEsUUFBUUMsUUFBUixHQUFtQixVQUFTQyxLQUFULEVBQWdCO0FBQ2pDLFNBQU9BLE1BQU1DLEtBQU4sQ0FBWSxlQUFaLENBQVA7QUFDRCxDQUZEOztBQUlPLFNBQVNKLE9BQVQsQ0FBaUJLLE1BQWpCLEVBQXlCQyxNQUF6QixFQUFpQ0MsUUFBakMsRUFBMkM7QUFBRSxTQUFPTixRQUFRTyxJQUFSLENBQWFILE1BQWIsRUFBcUJDLE1BQXJCLEVBQTZCQyxRQUE3QixDQUFQO0FBQWdEIiwiZmlsZSI6ImNzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBjc3NEaWZmID0gbmV3IERpZmYoKTtcbmNzc0RpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhbe306OyxdfFxccyspLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkNzcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIGNzc0RpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG4iXX0= + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.jsonDiff = undefined; + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + exports. /*istanbul ignore end*/diffJson = diffJson; + /*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var objectPrototypeToString = Object.prototype.toString; + + var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a + // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: + jsonDiff.useLongestToken = true; + + jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff /*istanbul ignore end*/.tokenize; + jsonDiff.castInput = function (value) { + /*istanbul ignore start*/var _options = /*istanbul ignore end*/this.options, + undefinedReplacement = _options.undefinedReplacement, + _options$stringifyRep = _options.stringifyReplacer, + stringifyReplacer = _options$stringifyRep === undefined ? function (k, v) /*istanbul ignore start*/{ + return (/*istanbul ignore end*/typeof v === 'undefined' ? undefinedReplacement : v + ); + } : _options$stringifyRep; + + + return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); + }; + jsonDiff.equals = function (left, right) { + return (/*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) + ); + }; + + function diffJson(oldObj, newObj, options) { + return jsonDiff.diff(oldObj, newObj, options); + } + + // This function handles the presence of circular references by bailing out when encountering an + // object that is already on the "stack" of items being processed. Accepts an optional replacer + function canonicalize(obj, stack, replacementStack, replacer, key) { + stack = stack || []; + replacementStack = replacementStack || []; + + if (replacer) { + obj = replacer(key, obj); + } + + var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + + var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + if ('[object Array]' === objectPrototypeToString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + + if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], + _key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + for (_key in obj) { + /* istanbul ignore else */ + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOlsiZGlmZkpzb24iLCJjYW5vbmljYWxpemUiLCJvYmplY3RQcm90b3R5cGVUb1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwianNvbkRpZmYiLCJ1c2VMb25nZXN0VG9rZW4iLCJ0b2tlbml6ZSIsImNhc3RJbnB1dCIsInZhbHVlIiwib3B0aW9ucyIsInVuZGVmaW5lZFJlcGxhY2VtZW50Iiwic3RyaW5naWZ5UmVwbGFjZXIiLCJrIiwidiIsIkpTT04iLCJzdHJpbmdpZnkiLCJlcXVhbHMiLCJsZWZ0IiwicmlnaHQiLCJjYWxsIiwicmVwbGFjZSIsIm9sZE9iaiIsIm5ld09iaiIsImRpZmYiLCJvYmoiLCJzdGFjayIsInJlcGxhY2VtZW50U3RhY2siLCJyZXBsYWNlciIsImtleSIsImkiLCJsZW5ndGgiLCJjYW5vbmljYWxpemVkT2JqIiwicHVzaCIsIkFycmF5IiwicG9wIiwidG9KU09OIiwic29ydGVkS2V5cyIsImhhc093blByb3BlcnR5Iiwic29ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztnQ0FxQmdCQSxRLEdBQUFBLFE7eURBSUFDLFksR0FBQUEsWTs7QUF6QmhCOzs7O3VCQUNBOzs7O3VCQUVBLElBQU1DLDBCQUEwQkMsT0FBT0MsU0FBUCxDQUFpQkMsUUFBakQ7O0FBR08sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1A7QUFDQTtBQUNBQSxTQUFTQyxlQUFULEdBQTJCLElBQTNCOztBQUVBRCxTQUFTRSxRQUFULEdBQW9CLGdFQUFTQSxRQUE3QjtBQUNBRixTQUFTRyxTQUFULEdBQXFCLFVBQVNDLEtBQVQsRUFBZ0I7QUFBQSxpRUFDK0UsS0FBS0MsT0FEcEY7QUFBQSxNQUM1QkMsb0JBRDRCLFlBQzVCQSxvQkFENEI7QUFBQSx1Q0FDTkMsaUJBRE07QUFBQSxNQUNOQSxpQkFETSx5Q0FDYyxVQUFDQyxDQUFELEVBQUlDLENBQUo7QUFBQSxtQ0FBVSxPQUFPQSxDQUFQ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QUFLVCxJQUFJLENBQVQsRUFBWUEsSUFBSU8sV0FBV04sTUFBM0IsRUFBbUNELEtBQUssQ0FBeEMsRUFBMkM7QUFDekNELGFBQU1RLFdBQVdQLENBQVgsQ0FBTjtBQUNBRSx1QkFBaUJILElBQWpCLElBQXdCN0IsYUFBYXlCLElBQUlJLElBQUosQ0FBYixFQUF1QkgsS0FBdkIsRUFBOEJDLGdCQUE5QixFQUFnREMsUUFBaEQsRUFBMERDLElBQTFELENBQXhCO0FBQ0Q7QUFDREgsVUFBTVMsR0FBTjtBQUNBUixxQkFBaUJRLEdBQWpCO0FBQ0QsR0FuQkQsTUFtQk87QUFDTEgsdUJBQW1CUCxHQUFuQjtBQUNEO0FBQ0QsU0FBT08sZ0JBQVA7QUFDRCIsImZpbGUiOiJqc29uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7bGluZURpZmZ9IGZyb20gJy4vbGluZSc7XG5cbmNvbnN0IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuXG5leHBvcnQgY29uc3QganNvbkRpZmYgPSBuZXcgRGlmZigpO1xuLy8gRGlzY3JpbWluYXRlIGJldHdlZW4gdHdvIGxpbmVzIG9mIHByZXR0eS1wcmludGVkLCBzZXJpYWxpemVkIEpTT04gd2hlcmUgb25lIG9mIHRoZW0gaGFzIGFcbi8vIGRhbmdsaW5nIGNvbW1hIGFuZCB0aGUgb3RoZXIgZG9lc24ndC4gVHVybnMgb3V0IGluY2x1ZGluZyB0aGUgZGFuZ2xpbmcgY29tbWEgeWllbGRzIHRoZSBuaWNlc3Qgb3V0cHV0OlxuanNvbkRpZmYudXNlTG9uZ2VzdFRva2VuID0gdHJ1ZTtcblxuanNvbkRpZmYudG9rZW5pemUgPSBsaW5lRGlmZi50b2tlbml6ZTtcbmpzb25EaWZmLmNhc3RJbnB1dCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGNvbnN0IHt1bmRlZmluZWRSZXBsYWNlbWVudCwgc3RyaW5naWZ5UmVwbGFjZXIgPSAoaywgdikgPT4gdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkUmVwbGFjZW1lbnQgOiB2fSA9IHRoaXMub3B0aW9ucztcblxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlLCBudWxsLCBudWxsLCBzdHJpbmdpZnlSZXBsYWNlciksIHN0cmluZ2lmeVJlcGxhY2VyLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzLmNhbGwoanNvbkRpZmYsIGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgb3B0aW9ucykgeyByZXR1cm4ganNvbkRpZmYuZGlmZihvbGRPYmosIG5ld09iaiwgb3B0aW9ucyk7IH1cblxuLy8gVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBwcmVzZW5jZSBvZiBjaXJjdWxhciByZWZlcmVuY2VzIGJ5IGJhaWxpbmcgb3V0IHdoZW4gZW5jb3VudGVyaW5nIGFuXG4vLyBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IG9uIHRoZSBcInN0YWNrXCIgb2YgaXRlbXMgYmVpbmcgcHJvY2Vzc2VkLiBBY2NlcHRzIGFuIG9wdGlvbmFsIHJlcGxhY2VyXG5leHBvcnQgZnVuY3Rpb24gY2Fub25pY2FsaXplKG9iaiwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpIHtcbiAgc3RhY2sgPSBzdGFjayB8fCBbXTtcbiAgcmVwbGFjZW1lbnRTdGFjayA9IHJlcGxhY2VtZW50U3RhY2sgfHwgW107XG5cbiAgaWYgKHJlcGxhY2VyKSB7XG4gICAgb2JqID0gcmVwbGFjZXIoa2V5LCBvYmopO1xuICB9XG5cbiAgbGV0IGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKHN0YWNrW2ldID09PSBvYmopIHtcbiAgICAgIHJldHVybiByZXBsYWNlbWVudFN0YWNrW2ldO1xuICAgIH1cbiAgfVxuXG4gIGxldCBjYW5vbmljYWxpemVkT2JqO1xuXG4gIGlmICgnW29iamVjdCBBcnJheV0nID09PSBvYmplY3RQcm90b3R5cGVUb1N0cmluZy5jYWxsKG9iaikpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG5ldyBBcnJheShvYmoubGVuZ3RoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnB1c2goY2Fub25pY2FsaXplZE9iaik7XG4gICAgZm9yIChpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY2Fub25pY2FsaXplZE9ialtpXSA9IGNhbm9uaWNhbGl6ZShvYmpbaV0sIHN0YWNrLCByZXBsYWNlbWVudFN0YWNrLCByZXBsYWNlciwga2V5KTtcbiAgICB9XG4gICAgc3RhY2sucG9wKCk7XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wb3AoKTtcbiAgICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbiAgfVxuXG4gIGlmIChvYmogJiYgb2JqLnRvSlNPTikge1xuICAgIG9iaiA9IG9iai50b0pTT04oKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IHt9O1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdLFxuICAgICAgICBrZXk7XG4gICAgZm9yIChrZXkgaW4gb2JqKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAga2V5ID0gc29ydGVkS2V5c1tpXTtcbiAgICAgIGNhbm9uaWNhbGl6ZWRPYmpba2V5XSA9IGNhbm9uaWNhbGl6ZShvYmpba2V5XSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIGNhbm9uaWNhbGl6ZWRPYmogPSBvYmo7XG4gIH1cbiAgcmV0dXJuIGNhbm9uaWNhbGl6ZWRPYmo7XG59XG4iXX0= + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.arrayDiff = undefined; + exports. /*istanbul ignore end*/diffArrays = diffArrays; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var arrayDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + arrayDiff.tokenize = function (value) { + return value.slice(); + }; + arrayDiff.join = arrayDiff.removeEmpty = function (value) { + return value; + }; + + function diffArrays(oldArr, newArr, callback) { + return arrayDiff.diff(oldArr, newArr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2FycmF5LmpzIl0sIm5hbWVzIjpbImRpZmZBcnJheXMiLCJhcnJheURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic2xpY2UiLCJqb2luIiwicmVtb3ZlRW1wdHkiLCJvbGRBcnIiLCJuZXdBcnIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBVWdCQSxVLEdBQUFBLFU7O0FBVmhCOzs7Ozs7dUJBRU8sSUFBTUMsaUZBQVksd0VBQWxCO0FBQ1BBLFVBQVVDLFFBQVYsR0FBcUIsVUFBU0MsS0FBVCxFQUFnQjtBQUNuQyxTQUFPQSxNQUFNQyxLQUFOLEVBQVA7QUFDRCxDQUZEO0FBR0FILFVBQVVJLElBQVYsR0FBaUJKLFVBQVVLLFdBQVYsR0FBd0IsVUFBU0gsS0FBVCxFQUFnQjtBQUN2RCxTQUFPQSxLQUFQO0FBQ0QsQ0FGRDs7QUFJTyxTQUFTSCxVQUFULENBQW9CTyxNQUFwQixFQUE0QkMsTUFBNUIsRUFBb0NDLFFBQXBDLEVBQThDO0FBQUUsU0FBT1IsVUFBVVMsSUFBVixDQUFlSCxNQUFmLEVBQXVCQyxNQUF2QixFQUErQkMsUUFBL0IsQ0FBUDtBQUFrRCIsImZpbGUiOiJhcnJheS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBhcnJheURpZmYgPSBuZXcgRGlmZigpO1xuYXJyYXlEaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnNsaWNlKCk7XG59O1xuYXJyYXlEaWZmLmpvaW4gPSBhcnJheURpZmYucmVtb3ZlRW1wdHkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkFycmF5cyhvbGRBcnIsIG5ld0FyciwgY2FsbGJhY2spIHsgcmV0dXJuIGFycmF5RGlmZi5kaWZmKG9sZEFyciwgbmV3QXJyLCBjYWxsYmFjayk7IH1cbiJdfQ== + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/applyPatch = applyPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_distanceIterator = __webpack_require__(12) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _distanceIterator2 = _interopRequireDefault(_distanceIterator); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/function applyPatch(source, uniDiff) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + if (typeof uniDiff === 'string') { + uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); + } + + if (Array.isArray(uniDiff)) { + if (uniDiff.length > 1) { + throw new Error('applyPatch only works with a single input.'); + } + + uniDiff = uniDiff[0]; + } + + // Apply the diff to the input + var lines = source.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], + hunks = uniDiff.hunks, + compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{ + return (/*istanbul ignore end*/line === patchContent + ); + }, + errorCount = 0, + fuzzFactor = options.fuzzFactor || 0, + minLine = 0, + offset = 0, + removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, + addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + /** + * Checks if the hunk exactly fits on the provided location + */ + function hunkFits(hunk, toPos) { + for (var j = 0; j < hunk.lines.length; j++) { + var line = hunk.lines[j], + operation = line.length > 0 ? line[0] : ' ', + content = line.length > 0 ? line.substr(1) : line; + + if (operation === ' ' || operation === '-') { + // Context sanity check + if (!compareLine(toPos + 1, lines[toPos], operation, content)) { + errorCount++; + + if (errorCount > fuzzFactor) { + return false; + } + } + toPos++; + } + } + + return true; + } + + // Search best fit offsets for each hunk based on the previous ones + for (var i = 0; i < hunks.length; i++) { + var hunk = hunks[i], + maxLine = lines.length - hunk.oldLines, + localOffset = 0, + toPos = offset + hunk.oldStart - 1; + + var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default']) /*istanbul ignore end*/(toPos, minLine, maxLine); + + for (; localOffset !== undefined; localOffset = iterator()) { + if (hunkFits(hunk, toPos + localOffset)) { + hunk.offset = offset += localOffset; + break; + } + } + + if (localOffset === undefined) { + return false; + } + + // Set lower text limit to end of the current hunk, so next ones don't try + // to fit over already patched text + minLine = hunk.offset + hunk.oldStart + hunk.oldLines; + } + + // Apply patch hunks + var diffOffset = 0; + for (var _i = 0; _i < hunks.length; _i++) { + var _hunk = hunks[_i], + _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1; + diffOffset += _hunk.newLines - _hunk.oldLines; + + if (_toPos < 0) { + // Creating a new file + _toPos = 0; + } + + for (var j = 0; j < _hunk.lines.length; j++) { + var line = _hunk.lines[j], + operation = line.length > 0 ? line[0] : ' ', + content = line.length > 0 ? line.substr(1) : line, + delimiter = _hunk.linedelimiters[j]; + + if (operation === ' ') { + _toPos++; + } else if (operation === '-') { + lines.splice(_toPos, 1); + delimiters.splice(_toPos, 1); + /* istanbul ignore else */ + } else if (operation === '+') { + lines.splice(_toPos, 0, content); + delimiters.splice(_toPos, 0, delimiter); + _toPos++; + } else if (operation === '\\') { + var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; + if (previousOperation === '+') { + removeEOFNL = true; + } else if (previousOperation === '-') { + addEOFNL = true; + } + } + } + } + + // Handle EOFNL insertion/removal + if (removeEOFNL) { + while (!lines[lines.length - 1]) { + lines.pop(); + delimiters.pop(); + } + } else if (addEOFNL) { + lines.push(''); + delimiters.push('\n'); + } + for (var _k = 0; _k < lines.length - 1; _k++) { + lines[_k] = lines[_k] + delimiters[_k]; + } + return lines.join(''); + } + + // Wrapper that supports multiple file patches via callbacks. + function applyPatches(uniDiff, options) { + if (typeof uniDiff === 'string') { + uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); + } + + var currentIndex = 0; + function processIndex() { + var index = uniDiff[currentIndex++]; + if (!index) { + return options.complete(); + } + + options.loadFile(index, function (err, data) { + if (err) { + return options.complete(err); + } + + var updatedContent = applyPatch(data, index, options); + options.patched(index, updatedContent, function (err) { + if (err) { + return options.complete(err); + } + + processIndex(); + }); + }); + } + processIndex(); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6WyJhcHBseVBhdGNoIiwiYXBwbHlQYXRjaGVzIiwic291cmNlIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImxpbmVzIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJodW5rcyIsImNvbXBhcmVMaW5lIiwibGluZU51bWJlciIsImxpbmUiLCJvcGVyYXRpb24iLCJwYXRjaENvbnRlbnQiLCJlcnJvckNvdW50IiwiZnV6ekZhY3RvciIsIm1pbkxpbmUiLCJvZmZzZXQiLCJyZW1vdmVFT0ZOTCIsImFkZEVPRk5MIiwiaHVua0ZpdHMiLCJodW5rIiwidG9Qb3MiLCJqIiwiY29udGVudCIsInN1YnN0ciIsImkiLCJtYXhMaW5lIiwib2xkTGluZXMiLCJsb2NhbE9mZnNldCIsIm9sZFN0YXJ0IiwiaXRlcmF0b3IiLCJ1bmRlZmluZWQiLCJkaWZmT2Zmc2V0IiwibmV3TGluZXMiLCJkZWxpbWl0ZXIiLCJsaW5lZGVsaW1pdGVycyIsInNwbGljZSIsInByZXZpb3VzT3BlcmF0aW9uIiwicG9wIiwicHVzaCIsIl9rIiwiam9pbiIsImN1cnJlbnRJbmRleCIsInByb2Nlc3NJbmRleCIsImluZGV4IiwiY29tcGxldGUiLCJsb2FkRmlsZSIsImVyciIsImRhdGEiLCJ1cGRhdGVkQ29udGVudCIsInBhdGNoZWQiXSwibWFwcGluZ3MiOiI7OztnQ0FHZ0JBLFUsR0FBQUEsVTt5REFvSUFDLFksR0FBQUEsWTs7QUF2SWhCOztBQUNBOzs7Ozs7dUJBRU8sU0FBU0QsVUFBVCxDQUFvQkUsTUFBcEIsRUFBNEJDLE9BQTVCLEVBQW1EO0FBQUEsc0RBQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFDeEQsTUFBSSxPQUFPRCxPQUFQLEtBQW1CLFFBQXZCLEVBQWlDO0FBQy9CQSxjQUFVLHdFQUFXQSxPQUFYLENBQVY7QUFDRDs7QUFFRCxNQUFJRSxNQUFNQyxP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QUFZO0FBQ1YsYUFBTzlDLFFBQVErQyxRQUFSLEVBQVA7QUFDRDs7QUFFRC9DLFlBQVFnRCxRQUFSLENBQWlCRixLQUFqQixFQUF3QixVQUFTRyxHQUFULEVBQWNDLElBQWQsRUFBb0I7QUFDMUMsVUFBSUQsR0FBSixFQUFTO0FBQ1AsZUFBT2pELFFBQVErQyxRQUFSLENBQWlCRSxHQUFqQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSUUsaUJBQWlCdkQsV0FBV3NELElBQVgsRUFBaUJKLEtBQWpCLEVBQXdCOUMsT0FBeEIsQ0FBckI7QUFDQUEsY0FBUW9ELE9BQVIsQ0FBZ0JOLEtBQWhCLEVBQXVCSyxjQUF2QixFQUF1QyxVQUFTRixHQUFULEVBQWM7QUFDbkQsWUFBSUEsR0FBSixFQUFTO0FBQ1AsaUJBQU9qRCxRQUFRK0MsUUFBUixDQUFpQkUsR0FBakIsQ0FBUDtBQUNEOztBQUVESjtBQUNELE9BTkQ7QUFPRCxLQWJEO0FBY0Q7QUFDREE7QUFDRCIsImZpbGUiOiJhcHBseS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXJzZSc7XG5pbXBvcnQgZGlzdGFuY2VJdGVyYXRvciBmcm9tICcuLi91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2goc291cmNlLCB1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodW5pRGlmZikpIHtcbiAgICBpZiAodW5pRGlmZi5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcGx5UGF0Y2ggb25seSB3b3JrcyB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xuICAgIH1cblxuICAgIHVuaURpZmYgPSB1bmlEaWZmWzBdO1xuICB9XG5cbiAgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIGlucHV0XG4gIGxldCBsaW5lcyA9IHNvdXJjZS5zcGxpdCgvXFxyXFxufFtcXG5cXHZcXGZcXHJcXHg4NV0vKSxcbiAgICAgIGRlbGltaXRlcnMgPSBzb3VyY2UubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSAobGluZS5sZW5ndGggPiAwID8gbGluZVswXSA6ICcgJyksXG4gICAgICAgICAgY29udGVudCA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lLnN1YnN0cigxKSA6IGxpbmUpO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgLy8gQ29udGV4dCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFjb21wYXJlTGluZSh0b1BvcyArIDEsIGxpbmVzW3RvUG9zXSwgb3BlcmF0aW9uLCBjb250ZW50KSkge1xuICAgICAgICAgIGVycm9yQ291bnQrKztcblxuICAgICAgICAgIGlmIChlcnJvckNvdW50ID4gZnV6ekZhY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0b1BvcysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gU2VhcmNoIGJlc3QgZml0IG9mZnNldHMgZm9yIGVhY2ggaHVuayBiYXNlZCBvbiB0aGUgcHJldmlvdXMgb25lc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgbWF4TGluZSA9IGxpbmVzLmxlbmd0aCAtIGh1bmsub2xkTGluZXMsXG4gICAgICAgIGxvY2FsT2Zmc2V0ID0gMCxcbiAgICAgICAgdG9Qb3MgPSBvZmZzZXQgKyBodW5rLm9sZFN0YXJ0IC0gMTtcblxuICAgIGxldCBpdGVyYXRvciA9IGRpc3RhbmNlSXRlcmF0b3IodG9Qb3MsIG1pbkxpbmUsIG1heExpbmUpO1xuXG4gICAgZm9yICg7IGxvY2FsT2Zmc2V0ICE9PSB1bmRlZmluZWQ7IGxvY2FsT2Zmc2V0ID0gaXRlcmF0b3IoKSkge1xuICAgICAgaWYgKGh1bmtGaXRzKGh1bmssIHRvUG9zICsgbG9jYWxPZmZzZXQpKSB7XG4gICAgICAgIGh1bmsub2Zmc2V0ID0gb2Zmc2V0ICs9IGxvY2FsT2Zmc2V0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9jYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBsb3dlciB0ZXh0IGxpbWl0IHRvIGVuZCBvZiB0aGUgY3VycmVudCBodW5rLCBzbyBuZXh0IG9uZXMgZG9uJ3QgdHJ5XG4gICAgLy8gdG8gZml0IG92ZXIgYWxyZWFkeSBwYXRjaGVkIHRleHRcbiAgICBtaW5MaW5lID0gaHVuay5vZmZzZXQgKyBodW5rLm9sZFN0YXJ0ICsgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIC8vIEFwcGx5IHBhdGNoIGh1bmtzXG4gIGxldCBkaWZmT2Zmc2V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIHRvUG9zID0gaHVuay5vbGRTdGFydCArIGh1bmsub2Zmc2V0ICsgZGlmZk9mZnNldCAtIDE7XG4gICAgZGlmZk9mZnNldCArPSBodW5rLm5ld0xpbmVzIC0gaHVuay5vbGRMaW5lcztcblxuICAgIGlmICh0b1BvcyA8IDApIHsgLy8gQ3JlYXRpbmcgYSBuZXcgZmlsZVxuICAgICAgdG9Qb3MgPSAwO1xuICAgIH1cblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgbGV0IGxpbmUgPSBodW5rLmxpbmVzW2pdLFxuICAgICAgICAgIG9wZXJhdGlvbiA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lWzBdIDogJyAnKSxcbiAgICAgICAgICBjb250ZW50ID0gKGxpbmUubGVuZ3RoID4gMCA/IGxpbmUuc3Vic3RyKDEpIDogbGluZSksXG4gICAgICAgICAgZGVsaW1pdGVyID0gaHVuay5saW5lZGVsaW1pdGVyc1tqXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMSk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAxKTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAwLCBkZWxpbWl0ZXIpO1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICBsZXQgcHJldmlvdXNPcGVyYXRpb24gPSBodW5rLmxpbmVzW2ogLSAxXSA/IGh1bmsubGluZXNbaiAtIDFdWzBdIDogbnVsbDtcbiAgICAgICAgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgICByZW1vdmVFT0ZOTCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIGFkZEVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBFT0ZOTCBpbnNlcnRpb24vcmVtb3ZhbFxuICBpZiAocmVtb3ZlRU9GTkwpIHtcbiAgICB3aGlsZSAoIWxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgICBsaW5lcy5wb3AoKTtcbiAgICAgIGRlbGltaXRlcnMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgZGVsaW1pdGVycy5wdXNoKCdcXG4nKTtcbiAgfVxuICBmb3IgKGxldCBfayA9IDA7IF9rIDwgbGluZXMubGVuZ3RoIC0gMTsgX2srKykge1xuICAgIGxpbmVzW19rXSA9IGxpbmVzW19rXSArIGRlbGltaXRlcnNbX2tdO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCcnKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyh1bmlEaWZmLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50ID0gYXBwbHlQYXRjaChkYXRhLCBpbmRleCwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLnBhdGNoZWQoaW5kZXgsIHVwZGF0ZWRDb250ZW50LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZXNzSW5kZXgoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHByb2Nlc3NJbmRleCgpO1xufVxuIl19 + + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/parsePatch = parsePatch; + function parsePatch(uniDiff) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], + list = [], + i = 0; + + function parseIndex() { + var index = {}; + list.push(index); + + // Parse diff metadata + while (i < diffstr.length) { + var line = diffstr[i]; + + // File header found, end parsing diff metadata + if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { + break; + } + + // Diff index + var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); + if (header) { + index.index = header[1]; + } + + i++; + } + + // Parse file headers if they are defined. Unified diff requires them, but + // there's no technical issues to have an isolated hunk without file header + parseFileHeader(index); + parseFileHeader(index); + + // Parse hunks + index.hunks = []; + + while (i < diffstr.length) { + var _line = diffstr[i]; + + if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { + break; + } else if (/^@@/.test(_line)) { + index.hunks.push(parseHunk()); + } else if (_line && options.strict) { + // Ignore unexpected content unless in strict mode + throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); + } else { + i++; + } + } + } + + // Parses the --- and +++ headers, if none are found, no lines + // are consumed. + function parseFileHeader(index) { + var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); + if (fileHeader) { + var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; + var data = fileHeader[2].split('\t', 2); + var fileName = data[0].replace(/\\\\/g, '\\'); + if (/^".*"$/.test(fileName)) { + fileName = fileName.substr(1, fileName.length - 2); + } + index[keyPrefix + 'FileName'] = fileName; + index[keyPrefix + 'Header'] = (data[1] || '').trim(); + + i++; + } + } + + // Parses a hunk + // This assumes that we are at the start of a hunk. + function parseHunk() { + var chunkHeaderIndex = i, + chunkHeaderLine = diffstr[i++], + chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); + + var hunk = { + oldStart: +chunkHeader[1], + oldLines: +chunkHeader[2] || 1, + newStart: +chunkHeader[3], + newLines: +chunkHeader[4] || 1, + lines: [], + linedelimiters: [] + }; + + var addCount = 0, + removeCount = 0; + for (; i < diffstr.length; i++) { + // Lines starting with '---' could be mistaken for the "remove line" operation + // But they could be the header for the next file. Therefore prune such cases out. + if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) { + break; + } + var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0]; + + if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') { + hunk.lines.push(diffstr[i]); + hunk.linedelimiters.push(delimiters[i] || '\n'); + + if (operation === '+') { + addCount++; + } else if (operation === '-') { + removeCount++; + } else if (operation === ' ') { + addCount++; + removeCount++; + } + } else { + break; + } + } + + // Handle the empty block count case + if (!addCount && hunk.newLines === 1) { + hunk.newLines = 0; + } + if (!removeCount && hunk.oldLines === 1) { + hunk.oldLines = 0; + } + + // Perform optional sanity checking + if (options.strict) { + if (addCount !== hunk.newLines) { + throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); + } + if (removeCount !== hunk.oldLines) { + throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); + } + } + + return hunk; + } + + while (i < diffstr.length) { + parseIndex(); + } + + return list; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6WyJwYXJzZVBhdGNoIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJkaWZmc3RyIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJsaXN0IiwiaSIsInBhcnNlSW5kZXgiLCJpbmRleCIsInB1c2giLCJsZW5ndGgiLCJsaW5lIiwidGVzdCIsImhlYWRlciIsImV4ZWMiLCJwYXJzZUZpbGVIZWFkZXIiLCJodW5rcyIsInBhcnNlSHVuayIsInN0cmljdCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImZpbGVIZWFkZXIiLCJrZXlQcmVmaXgiLCJkYXRhIiwiZmlsZU5hbWUiLCJyZXBsYWNlIiwic3Vic3RyIiwidHJpbSIsImNodW5rSGVhZGVySW5kZXgiLCJjaHVua0hlYWRlckxpbmUiLCJjaHVua0hlYWRlciIsImh1bmsiLCJvbGRTdGFydCIsIm9sZExpbmVzIiwibmV3U3RhcnQiLCJuZXdMaW5lcyIsImxpbmVzIiwibGluZWRlbGltaXRlcnMiLCJhZGRDb3VudCIsInJlbW92ZUNvdW50IiwiaW5kZXhPZiIsIm9wZXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsVSxHQUFBQSxVO0FBQVQsU0FBU0EsVUFBVCxDQUFvQkMsT0FBcEIsRUFBMkM7QUFBQSxzREFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUNoRCxNQUFJQyxVQUFVRixRQUFRRyxLQUFSLENBQWMscUJBQWQsQ0FBZDtBQUFBLE1BQ0lDLGFBQWFKLFFBQVFLLEtBQVIsQ0FBYyxzQkFBZCxLQUF5QyxFQUQxRDtBQUFBLE1BRUlDLE9BQU8sRUFGWDtBQUFBLE1BR0lDLElBQUksQ0FIUjs7QUFLQSxXQUFTQyxVQUFULEdBQXNCO0FBQ3BCLFFBQUlDLFFBQVEsRUFBWjtBQUNBSCxTQUFLSSxJQUFMLENBQVVELEtBQVY7O0FBRUE7QUFDQSxXQUFPRixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6QixVQUFJQyxPQUFPVixRQUFRSyxDQUFSLENBQVg7O0FBRUE7QUFDQSxVQUFJLHdCQUF3Qk0sSUFBeEIsQ0FBNkJELElBQTdCLENBQUosRUFBd0M7QUFDdEM7QUFDRDs7QUFFRDtBQUNBLFVBQUlFLFNBQVUsMENBQUQsQ0FBNkNDLElBQTdDLENBQWtESCxJQUFsRCxDQUFiO0FBQ0EsVUFBSUUsTUFBSixFQUFZO0FBQ1ZMLGNBQU1BLEtBQU4sR0FBY0ssT0FBTyxDQUFQLENBQWQ7QUFDRDs7QUFFRFA7QUFDRDs7QUFFRDtBQUNBO0FBQ0FTLG9CQUFnQlAsS0FBaEI7QUFDQU8sb0JBQWdCUCxLQUFoQjs7QUFFQTtBQUNBQSxVQUFNUSxLQUFOLEdBQWMsRUFBZDs7QUFFQSxXQUFPVixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6QixVQUFJQyxRQUFPVixRQUFRSyxDQUFSLENBQVg7O0FBRUEsVUFBSSxpQ0FBaUNNLElBQWpDLENBQXNDRCxLQUF0QyxDQUFKLEVBQWlEO0FBQy9DO0FBQ0QsT0FGRCxNQUVPLElBQUksTUFBTUMsSUFBTixDQUFXRCxLQUFYLENBQUosRUFBc0I7QUFDM0JILGNBQU1RLEtBQU4sQ0FBWVAsSUFBWixDQUFpQlEsV0FBakI7QUFDRCxPQUZNLE1BRUEsSUFBSU4sU0FBUVgsUUFBUWtCLE1BQXBCLEVBQTRCO0FBQ2pDO0FBQ0EsY0FBTSxJQUFJQyxLQUFKLENBQVUsbUJBQW1CYixJQUFJLENBQXZCLElBQTRCLEdBQTVCLEdBQWtDYyxLQUFLQyxTQUFMLENBQWVWLEtBQWYsQ0FBNUMsQ0FBTjtBQUNELE9BSE0sTUFHQTtBQUNMTDtBQUNEO0FBQ0Y7QUFDRjs7QUFFRDtBQUNBO0FBQ0EsV0FBU1MsZUFBVCxDQUF5QlAsS0FBekIsRUFBZ0M7QUFDOUIsUUFBTWMsYUFBYyx1QkFBRCxDQUEwQlIsSUFBMUIsQ0FBK0JiLFFBQVFLLENBQVIsQ0FBL0IsQ0FBbkI7QUFDQSxRQUFJZ0IsVUFBSixFQUFnQjtBQUNkLFVBQUlDLFlBQVlELFdBQVcsQ0FBWCxNQUFrQixLQUFsQixHQUEwQixLQUExQixHQUFrQyxLQUFsRDtBQUNBLFVBQU1FLE9BQU9GLFdBQVcsQ0FBWCxFQUFjcEIsS0FBZCxDQUFvQixJQUFwQixFQUEwQixDQUExQixDQUFiO0FBQ0EsVUFBSXVCLFdBQVdELEtBQUssQ0FBTCxFQUFRRSxPQUFSLENBQWdCLE9BQWhCLEVBQXlCLElBQXpCLENBQWY7QUFDQSxVQUFJLFNBQVNkLElBQVQsQ0FBY2EsUUFBZCxDQUFKLEVBQTZCO0FBQzNCQSxtQkFBV0EsU0FBU0UsTUFBVCxDQUFnQixDQUFoQixFQUFtQkYsU0FBU2YsTUFBVCxHQUFrQixDQUFyQyxDQUFYO0FBQ0Q7QUFDREYsWUFBTWUsWUFBWSxVQUFsQixJQUFnQ0UsUUFBaEM7QUFDQWpCLFlBQU1lLFlBQVksUUFBbEIsSUFBOEIsQ0FBQ0MsS0FBSyxDQUFMLEtBQVcsRUFBWixFQUFnQkksSUFBaEIsRUFBOUI7O0FBRUF0QjtBQUNEO0FBQ0Y7O0FBRUQ7QUFDQTtBQUNBLFdBQVNXLFNBQVQsR0FBcUI7QUFDbkIsUUFBSVksbUJBQW1CdkIsQ0FBdkI7QUFBQSxRQUNJd0Isa0JBQWtCN0IsUUFBUUssR0FBUixDQUR0QjtBQUFBLFFBRUl5QixjQUFjRCxnQkFBZ0I1QixLQUFoQixDQUFzQiw0Q0FBdEIsQ0FGbEI7O0FBSUEsUUFBSThCLE9BQU87QUFDVEMsZ0JBQVUsQ0FBQ0YsWUFBWSxDQUFaLENBREY7QUFFVEcsZ0JBQVUsQ0FBQ0gsWUFBWSxDQUFaLENBQUQsSUFBbUIsQ0FGcEI7QUFHVEksZ0JBQVUsQ0FBQ0osWUFBWSxDQUFaLENBSEY7QUFJVEssZ0JBQVUsQ0FBQ0wsWUFBWSxDQUFaLENBQUQsSUFBbUIsQ0FKcEI7QUFLVE0sYUFBTyxFQUxFO0FBTVRDLHNCQUFnQjtBQU5QLEtBQVg7O0FBU0EsUUFBSUMsV0FBVyxDQUFmO0FBQUEsUUFDSUMsY0FBYyxDQURsQjtBQUVBLFdBQU9sQyxJQUFJTCxRQUFRUyxNQUFuQixFQUEyQkosR0FBM0IsRUFBZ0M7QUFDOUI7QUFDQTtBQUNBLFVBQUlMLFFBQVFLLENBQVIsRUFBV21DLE9BQVgsQ0FBbUIsTUFBbkIsTUFBK0IsQ0FBL0IsSUFDTW5DLElBQUksQ0FBSixHQUFRTCxRQUFRUyxNQUR0QixJQUVLVCxRQUFRSyxJQUFJLENBQVosRUFBZW1DLE9BQWYsQ0FBdUIsTUFBdkIsTUFBbUMsQ0FGeEMsSUFHS3hDLFFBQVFLLElBQUksQ0FBWixFQUFlbUMsT0FBZixDQUF1QixJQUF2QixNQUFpQyxDQUgxQyxFQUc2QztBQUN6QztBQUNIO0FBQ0QsVUFBSUMsWUFBYXpDLFFBQVFLLENBQVIsRUFBV0ksTUFBWCxJQUFxQixDQUFyQixJQUEwQkosS0FBTUwsUUFBUVMsTUFBUixHQUFpQixDQUFsRCxHQUF3RCxHQUF4RCxHQUE4RFQsUUFBUUssQ0FBUixFQUFXLENBQVgsQ0FBOUU7O0FBRUEsVUFBSW9DLGNBQWMsR0FBZCxJQUFxQkEsY0FBYyxHQUFuQyxJQUEwQ0EsY0FBYyxHQUF4RCxJQUErREEsY0FBYyxJQUFqRixFQUF1RjtBQUNyRlYsYUFBS0ssS0FBTCxDQUFXNUIsSUFBWCxDQUFnQlIsUUFBUUssQ0FBUixDQUFoQjtBQUNBMEIsYUFBS00sY0FBTCxDQUFvQjdCLElBQXBCLENBQXlCTixXQUFXRyxDQUFYLEtBQWlCLElBQTFDOztBQUVBLFlBQUlvQyxjQUFjLEdBQWxCLEVBQXVCO0FBQ3JCSDtBQUNELFNBRkQsTUFFTyxJQUFJRyxjQUFjLEdBQWxCLEVBQXVCO0FBQzVCRjtBQUNELFNBRk0sTUFFQSxJQUFJRSxjQUFjLEdBQWxCLEVBQXVCO0FBQzVCSDtBQUNBQztBQUNEO0FBQ0YsT0FaRCxNQVlPO0FBQ0w7QUFDRDtBQUNGOztBQUVEO0FBQ0EsUUFBSSxDQUFDRCxRQUFELElBQWFQLEtBQUtJLFFBQUwsS0FBa0IsQ0FBbkMsRUFBc0M7QUFDcENKLFdBQUtJLFFBQUwsR0FBZ0IsQ0FBaEI7QUFDRDtBQUNELFFBQUksQ0FBQ0ksV0FBRCxJQUFnQlIsS0FBS0UsUUFBTCxLQUFrQixDQUF0QyxFQUF5QztBQUN2Q0YsV0FBS0UsUUFBTCxHQUFnQixDQUFoQjtBQUNEOztBQUVEO0FBQ0EsUUFBSWxDLFFBQVFrQixNQUFaLEVBQW9CO0FBQ2xCLFVBQUlxQixhQUFhUCxLQUFLSSxRQUF0QixFQUFnQztBQUM5QixjQUFNLElBQUlqQixLQUFKLENBQVUsc0RBQXNEVSxtQkFBbUIsQ0FBekUsQ0FBVixDQUFOO0FBQ0Q7QUFDRCxVQUFJVyxnQkFBZ0JSLEtBQUtFLFFBQXpCLEVBQW1DO0FBQ2pDLGNBQU0sSUFBSWYsS0FBSixDQUFVLHdEQUF3RFUsbUJBQW1CLENBQTNFLENBQVYsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsV0FBT0csSUFBUDtBQUNEOztBQUVELFNBQU8xQixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6Qkg7QUFDRDs7QUFFRCxTQUFPRixJQUFQO0FBQ0QiLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRjaCh1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGRpZmZzdHIgPSB1bmlEaWZmLnNwbGl0KC9cXHJcXG58W1xcblxcdlxcZlxcclxceDg1XS8pLFxuICAgICAgZGVsaW1pdGVycyA9IHVuaURpZmYubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgbGlzdCA9IFtdLFxuICAgICAgaSA9IDA7XG5cbiAgZnVuY3Rpb24gcGFyc2VJbmRleCgpIHtcbiAgICBsZXQgaW5kZXggPSB7fTtcbiAgICBsaXN0LnB1c2goaW5kZXgpO1xuXG4gICAgLy8gUGFyc2UgZGlmZiBtZXRhZGF0YVxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgLy8gRmlsZSBoZWFkZXIgZm91bmQsIGVuZCBwYXJzaW5nIGRpZmYgbWV0YWRhdGFcbiAgICAgIGlmICgvXihcXC1cXC1cXC18XFwrXFwrXFwrfEBAKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gRGlmZiBpbmRleFxuICAgICAgbGV0IGhlYWRlciA9ICgvXig/OkluZGV4OnxkaWZmKD86IC1yIFxcdyspKylcXHMrKC4rPylcXHMqJC8pLmV4ZWMobGluZSk7XG4gICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgIGluZGV4LmluZGV4ID0gaGVhZGVyWzFdO1xuICAgICAgfVxuXG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgLy8gUGFyc2UgZmlsZSBoZWFkZXJzIGlmIHRoZXkgYXJlIGRlZmluZWQuIFVuaWZpZWQgZGlmZiByZXF1aXJlcyB0aGVtLCBidXRcbiAgICAvLyB0aGVyZSdzIG5vIHRlY2huaWNhbCBpc3N1ZXMgdG8gaGF2ZSBhbiBpc29sYXRlZCBodW5rIHdpdGhvdXQgZmlsZSBoZWFkZXJcbiAgICBwYXJzZUZpbGVIZWFkZXIoaW5kZXgpO1xuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG5cbiAgICAvLyBQYXJzZSBodW5rc1xuICAgIGluZGV4Lmh1bmtzID0gW107XG5cbiAgICB3aGlsZSAoaSA8IGRpZmZzdHIubGVuZ3RoKSB7XG4gICAgICBsZXQgbGluZSA9IGRpZmZzdHJbaV07XG5cbiAgICAgIGlmICgvXihJbmRleDp8ZGlmZnxcXC1cXC1cXC18XFwrXFwrXFwrKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAoL15AQC8udGVzdChsaW5lKSkge1xuICAgICAgICBpbmRleC5odW5rcy5wdXNoKHBhcnNlSHVuaygpKTtcbiAgICAgIH0gZWxzZSBpZiAobGluZSAmJiBvcHRpb25zLnN0cmljdCkge1xuICAgICAgICAvLyBJZ25vcmUgdW5leHBlY3RlZCBjb250ZW50IHVubGVzcyBpbiBzdHJpY3QgbW9kZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluZSAnICsgKGkgKyAxKSArICcgJyArIEpTT04uc3RyaW5naWZ5KGxpbmUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYXJzZXMgdGhlIC0tLSBhbmQgKysrIGhlYWRlcnMsIGlmIG5vbmUgYXJlIGZvdW5kLCBubyBsaW5lc1xuICAvLyBhcmUgY29uc3VtZWQuXG4gIGZ1bmN0aW9uIHBhcnNlRmlsZUhlYWRlcihpbmRleCkge1xuICAgIGNvbnN0IGZpbGVIZWFkZXIgPSAoL14oLS0tfFxcK1xcK1xcKylcXHMrKC4qKSQvKS5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgY29uc3QgZGF0YSA9IGZpbGVIZWFkZXJbMl0uc3BsaXQoJ1xcdCcsIDIpO1xuICAgICAgbGV0IGZpbGVOYW1lID0gZGF0YVswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnXFxcXCcpO1xuICAgICAgaWYgKC9eXCIuKlwiJC8udGVzdChmaWxlTmFtZSkpIHtcbiAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdWJzdHIoMSwgZmlsZU5hbWUubGVuZ3RoIC0gMik7XG4gICAgICB9XG4gICAgICBpbmRleFtrZXlQcmVmaXggKyAnRmlsZU5hbWUnXSA9IGZpbGVOYW1lO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0hlYWRlciddID0gKGRhdGFbMV0gfHwgJycpLnRyaW0oKTtcblxuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyBhIGh1bmtcbiAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGh1bmsuXG4gIGZ1bmN0aW9uIHBhcnNlSHVuaygpIHtcbiAgICBsZXQgY2h1bmtIZWFkZXJJbmRleCA9IGksXG4gICAgICAgIGNodW5rSGVhZGVyTGluZSA9IGRpZmZzdHJbaSsrXSxcbiAgICAgICAgY2h1bmtIZWFkZXIgPSBjaHVua0hlYWRlckxpbmUuc3BsaXQoL0BAIC0oXFxkKykoPzosKFxcZCspKT8gXFwrKFxcZCspKD86LChcXGQrKSk/IEBALyk7XG5cbiAgICBsZXQgaHVuayA9IHtcbiAgICAgIG9sZFN0YXJ0OiArY2h1bmtIZWFkZXJbMV0sXG4gICAgICBvbGRMaW5lczogK2NodW5rSGVhZGVyWzJdIHx8IDEsXG4gICAgICBuZXdTdGFydDogK2NodW5rSGVhZGVyWzNdLFxuICAgICAgbmV3TGluZXM6ICtjaHVua0hlYWRlcls0XSB8fCAxLFxuICAgICAgbGluZXM6IFtdLFxuICAgICAgbGluZWRlbGltaXRlcnM6IFtdXG4gICAgfTtcblxuICAgIGxldCBhZGRDb3VudCA9IDAsXG4gICAgICAgIHJlbW92ZUNvdW50ID0gMDtcbiAgICBmb3IgKDsgaSA8IGRpZmZzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIExpbmVzIHN0YXJ0aW5nIHdpdGggJy0tLScgY291bGQgYmUgbWlzdGFrZW4gZm9yIHRoZSBcInJlbW92ZSBsaW5lXCIgb3BlcmF0aW9uXG4gICAgICAvLyBCdXQgdGhleSBjb3VsZCBiZSB0aGUgaGVhZGVyIGZvciB0aGUgbmV4dCBmaWxlLiBUaGVyZWZvcmUgcHJ1bmUgc3VjaCBjYXNlcyBvdXQuXG4gICAgICBpZiAoZGlmZnN0cltpXS5pbmRleE9mKCctLS0gJykgPT09IDBcbiAgICAgICAgICAgICYmIChpICsgMiA8IGRpZmZzdHIubGVuZ3RoKVxuICAgICAgICAgICAgJiYgZGlmZnN0cltpICsgMV0uaW5kZXhPZignKysrICcpID09PSAwXG4gICAgICAgICAgICAmJiBkaWZmc3RyW2kgKyAyXS5pbmRleE9mKCdAQCcpID09PSAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBsZXQgb3BlcmF0aW9uID0gKGRpZmZzdHJbaV0ubGVuZ3RoID09IDAgJiYgaSAhPSAoZGlmZnN0ci5sZW5ndGggLSAxKSkgPyAnICcgOiBkaWZmc3RyW2ldWzBdO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnKycgfHwgb3BlcmF0aW9uID09PSAnLScgfHwgb3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgaHVuay5saW5lcy5wdXNoKGRpZmZzdHJbaV0pO1xuICAgICAgICBodW5rLmxpbmVkZWxpbWl0ZXJzLnB1c2goZGVsaW1pdGVyc1tpXSB8fCAnXFxuJyk7XG5cbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnICcpIHtcbiAgICAgICAgICBhZGRDb3VudCsrO1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgYmxvY2sgY291bnQgY2FzZVxuICAgIGlmICghYWRkQ291bnQgJiYgaHVuay5uZXdMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5uZXdMaW5lcyA9IDA7XG4gICAgfVxuICAgIGlmICghcmVtb3ZlQ291bnQgJiYgaHVuay5vbGRMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5vbGRMaW5lcyA9IDA7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybSBvcHRpb25hbCBzYW5pdHkgY2hlY2tpbmdcbiAgICBpZiAob3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgIGlmIChhZGRDb3VudCAhPT0gaHVuay5uZXdMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FkZGVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZW1vdmVDb3VudCAhPT0gaHVuay5vbGRMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbW92ZWQgbGluZSBjb3VudCBkaWQgbm90IG1hdGNoIGZvciBodW5rIGF0IGxpbmUgJyArIChjaHVua0hlYWRlckluZGV4ICsgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBodW5rO1xuICB9XG5cbiAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgIHBhcnNlSW5kZXgoKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0O1xufVxuIl19 + + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + + exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) { + var wantForward = true, + backwardExhausted = false, + forwardExhausted = false, + localOffset = 1; + + return function iterator() { + if (wantForward && !forwardExhausted) { + if (backwardExhausted) { + localOffset++; + } else { + wantForward = false; + } + + // Check if trying to fit beyond text length, and if not, check it fits + // after offset location (or desired location on first iteration) + if (start + localOffset <= maxLine) { + return localOffset; + } + + forwardExhausted = true; + } + + if (!backwardExhausted) { + if (!forwardExhausted) { + wantForward = true; + } + + // Check if trying to fit before text beginning, and if not, check it fits + // before offset location + if (minLine <= start - localOffset) { + return -localOffset++; + } + + backwardExhausted = true; + return iterator(); + } + + // We tried to fit hunk before text beginning and beyond text length, then + // hunk can't fit on the text. Return undefined + }; + }; + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbInN0YXJ0IiwibWluTGluZSIsIm1heExpbmUiLCJ3YW50Rm9yd2FyZCIsImJhY2t3YXJkRXhoYXVzdGVkIiwiZm9yd2FyZEV4aGF1c3RlZCIsImxvY2FsT2Zmc2V0IiwiaXRlcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7NENBR2UsVUFBU0EsS0FBVCxFQUFnQkMsT0FBaEIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQy9DLE1BQUlDLGNBQWMsSUFBbEI7QUFBQSxNQUNJQyxvQkFBb0IsS0FEeEI7QUFBQSxNQUVJQyxtQkFBbUIsS0FGdkI7QUFBQSxNQUdJQyxjQUFjLENBSGxCOztBQUtBLFNBQU8sU0FBU0MsUUFBVCxHQUFvQjtBQUN6QixRQUFJSixlQUFlLENBQUNFLGdCQUFwQixFQUFzQztBQUNwQyxVQUFJRCxpQkFBSixFQUF1QjtBQUNyQkU7QUFDRCxPQUZELE1BRU87QUFDTEgsc0JBQWMsS0FBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJSCxRQUFRTSxXQUFSLElBQXVCSixPQUEzQixFQUFvQztBQUNsQyxlQUFPSSxXQUFQO0FBQ0Q7O0FBRURELHlCQUFtQixJQUFuQjtBQUNEOztBQUVELFFBQUksQ0FBQ0QsaUJBQUwsRUFBd0I7QUFDdEIsVUFBSSxDQUFDQyxnQkFBTCxFQUF1QjtBQUNyQkYsc0JBQWMsSUFBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJRixXQUFXRCxRQUFRTSxXQUF2QixFQUFvQztBQUNsQyxlQUFPLENBQUNBLGFBQVI7QUFDRDs7QUFFREYsMEJBQW9CLElBQXBCO0FBQ0EsYUFBT0csVUFBUDtBQUNEOztBQUVEO0FBQ0E7QUFDRCxHQWxDRDtBQW1DRCxDIiwiZmlsZSI6ImRpc3RhbmNlLWl0ZXJhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSXRlcmF0b3IgdGhhdCB0cmF2ZXJzZXMgaW4gdGhlIHJhbmdlIG9mIFttaW4sIG1heF0sIHN0ZXBwaW5nXG4vLyBieSBkaXN0YW5jZSBmcm9tIGEgZ2l2ZW4gc3RhcnQgcG9zaXRpb24uIEkuZS4gZm9yIFswLCA0XSwgd2l0aFxuLy8gc3RhcnQgb2YgMiwgdGhpcyB3aWxsIGl0ZXJhdGUgMiwgMywgMSwgNCwgMC5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBtaW5MaW5lLCBtYXhMaW5lKSB7XG4gIGxldCB3YW50Rm9yd2FyZCA9IHRydWUsXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgbG9jYWxPZmZzZXQgPSAxO1xuXG4gIHJldHVybiBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICBpZiAod2FudEZvcndhcmQgJiYgIWZvcndhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmIChiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICBsb2NhbE9mZnNldCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FudEZvcndhcmQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZXlvbmQgdGV4dCBsZW5ndGgsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGFmdGVyIG9mZnNldCBsb2NhdGlvbiAob3IgZGVzaXJlZCBsb2NhdGlvbiBvbiBmaXJzdCBpdGVyYXRpb24pXG4gICAgICBpZiAoc3RhcnQgKyBsb2NhbE9mZnNldCA8PSBtYXhMaW5lKSB7XG4gICAgICAgIHJldHVybiBsb2NhbE9mZnNldDtcbiAgICAgIH1cblxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgaWYgKCFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZWZvcmUgdGV4dCBiZWdpbm5pbmcsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGJlZm9yZSBvZmZzZXQgbG9jYXRpb25cbiAgICAgIGlmIChtaW5MaW5lIDw9IHN0YXJ0IC0gbG9jYWxPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIC1sb2NhbE9mZnNldCsrO1xuICAgICAgfVxuXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgICByZXR1cm4gaXRlcmF0b3IoKTtcbiAgICB9XG5cbiAgICAvLyBXZSB0cmllZCB0byBmaXQgaHVuayBiZWZvcmUgdGV4dCBiZWdpbm5pbmcgYW5kIGJleW9uZCB0ZXh0IGxlbmd0aCwgdGhlblxuICAgIC8vIGh1bmsgY2FuJ3QgZml0IG9uIHRoZSB0ZXh0LiBSZXR1cm4gdW5kZWZpbmVkXG4gIH07XG59XG4iXX0= + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/calcLineCount = calcLineCount; + /*istanbul ignore start*/exports. /*istanbul ignore end*/merge = merge; + + var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_array = __webpack_require__(15) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + + /*istanbul ignore end*/function calcLineCount(hunk) { + /*istanbul ignore start*/var _calcOldNewLineCount = /*istanbul ignore end*/calcOldNewLineCount(hunk.lines), + oldLines = _calcOldNewLineCount.oldLines, + newLines = _calcOldNewLineCount.newLines; + + if (oldLines !== undefined) { + hunk.oldLines = oldLines; + } else { + delete hunk.oldLines; + } + + if (newLines !== undefined) { + hunk.newLines = newLines; + } else { + delete hunk.newLines; + } + } + + function merge(mine, theirs, base) { + mine = loadPatch(mine, base); + theirs = loadPatch(theirs, base); + + var ret = {}; + + // For index we just let it pass through as it doesn't have any necessary meaning. + // Leaving sanity checks on this to the API consumer that may know more about the + // meaning in their own context. + if (mine.index || theirs.index) { + ret.index = mine.index || theirs.index; + } + + if (mine.newFileName || theirs.newFileName) { + if (!fileNameChanged(mine)) { + // No header or no change in ours, use theirs (and ours if theirs does not exist) + ret.oldFileName = theirs.oldFileName || mine.oldFileName; + ret.newFileName = theirs.newFileName || mine.newFileName; + ret.oldHeader = theirs.oldHeader || mine.oldHeader; + ret.newHeader = theirs.newHeader || mine.newHeader; + } else if (!fileNameChanged(theirs)) { + // No header or no change in theirs, use ours + ret.oldFileName = mine.oldFileName; + ret.newFileName = mine.newFileName; + ret.oldHeader = mine.oldHeader; + ret.newHeader = mine.newHeader; + } else { + // Both changed... figure it out + ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName); + ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName); + ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader); + ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader); + } + } + + ret.hunks = []; + + var mineIndex = 0, + theirsIndex = 0, + mineOffset = 0, + theirsOffset = 0; + + while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) { + var mineCurrent = mine.hunks[mineIndex] || { oldStart: Infinity }, + theirsCurrent = theirs.hunks[theirsIndex] || { oldStart: Infinity }; + + if (hunkBefore(mineCurrent, theirsCurrent)) { + // This patch does not overlap with any of the others, yay. + ret.hunks.push(cloneHunk(mineCurrent, mineOffset)); + mineIndex++; + theirsOffset += mineCurrent.newLines - mineCurrent.oldLines; + } else if (hunkBefore(theirsCurrent, mineCurrent)) { + // This patch does not overlap with any of the others, yay. + ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset)); + theirsIndex++; + mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines; + } else { + // Overlap, merge as best we can + var mergedHunk = { + oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart), + oldLines: 0, + newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset), + newLines: 0, + lines: [] + }; + mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines); + theirsIndex++; + mineIndex++; + + ret.hunks.push(mergedHunk); + } + } + + return ret; + } + + function loadPatch(param, base) { + if (typeof param === 'string') { + if (/^@@/m.test(param) || /^Index:/m.test(param)) { + return (/*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(param)[0] + ); + } + + if (!base) { + throw new Error('Must provide a base reference or pass in a patch'); + } + return (/*istanbul ignore start*/(0, _create.structuredPatch) /*istanbul ignore end*/(undefined, undefined, base, param) + ); + } + + return param; + } + + function fileNameChanged(patch) { + return patch.newFileName && patch.newFileName !== patch.oldFileName; + } + + function selectField(index, mine, theirs) { + if (mine === theirs) { + return mine; + } else { + index.conflict = true; + return { mine: mine, theirs: theirs }; + } + } + + function hunkBefore(test, check) { + return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart; + } + + function cloneHunk(hunk, offset) { + return { + oldStart: hunk.oldStart, oldLines: hunk.oldLines, + newStart: hunk.newStart + offset, newLines: hunk.newLines, + lines: hunk.lines + }; + } + + function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { + // This will generally result in a conflicted hunk, but there are cases where the context + // is the only overlap where we can successfully merge the content here. + var mine = { offset: mineOffset, lines: mineLines, index: 0 }, + their = { offset: theirOffset, lines: theirLines, index: 0 }; + + // Handle any leading content + insertLeading(hunk, mine, their); + insertLeading(hunk, their, mine); + + // Now in the overlap content. Scan through and select the best changes from each. + while (mine.index < mine.lines.length && their.index < their.lines.length) { + var mineCurrent = mine.lines[mine.index], + theirCurrent = their.lines[their.index]; + + if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) { + // Both modified ... + mutualChange(hunk, mine, their); + } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') { + /*istanbul ignore start*/var _hunk$lines; + + /*istanbul ignore end*/ // Mine inserted + /*istanbul ignore start*/(_hunk$lines = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(mine))); + } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') { + /*istanbul ignore start*/var _hunk$lines2; + + /*istanbul ignore end*/ // Theirs inserted + /*istanbul ignore start*/(_hunk$lines2 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(their))); + } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') { + // Mine removed or edited + removal(hunk, mine, their); + } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') { + // Their removed or edited + removal(hunk, their, mine, true); + } else if (mineCurrent === theirCurrent) { + // Context identity + hunk.lines.push(mineCurrent); + mine.index++; + their.index++; + } else { + // Context mismatch + conflict(hunk, collectChange(mine), collectChange(their)); + } + } + + // Now push anything that may be remaining + insertTrailing(hunk, mine); + insertTrailing(hunk, their); + + calcLineCount(hunk); + } + + function mutualChange(hunk, mine, their) { + var myChanges = collectChange(mine), + theirChanges = collectChange(their); + + if (allRemoves(myChanges) && allRemoves(theirChanges)) { + // Special case for remove changes that are supersets of one another + if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { + /*istanbul ignore start*/var _hunk$lines3; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines3 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges)); + return; + } else if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { + /*istanbul ignore start*/var _hunk$lines4; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines4 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines4 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges)); + return; + } + } else if ( /*istanbul ignore start*/(0, _array.arrayEqual) /*istanbul ignore end*/(myChanges, theirChanges)) { + /*istanbul ignore start*/var _hunk$lines5; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines5 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines5 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges)); + return; + } + + conflict(hunk, myChanges, theirChanges); + } + + function removal(hunk, mine, their, swap) { + var myChanges = collectChange(mine), + theirChanges = collectContext(their, myChanges); + if (theirChanges.merged) { + /*istanbul ignore start*/var _hunk$lines6; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines6 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines6 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges.merged)); + } else { + conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); + } + } + + function conflict(hunk, mine, their) { + hunk.conflict = true; + hunk.lines.push({ + conflict: true, + mine: mine, + theirs: their + }); + } + + function insertLeading(hunk, insert, their) { + while (insert.offset < their.offset && insert.index < insert.lines.length) { + var line = insert.lines[insert.index++]; + hunk.lines.push(line); + insert.offset++; + } + } + function insertTrailing(hunk, insert) { + while (insert.index < insert.lines.length) { + var line = insert.lines[insert.index++]; + hunk.lines.push(line); + } + } + + function collectChange(state) { + var ret = [], + operation = state.lines[state.index][0]; + while (state.index < state.lines.length) { + var line = state.lines[state.index]; + + // Group additions that are immediately after subtractions and treat them as one "atomic" modify change. + if (operation === '-' && line[0] === '+') { + operation = '+'; + } + + if (operation === line[0]) { + ret.push(line); + state.index++; + } else { + break; + } + } + + return ret; + } + function collectContext(state, matchChanges) { + var changes = [], + merged = [], + matchIndex = 0, + contextChanges = false, + conflicted = false; + while (matchIndex < matchChanges.length && state.index < state.lines.length) { + var change = state.lines[state.index], + match = matchChanges[matchIndex]; + + // Once we've hit our add, then we are done + if (match[0] === '+') { + break; + } + + contextChanges = contextChanges || change[0] !== ' '; + + merged.push(match); + matchIndex++; + + // Consume any additions in the other block as a conflict to attempt + // to pull in the remaining context after this + if (change[0] === '+') { + conflicted = true; + + while (change[0] === '+') { + changes.push(change); + change = state.lines[++state.index]; + } + } + + if (match.substr(1) === change.substr(1)) { + changes.push(change); + state.index++; + } else { + conflicted = true; + } + } + + if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) { + conflicted = true; + } + + if (conflicted) { + return changes; + } + + while (matchIndex < matchChanges.length) { + merged.push(matchChanges[matchIndex++]); + } + + return { + merged: merged, + changes: changes + }; + } + + function allRemoves(changes) { + return changes.reduce(function (prev, change) { + return prev && change[0] === '-'; + }, true); + } + function skipRemoveSuperset(state, removeChanges, delta) { + for (var i = 0; i < delta; i++) { + var changeContent = removeChanges[removeChanges.length - delta + i].substr(1); + if (state.lines[state.index + i] !== ' ' + changeContent) { + return false; + } + } + + state.index += delta; + return true; + } + + function calcOldNewLineCount(lines) { + var oldLines = 0; + var newLines = 0; + + lines.forEach(function (line) { + if (typeof line !== 'string') { + var myCount = calcOldNewLineCount(line.mine); + var theirCount = calcOldNewLineCount(line.theirs); + + if (oldLines !== undefined) { + if (myCount.oldLines === theirCount.oldLines) { + oldLines += myCount.oldLines; + } else { + oldLines = undefined; + } + } + + if (newLines !== undefined) { + if (myCount.newLines === theirCount.newLines) { + newLines += myCount.newLines; + } else { + newLines = undefined; + } + } + } else { + if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) { + newLines++; + } + if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) { + oldLines++; + } + } + }); + + return { oldLines: oldLines, newLines: newLines }; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9tZXJnZS5qcyJdLCJuYW1lcyI6WyJjYWxjTGluZUNvdW50IiwibWVyZ2UiLCJodW5rIiwiY2FsY09sZE5ld0xpbmVDb3VudCIsImxpbmVzIiwib2xkTGluZXMiLCJuZXdMaW5lcyIsInVuZGVmaW5lZCIsIm1pbmUiLCJ0aGVpcnMiLCJiYXNlIiwibG9hZFBhdGNoIiwicmV0IiwiaW5kZXgiLCJuZXdGaWxlTmFtZSIsImZpbGVOYW1lQ2hhbmdlZCIsIm9sZEZpbGVOYW1lIiwib2xkSGVhZGVyIiwibmV3SGVhZGVyIiwic2VsZWN0RmllbGQiLCJodW5rcyIsIm1pbmVJbmRleCIsInRoZWlyc0luZGV4IiwibWluZU9mZnNldCIsInRoZWlyc09mZnNldCIsImxlbmd0aCIsIm1pbmVDdXJyZW50Iiwib2xkU3RhcnQiLCJJbmZpbml0eSIsInRoZWlyc0N1cnJlbnQiLCJodW5rQmVmb3JlIiwicHVzaCIsImNsb25lSHVuayIsIm1lcmdlZEh1bmsiLCJNYXRoIiwibWluIiwibmV3U3RhcnQiLCJtZXJnZUxpbmVzIiwicGFyYW0iLCJ0ZXN0IiwiRXJyb3IiLCJwYXRjaCIsImNvbmZsaWN0IiwiY2hlY2siLCJvZmZzZXQiLCJtaW5lTGluZXMiLCJ0aGVpck9mZnNldCIsInRoZWlyTGluZXMiLCJ0aGVpciIsImluc2VydExlYWRpbmciLCJ0aGVpckN1cnJlbnQiLCJtdXR1YWxDaGFuZ2UiLCJjb2xsZWN0Q2hhbmdlIiwicmVtb3ZhbCIsImluc2VydFRyYWlsaW5nIiwibXlDaGFuZ2VzIiwidGhlaXJDaGFuZ2VzIiwiYWxsUmVtb3ZlcyIsInNraXBSZW1vdmVTdXBlcnNldCIsInN3YXAiLCJjb2xsZWN0Q29udGV4dCIsIm1lcmdlZCIsImluc2VydCIsImxpbmUiLCJzdGF0ZSIsIm9wZXJhdGlvbiIsIm1hdGNoQ2hhbmdlcyIsImNoYW5nZXMiLCJtYXRjaEluZGV4IiwiY29udGV4dENoYW5nZXMiLCJjb25mbGljdGVkIiwiY2hhbmdlIiwibWF0Y2giLCJzdWJzdHIiLCJyZWR1Y2UiLCJwcmV2IiwicmVtb3ZlQ2hhbmdlcyIsImRlbHRhIiwiaSIsImNoYW5nZUNvbnRlbnQiLCJmb3JFYWNoIiwibXlDb3VudCIsInRoZWlyQ291bnQiXSwibWFwcGluZ3MiOiI7OztnQ0FLZ0JBLGEsR0FBQUEsYTt5REFnQkFDLEssR0FBQUEsSzs7QUFyQmhCOztBQUNBOztBQUVBOzs7O3VCQUVPLFNBQVNELGFBQVQsQ0FBdUJFLElBQXZCLEVBQTZCO0FBQUEsNkVBQ0xDLG9CQUFvQkQsS0FBS0UsS0FBekIsQ0FESztBQUFBLE1BQzNCQyxRQUQyQix3QkFDM0JBLFFBRDJCO0FBQUEsTUFDakJDLFFBRGlCLHdCQUNqQkEsUUFEaUI7O0FBR2xDLE1BQUlELGFBQWFFLFNBQWpCLEVBQTRCO0FBQzFCTCxTQUFLRyxRQUFMLEdBQWdCQSxRQUFoQjtBQUNELEdBRkQsTUFFTztBQUNMLFdBQU9ILEtBQUtHLFFBQVo7QUFDRDs7QUFFRCxNQUFJQyxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQkwsU0FBS0ksUUFBTCxHQUFnQkEsUUFBaEI7QUFDRCxHQUZELE1BRU87QUFDTCxXQUFPSixLQUFLSSxRQUFaO0FBQ0Q7QUFDRjs7QUFFTSxTQUFTTCxLQUFULENBQWVPLElBQWYsRUFBcUJDLE1BQXJCLEVBQTZCQyxJQUE3QixFQUFtQztBQUN4Q0YsU0FBT0csVUFBVUgsSUFBVixFQUFnQkUsSUFBaEIsQ0FBUDtBQUNBRCxXQUFTRSxVQUFVRixNQUFWLEVBQWtCQyxJQUFsQixDQUFUOztBQUVBLE1BQUlFLE1BQU0sRUFBVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFJSixLQUFLSyxLQUFMLElBQWNKLE9BQU9JLEtBQXpCLEVBQWdDO0FBQzlCRCxRQUFJQyxLQUFKLEdBQVlMLEtBQUtLLEtBQUwsSUFBY0osT0FBT0ksS0FBakM7QUFDRDs7QUFFRCxNQUFJTCxLQUFLTSxXQUFMLElBQW9CTCxPQUFPSyxXQUEvQixFQUE0QztBQUMxQyxRQUFJLENBQUNDLGdCQUFnQlAsSUFBaEIsQ0FBTCxFQUE0QjtBQUMxQjtBQUNBSSxVQUFJSSxXQUFKLEdBQWtCUCxPQUFPTyxXQUFQLElBQXNCUixLQUFLUSxXQUE3QztBQUNBSixVQUFJRSxXQUFKLEdBQWtCTCxPQUFPSyxXQUFQLElBQXNCTixLQUFLTSxXQUE3QztBQUNBRixVQUFJSyxTQUFKLEdBQWdCUixPQUFPUSxTQUFQLElBQW9CVCxLQUFLUyxTQUF6QztBQUNBTCxVQUFJTSxTQUFKLEdBQWdCVCxPQUFPUyxTQUFQLElBQW9CVixLQUFLVSxTQUF6QztBQUNELEtBTkQsTUFNTyxJQUFJLENBQUNILGdCQUFnQk4sTUFBaEIsQ0FBTCxFQUE4QjtBQUNuQztBQUNBRyxVQUFJSSxXQUFKLEdBQWtCUixLQUFLUSxXQUF2QjtBQUNBSixVQUFJRSxXQUFKLEdBQWtCTixLQUFLTSxXQUF2QjtBQUNBRixVQUFJSyxTQUFKLEdBQWdCVCxLQUFLUyxTQUFyQjtBQUNBTCxVQUFJTSxTQUFKLEdBQWdCVixLQUFLVSxTQUFyQjtBQUNELEtBTk0sTUFNQTtBQUNMO0FBQ0FOLFVBQUlJLFdBQUosR0FBa0JHLFlBQVlQLEdBQVosRUFBaUJKLEtBQUtRLFdBQXRCLEVBQW1DUCxPQUFPTyxXQUExQyxDQUFsQjtBQUNBSixVQUFJRSxXQUFKLEdBQWtCSyxZQUFZUCxHQUFaLEVBQWlCSixLQUFLTSxXQUF0QixFQUFtQ0wsT0FBT0ssV0FBMUMsQ0FBbEI7QUFDQUYsVUFBSUssU0FBSixHQUFnQkUsWUFBWVAsR0FBWixFQUFpQkosS0FBS1MsU0FBdEIsRUFBaUNSLE9BQU9RLFNBQXhDLENBQWhCO0FBQ0FMLFVBQUlNLFNBQUosR0FBZ0JDLFlBQVlQLEdBQVosRUFBaUJKLEtBQUtVLFNBQXRCLEVBQWlDVCxPQUFPUyxTQUF4QyxDQUFoQjtBQUNEO0FBQ0Y7O0FBRUROLE1BQUlRLEtBQUosR0FBWSxFQUFaOztBQUVBLE1BQUlDLFlBQVksQ0FBaEI7QUFBQSxNQUNJQyxjQUFjLENBRGxCO0FBQUEsTUFFSUMsYUFBYSxDQUZqQjtBQUFBLE1BR0lDLGVBQWUsQ0FIbkI7O0FBS0EsU0FBT0gsWUFBWWIsS0FBS1ksS0FBTCxDQUFXSyxNQUF2QixJQUFpQ0gsY0FBY2IsT0FBT1csS0FBUCxDQUFhSyxNQUFuRSxFQUEyRTtBQUN6RSxRQUFJQyxjQUFjbEIsS0FBS1ksS0FBTCxDQUFXQyxTQUFYLEtBQXlCLEVBQUNNLFVBQVVDLFFBQVgsRUFBM0M7QUFBQSxRQUNJQyxnQkFBZ0JwQixPQUFPVyxLQUFQLENBQWFFLFdBQWIsS0FBNkIsRUFBQ0ssVUFBVUMsUUFBWCxFQURqRDs7QUFHQSxRQUFJRSxXQUFXSixXQUFYLEVBQXdCRyxhQUF4QixDQUFKLEVBQTRDO0FBQzFDO0FBQ0FqQixVQUFJUSxLQUFKLENBQVVXLElBQVYsQ0FBZUMsVUFBVU4sV0FBVixFQUF1QkgsVUFBdkIsQ0FBZjtBQUNBRjtBQUNBRyxzQkFBZ0JFLFlBQVlwQixRQUFaLEdBQXVCb0IsWUFBWXJCLFFBQW5EO0FBQ0QsS0FMRCxNQUtPLElBQUl5QixXQUFXRCxhQUFYLEVBQTBCSCxXQUExQixDQUFKLEVBQTRDO0FBQ2pEO0FBQ0FkLFVBQUlRLEtBQUosQ0FBVVcsSUFBVixDQUFlQyxVQUFVSCxhQUFWLEVBQXlCTCxZQUF6QixDQUFmO0FBQ0FGO0FBQ0FDLG9CQUFjTSxjQUFjdkIsUUFBZCxHQUF5QnVCLGNBQWN4QixRQUFyRDtBQUNELEtBTE0sTUFLQTtBQUNMO0FBQ0EsVUFBSTRCLGFBQWE7QUFDZk4sa0JBQVVPLEtBQUtDLEdBQUwsQ0FBU1QsWUFBWUMsUUFBckIsRUFBK0JFLGNBQWNGLFFBQTdDLENBREs7QUFFZnRCLGtCQUFVLENBRks7QUFHZitCLGtCQUFVRixLQUFLQyxHQUFMLENBQVNULFlBQVlVLFFBQVosR0FBdUJiLFVBQWhDLEVBQTRDTSxjQUFjRixRQUFkLEdBQXlCSCxZQUFyRSxDQUhLO0FBSWZsQixrQkFBVSxDQUpLO0FBS2ZGLGVBQU87QUFMUSxPQUFqQjtBQU9BaUMsaUJBQVdKLFVBQVgsRUFBdUJQLFlBQVlDLFFBQW5DLEVBQTZDRCxZQUFZdEIsS0FBekQsRUFBZ0V5QixjQUFjRixRQUE5RSxFQUF3RkUsY0FBY3pCLEtBQXRHO0FBQ0FrQjtBQUNBRDs7QUFFQVQsVUFBSVEsS0FBSixDQUFVVyxJQUFWLENBQWVFLFVBQWY7QUFDRDtBQUNGOztBQUVELFNBQU9yQixHQUFQO0FBQ0Q7O0FBRUQsU0FBU0QsU0FBVCxDQUFtQjJCLEtBQW5CLEVBQTBCNUIsSUFBMUIsRUFBZ0M7QUFDOUIsTUFBSSxPQUFPNEIsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QixRQUFJLE9BQU9DLElBQVAsQ0FBWUQsS0FBWixLQUF1QixXQUFXQyxJQUFYLENBQWdCRCxLQUFoQixDQUEzQixFQUFvRDtBQUNsRCxhQUFPLHlFQUFXQSxLQUFYLEVBQWtCLENBQWxCO0FBQVA7QUFDRDs7QUFFRCxRQUFJLENBQUM1QixJQUFMLEVBQVc7QUFDVCxZQUFNLElBQUk4QixLQUFKLENBQVUsa0RBQVYsQ0FBTjtBQUNEO0FBQ0QsV0FBTywrRUFBZ0JqQyxTQUFoQixFQUEyQkEsU0FBM0IsRUFBc0NHLElBQXRDLEVBQTRDNEIsS0FBNUM7QUFBUDtBQUNEOztBQUVELFNBQU9BLEtBQVA7QUFDRDs7QUFFRCxTQUFTdkIsZUFBVCxDQUF5QjBCLEtBQXpCLEVBQWdDO0FBQzlCLFNBQU9BLE1BQU0zQixXQUFOLElBQXFCMkIsTUFBTTNCLFdBQU4sS0FBc0IyQixNQUFNekIsV0FBeEQ7QUFDRDs7QUFFRCxTQUFTRyxXQUFULENBQXFCTixLQUFyQixFQUE0QkwsSUFBNUIsRUFBa0NDLE1BQWxDLEVBQTBDO0FBQ3hDLE1BQUlELFNBQVNDLE1BQWIsRUFBcUI7QUFDbkIsV0FBT0QsSUFBUDtBQUNELEdBRkQsTUFFTztBQUNMSyxVQUFNNkIsUUFBTixHQUFpQixJQUFqQjtBQUNBLFdBQU8sRUFBQ2xDLFVBQUQsRUFBT0MsY0FBUCxFQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTcUIsVUFBVCxDQUFvQlMsSUFBcEIsRUFBMEJJLEtBQTFCLEVBQWlDO0FBQy9CLFNBQU9KLEtBQUtaLFFBQUwsR0FBZ0JnQixNQUFNaEIsUUFBdEIsSUFDRFksS0FBS1osUUFBTCxHQUFnQlksS0FBS2xDLFFBQXRCLEdBQWtDc0MsTUFBTWhCLFFBRDdDO0FBRUQ7O0FBRUQsU0FBU0ssU0FBVCxDQUFtQjlCLElBQW5CLEVBQXlCMEMsTUFBekIsRUFBaUM7QUFDL0IsU0FBTztBQUNMakIsY0FBVXpCLEtBQUt5QixRQURWLEVBQ29CdEIsVUFBVUgsS0FBS0csUUFEbkM7QUFFTCtCLGNBQVVsQyxLQUFLa0MsUUFBTCxHQUFnQlEsTUFGckIsRUFFNkJ0QyxVQUFVSixLQUFLSSxRQUY1QztBQUdMRixXQUFPRixLQUFLRTtBQUhQLEdBQVA7QUFLRDs7QUFFRCxTQUFTaUMsVUFBVCxDQUFvQm5DLElBQXBCLEVBQTBCcUIsVUFBMUIsRUFBc0NzQixTQUF0QyxFQUFpREMsV0FBakQsRUFBOERDLFVBQTlELEVBQTBFO0FBQ3hFO0FBQ0E7QUFDQSxNQUFJdkMsT0FBTyxFQUFDb0MsUUFBUXJCLFVBQVQsRUFBcUJuQixPQUFPeUMsU0FBNUIsRUFBdUNoQyxPQUFPLENBQTlDLEVBQVg7QUFBQSxNQUNJbUMsUUFBUSxFQUFDSixRQUFRRSxXQUFULEVBQXNCMUMsT0FBTzJDLFVBQTdCLEVBQXlDbEMsT0FBTyxDQUFoRCxFQURaOztBQUdBO0FBQ0FvQyxnQkFBYy9DLElBQWQsRUFBb0JNLElBQXBCLEVBQTBCd0MsS0FBMUI7QUFDQUMsZ0JBQWMvQyxJQUFkLEVBQW9COEMsS0FBcEIsRUFBMkJ4QyxJQUEzQjs7QUFFQTtBQUNBLFNBQU9BLEtBQUtLLEtBQUwsR0FBYUwsS0FBS0osS0FBTCxDQUFXcUIsTUFBeEIsSUFBa0N1QixNQUFNbkMsS0FBTixHQUFjbUMsTUFBTTVDLEtBQU4sQ0FBWXFCLE1BQW5FLEVBQTJFO0FBQ3pFLFFBQUlDLGNBQWNsQixLQUFLSixLQUFMLENBQVdJLEtBQUtLLEtBQWhCLENBQWxCO0FBQUEsUUFDSXFDLGVBQWVGLE1BQU01QyxLQUFOLENBQVk0QyxNQUFNbkMsS0FBbEIsQ0FEbkI7O0FBR0EsUUFBSSxDQUFDYSxZQUFZLENBQVosTUFBbUIsR0FBbkIsSUFBMEJBLFlBQVksQ0FBWixNQUFtQixHQUE5QyxNQUNJd0IsYUFBYSxDQUFiLE1BQW9CLEdBQXBCLElBQTJCQSxhQUFhLENBQWIsTUFBb0IsR0FEbkQsQ0FBSixFQUM2RDtBQUMzRDtBQUNBQyxtQkFBYWpELElBQWIsRUFBbUJNLElBQW5CLEVBQXlCd0MsS0FBekI7QUFDRCxLQUpELE1BSU8sSUFBSXRCLFlBQVksQ0FBWixNQUFtQixHQUFuQixJQUEwQndCLGFBQWEsQ0FBYixNQUFvQixHQUFsRCxFQUF1RDtBQUFBOztBQUFBLDhCQUM1RDtBQUNBLDBFQUFLOUMsS0FBTCxFQUFXMkIsSUFBWCw0TEFBb0JxQixjQUFjNUMsSUFBZCxDQUFwQjtBQUNELEtBSE0sTUFHQSxJQUFJMEMsYUFBYSxDQUFiLE1BQW9CLEdBQXBCLElBQTJCeEIsWUFBWSxDQUFaLE1BQW1CLEdBQWxELEVBQXVEO0FBQUE7O0FBQUEsOEJBQzVEO0FBQ0EsMkVBQUt0QixLQUFMLEVBQVcyQixJQUFYLDZMQUFvQnFCLGNBQWNKLEtBQWQsQ0FBcEI7QUFDRCxLQUhNLE1BR0EsSUFBSXRCLFlBQVksQ0FBWixNQUFtQixHQUFuQixJQUEwQndCLGFBQWEsQ0FBYixNQUFvQixHQUFsRCxFQUF1RDtBQUM1RDtBQUNBRyxjQUFRbkQsSUFBUixFQUFjTSxJQUFkLEVBQW9Cd0MsS0FBcEI7QUFDRCxLQUhNLE1BR0EsSUFBSUUsYUFBYSxDQUFiLE1BQW9CLEdBQXBCLElBQTJCeEIsWUFBWSxDQUFaLE1BQW1CLEdBQWxELEVBQXVEO0FBQzVEO0FBQ0EyQixjQUFRbkQsSUFBUixFQUFjOEMsS0FBZCxFQUFxQnhDLElBQXJCLEVBQTJCLElBQTNCO0FBQ0QsS0FITSxNQUdBLElBQUlrQixnQkFBZ0J3QixZQUFwQixFQUFrQztBQUN2QztBQUNBaEQsV0FBS0UsS0FBTCxDQUFXMkIsSUFBWCxDQUFnQkwsV0FBaEI7QUFDQWxCLFdBQUtLLEtBQUw7QUFDQW1DLFlBQU1uQyxLQUFOO0FBQ0QsS0FMTSxNQUtBO0FBQ0w7QUFDQTZCLGVBQVN4QyxJQUFULEVBQWVrRCxjQUFjNUMsSUFBZCxDQUFmLEVBQW9DNEMsY0FBY0osS0FBZCxDQUFwQztBQUNEO0FBQ0Y7O0FBRUQ7QUFDQU0saUJBQWVwRCxJQUFmLEVBQXFCTSxJQUFyQjtBQUNBOEMsaUJBQWVwRCxJQUFmLEVBQXFCOEMsS0FBckI7O0FBRUFoRCxnQkFBY0UsSUFBZDtBQUNEOztBQUVELFNBQVNpRCxZQUFULENBQXNCakQsSUFBdEIsRUFBNEJNLElBQTVCLEVBQWtDd0MsS0FBbEMsRUFBeUM7QUFDdkMsTUFBSU8sWUFBWUgsY0FBYzVDLElBQWQsQ0FBaEI7QUFBQSxNQUNJZ0QsZUFBZUosY0FBY0osS0FBZCxDQURuQjs7QUFHQSxNQUFJUyxXQUFXRixTQUFYLEtBQXlCRSxXQUFXRCxZQUFYLENBQTdCLEVBQXVEO0FBQ3JEO0FBQ0EsUUFBSSw4RUFBZ0JELFNBQWhCLEVBQTJCQyxZQUEzQixLQUNHRSxtQkFBbUJWLEtBQW5CLEVBQTBCTyxTQUExQixFQUFxQ0EsVUFBVTlCLE1BQVYsR0FBbUIrQixhQUFhL0IsTUFBckUsQ0FEUCxFQUNxRjtBQUFBOztBQUFBLDZCQUNuRixzRUFBS3JCLEtBQUwsRUFBVzJCLElBQVgsNkxBQW9Cd0IsU0FBcEI7QUFDQTtBQUNELEtBSkQsTUFJTyxJQUFJLDhFQUFnQkMsWUFBaEIsRUFBOEJELFNBQTlCLEtBQ0pHLG1CQUFtQmxELElBQW5CLEVBQXlCZ0QsWUFBekIsRUFBdUNBLGFBQWEvQixNQUFiLEdBQXNCOEIsVUFBVTlCLE1BQXZFLENBREEsRUFDZ0Y7QUFBQTs7QUFBQSw2QkFDckYsc0VBQUtyQixLQUFMLEVBQVcyQixJQUFYLDZMQUFvQnlCLFlBQXBCO0FBQ0E7QUFDRDtBQUNGLEdBWEQsTUFXTyxJQUFJLHlFQUFXRCxTQUFYLEVBQXNCQyxZQUF0QixDQUFKLEVBQXlDO0FBQUE7O0FBQUEsMkJBQzlDLHNFQUFLcEQsS0FBTCxFQUFXMkIsSUFBWCw2TEFBb0J3QixTQUFwQjtBQUNBO0FBQ0Q7O0FBRURiLFdBQVN4QyxJQUFULEVBQWVxRCxTQUFmLEVBQTBCQyxZQUExQjtBQUNEOztBQUVELFNBQVNILE9BQVQsQ0FBaUJuRCxJQUFqQixFQUF1Qk0sSUFBdkIsRUFBNkJ3QyxLQUE3QixFQUFvQ1csSUFBcEMsRUFBMEM7QUFDeEMsTUFBSUosWUFBWUgsY0FBYzVDLElBQWQsQ0FBaEI7QUFBQSxNQUNJZ0QsZUFBZUksZUFBZVosS0FBZixFQUFzQk8sU0FBdEIsQ0FEbkI7QUFFQSxNQUFJQyxhQUFhSyxNQUFqQixFQUF5QjtBQUFBOztBQUFBLDJCQUN2QixzRUFBS3pELEtBQUwsRUFBVzJCLElBQVgsNkxBQW9CeUIsYUFBYUssTUFBakM7QUFDRCxHQUZELE1BRU87QUFDTG5CLGFBQVN4QyxJQUFULEVBQWV5RCxPQUFPSCxZQUFQLEdBQXNCRCxTQUFyQyxFQUFnREksT0FBT0osU0FBUCxHQUFtQkMsWUFBbkU7QUFDRDtBQUNGOztBQUVELFNBQVNkLFFBQVQsQ0FBa0J4QyxJQUFsQixFQUF3Qk0sSUFBeEIsRUFBOEJ3QyxLQUE5QixFQUFxQztBQUNuQzlDLE9BQUt3QyxRQUFMLEdBQWdCLElBQWhCO0FBQ0F4QyxPQUFLRSxLQUFMLENBQVcyQixJQUFYLENBQWdCO0FBQ2RXLGNBQVUsSUFESTtBQUVkbEMsVUFBTUEsSUFGUTtBQUdkQyxZQUFRdUM7QUFITSxHQUFoQjtBQUtEOztBQUVELFNBQVNDLGFBQVQsQ0FBdUIvQyxJQUF2QixFQUE2QjRELE1BQTdCLEVBQXFDZCxLQUFyQyxFQUE0QztBQUMxQyxTQUFPYyxPQUFPbEIsTUFBUCxHQUFnQkksTUFBTUosTUFBdEIsSUFBZ0NrQixPQUFPakQsS0FBUCxHQUFlaUQsT0FBTzFELEtBQVAsQ0FBYXFCLE1BQW5FLEVBQTJFO0FBQ3pFLFFBQUlzQyxPQUFPRCxPQUFPMUQsS0FBUCxDQUFhMEQsT0FBT2pELEtBQVAsRUFBYixDQUFYO0FBQ0FYLFNBQUtFLEtBQUwsQ0FBVzJCLElBQVgsQ0FBZ0JnQyxJQUFoQjtBQUNBRCxXQUFPbEIsTUFBUDtBQUNEO0FBQ0Y7QUFDRCxTQUFTVSxjQUFULENBQXdCcEQsSUFBeEIsRUFBOEI0RCxNQUE5QixFQUFzQztBQUNwQyxTQUFPQSxPQUFPakQsS0FBUCxHQUFlaUQsT0FBTzFELEtBQVAsQ0FBYXFCLE1BQW5DLEVBQTJDO0FBQ3pDLFFBQUlzQyxPQUFPRCxPQUFPMUQsS0FBUCxDQUFhMEQsT0FBT2pELEtBQVAsRUFBYixDQUFYO0FBQ0FYLFNBQUtFLEtBQUwsQ0FBVzJCLElBQVgsQ0FBZ0JnQyxJQUFoQjtBQUNEO0FBQ0Y7O0FBRUQsU0FBU1gsYUFBVCxDQUF1QlksS0FBdkIsRUFBOEI7QUFDNUIsTUFBSXBELE1BQU0sRUFBVjtBQUFBLE1BQ0lxRCxZQUFZRCxNQUFNNUQsS0FBTixDQUFZNEQsTUFBTW5ELEtBQWxCLEVBQXlCLENBQXpCLENBRGhCO0FBRUEsU0FBT21ELE1BQU1uRCxLQUFOLEdBQWNtRCxNQUFNNUQsS0FBTixDQUFZcUIsTUFBakMsRUFBeUM7QUFDdkMsUUFBSXNDLE9BQU9DLE1BQU01RCxLQUFOLENBQVk0RCxNQUFNbkQsS0FBbEIsQ0FBWDs7QUFFQTtBQUNBLFFBQUlvRCxjQUFjLEdBQWQsSUFBcUJGLEtBQUssQ0FBTCxNQUFZLEdBQXJDLEVBQTBDO0FBQ3hDRSxrQkFBWSxHQUFaO0FBQ0Q7O0FBRUQsUUFBSUEsY0FBY0YsS0FBSyxDQUFMLENBQWxCLEVBQTJCO0FBQ3pCbkQsVUFBSW1CLElBQUosQ0FBU2dDLElBQVQ7QUFDQUMsWUFBTW5ELEtBQU47QUFDRCxLQUhELE1BR087QUFDTDtBQUNEO0FBQ0Y7O0FBRUQsU0FBT0QsR0FBUDtBQUNEO0FBQ0QsU0FBU2dELGNBQVQsQ0FBd0JJLEtBQXhCLEVBQStCRSxZQUEvQixFQUE2QztBQUMzQyxNQUFJQyxVQUFVLEVBQWQ7QUFBQSxNQUNJTixTQUFTLEVBRGI7QUFBQSxNQUVJTyxhQUFhLENBRmpCO0FBQUEsTUFHSUMsaUJBQWlCLEtBSHJCO0FBQUEsTUFJSUMsYUFBYSxLQUpqQjtBQUtBLFNBQU9GLGFBQWFGLGFBQWF6QyxNQUExQixJQUNFdUMsTUFBTW5ELEtBQU4sR0FBY21ELE1BQU01RCxLQUFOLENBQVlxQixNQURuQyxFQUMyQztBQUN6QyxRQUFJOEMsU0FBU1AsTUFBTTVELEtBQU4sQ0FBWTRELE1BQU1uRCxLQUFsQixDQUFiO0FBQUEsUUFDSTJELFFBQVFOLGFBQWFFLFVBQWIsQ0FEWjs7QUFHQTtBQUNBLFFBQUlJLE1BQU0sQ0FBTixNQUFhLEdBQWpCLEVBQXNCO0FBQ3BCO0FBQ0Q7O0FBRURILHFCQUFpQkEsa0JBQWtCRSxPQUFPLENBQVAsTUFBYyxHQUFqRDs7QUFFQVYsV0FBTzlCLElBQVAsQ0FBWXlDLEtBQVo7QUFDQUo7O0FBRUE7QUFDQTtBQUNBLFFBQUlHLE9BQU8sQ0FBUCxNQUFjLEdBQWxCLEVBQXVCO0FBQ3JCRCxtQkFBYSxJQUFiOztBQUVBLGFBQU9DLE9BQU8sQ0FBUCxNQUFjLEdBQXJCLEVBQTBCO0FBQ3hCSixnQkFBUXBDLElBQVIsQ0FBYXdDLE1BQWI7QUFDQUEsaUJBQVNQLE1BQU01RCxLQUFOLENBQVksRUFBRTRELE1BQU1uRCxLQUFwQixDQUFUO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJMkQsTUFBTUMsTUFBTixDQUFhLENBQWIsTUFBb0JGLE9BQU9FLE1BQVAsQ0FBYyxDQUFkLENBQXhCLEVBQTBDO0FBQ3hDTixjQUFRcEMsSUFBUixDQUFhd0MsTUFBYjtBQUNBUCxZQUFNbkQsS0FBTjtBQUNELEtBSEQsTUFHTztBQUNMeUQsbUJBQWEsSUFBYjtBQUNEO0FBQ0Y7O0FBRUQsTUFBSSxDQUFDSixhQUFhRSxVQUFiLEtBQTRCLEVBQTdCLEVBQWlDLENBQWpDLE1BQXdDLEdBQXhDLElBQ0dDLGNBRFAsRUFDdUI7QUFDckJDLGlCQUFhLElBQWI7QUFDRDs7QUFFRCxNQUFJQSxVQUFKLEVBQWdCO0FBQ2QsV0FBT0gsT0FBUDtBQUNEOztBQUVELFNBQU9DLGFBQWFGLGFBQWF6QyxNQUFqQyxFQUF5QztBQUN2Q29DLFdBQU85QixJQUFQLENBQVltQyxhQUFhRSxZQUFiLENBQVo7QUFDRDs7QUFFRCxTQUFPO0FBQ0xQLGtCQURLO0FBRUxNO0FBRkssR0FBUDtBQUlEOztBQUVELFNBQVNWLFVBQVQsQ0FBb0JVLE9BQXBCLEVBQTZCO0FBQzNCLFNBQU9BLFFBQVFPLE1BQVIsQ0FBZSxVQUFTQyxJQUFULEVBQWVKLE1BQWYsRUFBdUI7QUFDM0MsV0FBT0ksUUFBUUosT0FBTyxDQUFQLE1BQWMsR0FBN0I7QUFDRCxHQUZNLEVBRUosSUFGSSxDQUFQO0FBR0Q7QUFDRCxTQUFTYixrQkFBVCxDQUE0Qk0sS0FBNUIsRUFBbUNZLGFBQW5DLEVBQWtEQyxLQUFsRCxFQUF5RDtBQUN2RCxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsS0FBcEIsRUFBMkJDLEdBQTNCLEVBQWdDO0FBQzlCLFFBQUlDLGdCQUFnQkgsY0FBY0EsY0FBY25ELE1BQWQsR0FBdUJvRCxLQUF2QixHQUErQkMsQ0FBN0MsRUFBZ0RMLE1BQWhELENBQXVELENBQXZELENBQXBCO0FBQ0EsUUFBSVQsTUFBTTVELEtBQU4sQ0FBWTRELE1BQU1uRCxLQUFOLEdBQWNpRSxDQUExQixNQUFpQyxNQUFNQyxhQUEzQyxFQUEwRDtBQUN4RCxhQUFPLEtBQVA7QUFDRDtBQUNGOztBQUVEZixRQUFNbkQsS0FBTixJQUFlZ0UsS0FBZjtBQUNBLFNBQU8sSUFBUDtBQUNEOztBQUVELFNBQVMxRSxtQkFBVCxDQUE2QkMsS0FBN0IsRUFBb0M7QUFDbEMsTUFBSUMsV0FBVyxDQUFmO0FBQ0EsTUFBSUMsV0FBVyxDQUFmOztBQUVBRixRQUFNNEUsT0FBTixDQUFjLFVBQVNqQixJQUFULEVBQWU7QUFDM0IsUUFBSSxPQUFPQSxJQUFQLEtBQWdCLFFBQXBCLEVBQThCO0FBQzVCLFVBQUlrQixVQUFVOUUsb0JBQW9CNEQsS0FBS3ZELElBQXpCLENBQWQ7QUFDQSxVQUFJMEUsYUFBYS9FLG9CQUFvQjRELEtBQUt0RCxNQUF6QixDQUFqQjs7QUFFQSxVQUFJSixhQUFhRSxTQUFqQixFQUE0QjtBQUMxQixZQUFJMEUsUUFBUTVFLFFBQVIsS0FBcUI2RSxXQUFXN0UsUUFBcEMsRUFBOEM7QUFDNUNBLHNCQUFZNEUsUUFBUTVFLFFBQXBCO0FBQ0QsU0FGRCxNQUVPO0FBQ0xBLHFCQUFXRSxTQUFYO0FBQ0Q7QUFDRjs7QUFFRCxVQUFJRCxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQixZQUFJMEUsUUFBUTNFLFFBQVIsS0FBcUI0RSxXQUFXNUUsUUFBcEMsRUFBOEM7QUFDNUNBLHNCQUFZMkUsUUFBUTNFLFFBQXBCO0FBQ0QsU0FGRCxNQUVPO0FBQ0xBLHFCQUFXQyxTQUFYO0FBQ0Q7QUFDRjtBQUNGLEtBbkJELE1BbUJPO0FBQ0wsVUFBSUQsYUFBYUMsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEV6RDtBQUNEO0FBQ0QsVUFBSUQsYUFBYUUsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEUxRDtBQUNEO0FBQ0Y7QUFDRixHQTVCRDs7QUE4QkEsU0FBTyxFQUFDQSxrQkFBRCxFQUFXQyxrQkFBWCxFQUFQO0FBQ0QiLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3N0cnVjdHVyZWRQYXRjaH0gZnJvbSAnLi9jcmVhdGUnO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhcnNlJztcblxuaW1wb3J0IHthcnJheUVxdWFsLCBhcnJheVN0YXJ0c1dpdGh9IGZyb20gJy4uL3V0aWwvYXJyYXknO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY0xpbmVDb3VudChodW5rKSB7XG4gIGNvbnN0IHtvbGRMaW5lcywgbmV3TGluZXN9ID0gY2FsY09sZE5ld0xpbmVDb3VudChodW5rLmxpbmVzKTtcblxuICBpZiAob2xkTGluZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGh1bmsub2xkTGluZXMgPSBvbGRMaW5lcztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaHVuay5uZXdMaW5lcyA9IG5ld0xpbmVzO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBodW5rLm5ld0xpbmVzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZShtaW5lLCB0aGVpcnMsIGJhc2UpIHtcbiAgbWluZSA9IGxvYWRQYXRjaChtaW5lLCBiYXNlKTtcbiAgdGhlaXJzID0gbG9hZFBhdGNoKHRoZWlycywgYmFzZSk7XG5cbiAgbGV0IHJldCA9IHt9O1xuXG4gIC8vIEZvciBpbmRleCB3ZSBqdXN0IGxldCBpdCBwYXNzIHRocm91Z2ggYXMgaXQgZG9lc24ndCBoYXZlIGFueSBuZWNlc3NhcnkgbWVhbmluZy5cbiAgLy8gTGVhdmluZyBzYW5pdHkgY2hlY2tzIG9uIHRoaXMgdG8gdGhlIEFQSSBjb25zdW1lciB0aGF0IG1heSBrbm93IG1vcmUgYWJvdXQgdGhlXG4gIC8vIG1lYW5pbmcgaW4gdGhlaXIgb3duIGNvbnRleHQuXG4gIGlmIChtaW5lLmluZGV4IHx8IHRoZWlycy5pbmRleCkge1xuICAgIHJldC5pbmRleCA9IG1pbmUuaW5kZXggfHwgdGhlaXJzLmluZGV4O1xuICB9XG5cbiAgaWYgKG1pbmUubmV3RmlsZU5hbWUgfHwgdGhlaXJzLm5ld0ZpbGVOYW1lKSB7XG4gICAgaWYgKCFmaWxlTmFtZUNoYW5nZWQobWluZSkpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gb3VycywgdXNlIHRoZWlycyAoYW5kIG91cnMgaWYgdGhlaXJzIGRvZXMgbm90IGV4aXN0KVxuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gdGhlaXJzLm9sZEZpbGVOYW1lIHx8IG1pbmUub2xkRmlsZU5hbWU7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSB0aGVpcnMubmV3RmlsZU5hbWUgfHwgbWluZS5uZXdGaWxlTmFtZTtcbiAgICAgIHJldC5vbGRIZWFkZXIgPSB0aGVpcnMub2xkSGVhZGVyIHx8IG1pbmUub2xkSGVhZGVyO1xuICAgICAgcmV0Lm5ld0hlYWRlciA9IHRoZWlycy5uZXdIZWFkZXIgfHwgbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIGlmICghZmlsZU5hbWVDaGFuZ2VkKHRoZWlycykpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gdGhlaXJzLCB1c2Ugb3Vyc1xuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gbWluZS5vbGRGaWxlTmFtZTtcbiAgICAgIHJldC5uZXdGaWxlTmFtZSA9IG1pbmUubmV3RmlsZU5hbWU7XG4gICAgICByZXQub2xkSGVhZGVyID0gbWluZS5vbGRIZWFkZXI7XG4gICAgICByZXQubmV3SGVhZGVyID0gbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEJvdGggY2hhbmdlZC4uLiBmaWd1cmUgaXQgb3V0XG4gICAgICByZXQub2xkRmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUub2xkRmlsZU5hbWUsIHRoZWlycy5vbGRGaWxlTmFtZSk7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUubmV3RmlsZU5hbWUsIHRoZWlycy5uZXdGaWxlTmFtZSk7XG4gICAgICByZXQub2xkSGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm9sZEhlYWRlciwgdGhlaXJzLm9sZEhlYWRlcik7XG4gICAgICByZXQubmV3SGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm5ld0hlYWRlciwgdGhlaXJzLm5ld0hlYWRlcik7XG4gICAgfVxuICB9XG5cbiAgcmV0Lmh1bmtzID0gW107XG5cbiAgbGV0IG1pbmVJbmRleCA9IDAsXG4gICAgICB0aGVpcnNJbmRleCA9IDAsXG4gICAgICBtaW5lT2Zmc2V0ID0gMCxcbiAgICAgIHRoZWlyc09mZnNldCA9IDA7XG5cbiAgd2hpbGUgKG1pbmVJbmRleCA8IG1pbmUuaHVua3MubGVuZ3RoIHx8IHRoZWlyc0luZGV4IDwgdGhlaXJzLmh1bmtzLmxlbmd0aCkge1xuICAgIGxldCBtaW5lQ3VycmVudCA9IG1pbmUuaHVua3NbbWluZUluZGV4XSB8fCB7b2xkU3RhcnQ6IEluZmluaXR5fSxcbiAgICAgICAgdGhlaXJzQ3VycmVudCA9IHRoZWlycy5odW5rc1t0aGVpcnNJbmRleF0gfHwge29sZFN0YXJ0OiBJbmZpbml0eX07XG5cbiAgICBpZiAoaHVua0JlZm9yZShtaW5lQ3VycmVudCwgdGhlaXJzQ3VycmVudCkpIHtcbiAgICAgIC8vIFRoaXMgcGF0Y2ggZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgb3RoZXJzLCB5YXkuXG4gICAgICByZXQuaHVua3MucHVzaChjbG9uZUh1bmsobWluZUN1cnJlbnQsIG1pbmVPZmZzZXQpKTtcbiAgICAgIG1pbmVJbmRleCsrO1xuICAgICAgdGhlaXJzT2Zmc2V0ICs9IG1pbmVDdXJyZW50Lm5ld0xpbmVzIC0gbWluZUN1cnJlbnQub2xkTGluZXM7XG4gICAgfSBlbHNlIGlmIChodW5rQmVmb3JlKHRoZWlyc0N1cnJlbnQsIG1pbmVDdXJyZW50KSkge1xuICAgICAgLy8gVGhpcyBwYXRjaCBkb2VzIG5vdCBvdmVybGFwIHdpdGggYW55IG9mIHRoZSBvdGhlcnMsIHlheS5cbiAgICAgIHJldC5odW5rcy5wdXNoKGNsb25lSHVuayh0aGVpcnNDdXJyZW50LCB0aGVpcnNPZmZzZXQpKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lT2Zmc2V0ICs9IHRoZWlyc0N1cnJlbnQubmV3TGluZXMgLSB0aGVpcnNDdXJyZW50Lm9sZExpbmVzO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdmVybGFwLCBtZXJnZSBhcyBiZXN0IHdlIGNhblxuICAgICAgbGV0IG1lcmdlZEh1bmsgPSB7XG4gICAgICAgIG9sZFN0YXJ0OiBNYXRoLm1pbihtaW5lQ3VycmVudC5vbGRTdGFydCwgdGhlaXJzQ3VycmVudC5vbGRTdGFydCksXG4gICAgICAgIG9sZExpbmVzOiAwLFxuICAgICAgICBuZXdTdGFydDogTWF0aC5taW4obWluZUN1cnJlbnQubmV3U3RhcnQgKyBtaW5lT2Zmc2V0LCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0ICsgdGhlaXJzT2Zmc2V0KSxcbiAgICAgICAgbmV3TGluZXM6IDAsXG4gICAgICAgIGxpbmVzOiBbXVxuICAgICAgfTtcbiAgICAgIG1lcmdlTGluZXMobWVyZ2VkSHVuaywgbWluZUN1cnJlbnQub2xkU3RhcnQsIG1pbmVDdXJyZW50LmxpbmVzLCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0LCB0aGVpcnNDdXJyZW50LmxpbmVzKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lSW5kZXgrKztcblxuICAgICAgcmV0Lmh1bmtzLnB1c2gobWVyZ2VkSHVuayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gbG9hZFBhdGNoKHBhcmFtLCBiYXNlKSB7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKC9eQEAvbS50ZXN0KHBhcmFtKSB8fCAoL15JbmRleDovbS50ZXN0KHBhcmFtKSkpIHtcbiAgICAgIHJldHVybiBwYXJzZVBhdGNoKHBhcmFtKVswXTtcbiAgICB9XG5cbiAgICBpZiAoIWJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgYmFzZSByZWZlcmVuY2Ugb3IgcGFzcyBpbiBhIHBhdGNoJyk7XG4gICAgfVxuICAgIHJldHVybiBzdHJ1Y3R1cmVkUGF0Y2godW5kZWZpbmVkLCB1bmRlZmluZWQsIGJhc2UsIHBhcmFtKTtcbiAgfVxuXG4gIHJldHVybiBwYXJhbTtcbn1cblxuZnVuY3Rpb24gZmlsZU5hbWVDaGFuZ2VkKHBhdGNoKSB7XG4gIHJldHVybiBwYXRjaC5uZXdGaWxlTmFtZSAmJiBwYXRjaC5uZXdGaWxlTmFtZSAhPT0gcGF0Y2gub2xkRmlsZU5hbWU7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdEZpZWxkKGluZGV4LCBtaW5lLCB0aGVpcnMpIHtcbiAgaWYgKG1pbmUgPT09IHRoZWlycykge1xuICAgIHJldHVybiBtaW5lO1xuICB9IGVsc2Uge1xuICAgIGluZGV4LmNvbmZsaWN0ID0gdHJ1ZTtcbiAgICByZXR1cm4ge21pbmUsIHRoZWlyc307XG4gIH1cbn1cblxuZnVuY3Rpb24gaHVua0JlZm9yZSh0ZXN0LCBjaGVjaykge1xuICByZXR1cm4gdGVzdC5vbGRTdGFydCA8IGNoZWNrLm9sZFN0YXJ0XG4gICAgJiYgKHRlc3Qub2xkU3RhcnQgKyB0ZXN0Lm9sZExpbmVzKSA8IGNoZWNrLm9sZFN0YXJ0O1xufVxuXG5mdW5jdGlvbiBjbG9uZUh1bmsoaHVuaywgb2Zmc2V0KSB7XG4gIHJldHVybiB7XG4gICAgb2xkU3RhcnQ6IGh1bmsub2xkU3RhcnQsIG9sZExpbmVzOiBodW5rLm9sZExpbmVzLFxuICAgIG5ld1N0YXJ0OiBodW5rLm5ld1N0YXJ0ICsgb2Zmc2V0LCBuZXdMaW5lczogaHVuay5uZXdMaW5lcyxcbiAgICBsaW5lczogaHVuay5saW5lc1xuICB9O1xufVxuXG5mdW5jdGlvbiBtZXJnZUxpbmVzKGh1bmssIG1pbmVPZmZzZXQsIG1pbmVMaW5lcywgdGhlaXJPZmZzZXQsIHRoZWlyTGluZXMpIHtcbiAgLy8gVGhpcyB3aWxsIGdlbmVyYWxseSByZXN1bHQgaW4gYSBjb25mbGljdGVkIGh1bmssIGJ1dCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgdGhlIGNvbnRleHRcbiAgLy8gaXMgdGhlIG9ubHkgb3ZlcmxhcCB3aGVyZSB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IG1lcmdlIHRoZSBjb250ZW50IGhlcmUuXG4gIGxldCBtaW5lID0ge29mZnNldDogbWluZU9mZnNldCwgbGluZXM6IG1pbmVMaW5lcywgaW5kZXg6IDB9LFxuICAgICAgdGhlaXIgPSB7b2Zmc2V0OiB0aGVpck9mZnNldCwgbGluZXM6IHRoZWlyTGluZXMsIGluZGV4OiAwfTtcblxuICAvLyBIYW5kbGUgYW55IGxlYWRpbmcgY29udGVudFxuICBpbnNlcnRMZWFkaW5nKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgaW5zZXJ0TGVhZGluZyhodW5rLCB0aGVpciwgbWluZSk7XG5cbiAgLy8gTm93IGluIHRoZSBvdmVybGFwIGNvbnRlbnQuIFNjYW4gdGhyb3VnaCBhbmQgc2VsZWN0IHRoZSBiZXN0IGNoYW5nZXMgZnJvbSBlYWNoLlxuICB3aGlsZSAobWluZS5pbmRleCA8IG1pbmUubGluZXMubGVuZ3RoICYmIHRoZWlyLmluZGV4IDwgdGhlaXIubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IG1pbmVDdXJyZW50ID0gbWluZS5saW5lc1ttaW5lLmluZGV4XSxcbiAgICAgICAgdGhlaXJDdXJyZW50ID0gdGhlaXIubGluZXNbdGhlaXIuaW5kZXhdO1xuXG4gICAgaWYgKChtaW5lQ3VycmVudFswXSA9PT0gJy0nIHx8IG1pbmVDdXJyZW50WzBdID09PSAnKycpXG4gICAgICAgICYmICh0aGVpckN1cnJlbnRbMF0gPT09ICctJyB8fCB0aGVpckN1cnJlbnRbMF0gPT09ICcrJykpIHtcbiAgICAgIC8vIEJvdGggbW9kaWZpZWQgLi4uXG4gICAgICBtdXR1YWxDaGFuZ2UoaHVuaywgbWluZSwgdGhlaXIpO1xuICAgIH0gZWxzZSBpZiAobWluZUN1cnJlbnRbMF0gPT09ICcrJyAmJiB0aGVpckN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gTWluZSBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKG1pbmUpKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJysnICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlycyBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfSBlbHNlIGlmIChtaW5lQ3VycmVudFswXSA9PT0gJy0nICYmIHRoZWlyQ3VycmVudFswXSA9PT0gJyAnKSB7XG4gICAgICAvLyBNaW5lIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJy0nICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlyIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIHRoZWlyLCBtaW5lLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKG1pbmVDdXJyZW50ID09PSB0aGVpckN1cnJlbnQpIHtcbiAgICAgIC8vIENvbnRleHQgaWRlbnRpdHlcbiAgICAgIGh1bmsubGluZXMucHVzaChtaW5lQ3VycmVudCk7XG4gICAgICBtaW5lLmluZGV4Kys7XG4gICAgICB0aGVpci5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250ZXh0IG1pc21hdGNoXG4gICAgICBjb25mbGljdChodW5rLCBjb2xsZWN0Q2hhbmdlKG1pbmUpLCBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTm93IHB1c2ggYW55dGhpbmcgdGhhdCBtYXkgYmUgcmVtYWluaW5nXG4gIGluc2VydFRyYWlsaW5nKGh1bmssIG1pbmUpO1xuICBpbnNlcnRUcmFpbGluZyhodW5rLCB0aGVpcik7XG5cbiAgY2FsY0xpbmVDb3VudChodW5rKTtcbn1cblxuZnVuY3Rpb24gbXV0dWFsQ2hhbmdlKGh1bmssIG1pbmUsIHRoZWlyKSB7XG4gIGxldCBteUNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKG1pbmUpLFxuICAgICAgdGhlaXJDaGFuZ2VzID0gY29sbGVjdENoYW5nZSh0aGVpcik7XG5cbiAgaWYgKGFsbFJlbW92ZXMobXlDaGFuZ2VzKSAmJiBhbGxSZW1vdmVzKHRoZWlyQ2hhbmdlcykpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIHJlbW92ZSBjaGFuZ2VzIHRoYXQgYXJlIHN1cGVyc2V0cyBvZiBvbmUgYW5vdGhlclxuICAgIGlmIChhcnJheVN0YXJ0c1dpdGgobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpXG4gICAgICAgICYmIHNraXBSZW1vdmVTdXBlcnNldCh0aGVpciwgbXlDaGFuZ2VzLCBteUNoYW5nZXMubGVuZ3RoIC0gdGhlaXJDaGFuZ2VzLmxlbmd0aCkpIHtcbiAgICAgIGh1bmsubGluZXMucHVzaCguLi4gbXlDaGFuZ2VzKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGFycmF5U3RhcnRzV2l0aCh0aGVpckNoYW5nZXMsIG15Q2hhbmdlcylcbiAgICAgICAgJiYgc2tpcFJlbW92ZVN1cGVyc2V0KG1pbmUsIHRoZWlyQ2hhbmdlcywgdGhlaXJDaGFuZ2VzLmxlbmd0aCAtIG15Q2hhbmdlcy5sZW5ndGgpKSB7XG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIHRoZWlyQ2hhbmdlcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9IGVsc2UgaWYgKGFycmF5RXF1YWwobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpKSB7XG4gICAgaHVuay5saW5lcy5wdXNoKC4uLiBteUNoYW5nZXMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbmZsaWN0KGh1bmssIG15Q2hhbmdlcywgdGhlaXJDaGFuZ2VzKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZhbChodW5rLCBtaW5lLCB0aGVpciwgc3dhcCkge1xuICBsZXQgbXlDaGFuZ2VzID0gY29sbGVjdENoYW5nZShtaW5lKSxcbiAgICAgIHRoZWlyQ2hhbmdlcyA9IGNvbGxlY3RDb250ZXh0KHRoZWlyLCBteUNoYW5nZXMpO1xuICBpZiAodGhlaXJDaGFuZ2VzLm1lcmdlZCkge1xuICAgIGh1bmsubGluZXMucHVzaCguLi4gdGhlaXJDaGFuZ2VzLm1lcmdlZCk7XG4gIH0gZWxzZSB7XG4gICAgY29uZmxpY3QoaHVuaywgc3dhcCA/IHRoZWlyQ2hhbmdlcyA6IG15Q2hhbmdlcywgc3dhcCA/IG15Q2hhbmdlcyA6IHRoZWlyQ2hhbmdlcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uZmxpY3QoaHVuaywgbWluZSwgdGhlaXIpIHtcbiAgaHVuay5jb25mbGljdCA9IHRydWU7XG4gIGh1bmsubGluZXMucHVzaCh7XG4gICAgY29uZmxpY3Q6IHRydWUsXG4gICAgbWluZTogbWluZSxcbiAgICB0aGVpcnM6IHRoZWlyXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRMZWFkaW5nKGh1bmssIGluc2VydCwgdGhlaXIpIHtcbiAgd2hpbGUgKGluc2VydC5vZmZzZXQgPCB0aGVpci5vZmZzZXQgJiYgaW5zZXJ0LmluZGV4IDwgaW5zZXJ0LmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gaW5zZXJ0LmxpbmVzW2luc2VydC5pbmRleCsrXTtcbiAgICBodW5rLmxpbmVzLnB1c2gobGluZSk7XG4gICAgaW5zZXJ0Lm9mZnNldCsrO1xuICB9XG59XG5mdW5jdGlvbiBpbnNlcnRUcmFpbGluZyhodW5rLCBpbnNlcnQpIHtcbiAgd2hpbGUgKGluc2VydC5pbmRleCA8IGluc2VydC5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IGluc2VydC5saW5lc1tpbnNlcnQuaW5kZXgrK107XG4gICAgaHVuay5saW5lcy5wdXNoKGxpbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RDaGFuZ2Uoc3RhdGUpIHtcbiAgbGV0IHJldCA9IFtdLFxuICAgICAgb3BlcmF0aW9uID0gc3RhdGUubGluZXNbc3RhdGUuaW5kZXhdWzBdO1xuICB3aGlsZSAoc3RhdGUuaW5kZXggPCBzdGF0ZS5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IHN0YXRlLmxpbmVzW3N0YXRlLmluZGV4XTtcblxuICAgIC8vIEdyb3VwIGFkZGl0aW9ucyB0aGF0IGFyZSBpbW1lZGlhdGVseSBhZnRlciBzdWJ0cmFjdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgb25lIFwiYXRvbWljXCIgbW9kaWZ5IGNoYW5nZS5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnLScgJiYgbGluZVswXSA9PT0gJysnKSB7XG4gICAgICBvcGVyYXRpb24gPSAnKyc7XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gbGluZVswXSkge1xuICAgICAgcmV0LnB1c2gobGluZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuZnVuY3Rpb24gY29sbGVjdENvbnRleHQoc3RhdGUsIG1hdGNoQ2hhbmdlcykge1xuICBsZXQgY2hhbmdlcyA9IFtdLFxuICAgICAgbWVyZ2VkID0gW10sXG4gICAgICBtYXRjaEluZGV4ID0gMCxcbiAgICAgIGNvbnRleHRDaGFuZ2VzID0gZmFsc2UsXG4gICAgICBjb25mbGljdGVkID0gZmFsc2U7XG4gIHdoaWxlIChtYXRjaEluZGV4IDwgbWF0Y2hDaGFuZ2VzLmxlbmd0aFxuICAgICAgICAmJiBzdGF0ZS5pbmRleCA8IHN0YXRlLmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBjaGFuZ2UgPSBzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleF0sXG4gICAgICAgIG1hdGNoID0gbWF0Y2hDaGFuZ2VzW21hdGNoSW5kZXhdO1xuXG4gICAgLy8gT25jZSB3ZSd2ZSBoaXQgb3VyIGFkZCwgdGhlbiB3ZSBhcmUgZG9uZVxuICAgIGlmIChtYXRjaFswXSA9PT0gJysnKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb250ZXh0Q2hhbmdlcyA9IGNvbnRleHRDaGFuZ2VzIHx8IGNoYW5nZVswXSAhPT0gJyAnO1xuXG4gICAgbWVyZ2VkLnB1c2gobWF0Y2gpO1xuICAgIG1hdGNoSW5kZXgrKztcblxuICAgIC8vIENvbnN1bWUgYW55IGFkZGl0aW9ucyBpbiB0aGUgb3RoZXIgYmxvY2sgYXMgYSBjb25mbGljdCB0byBhdHRlbXB0XG4gICAgLy8gdG8gcHVsbCBpbiB0aGUgcmVtYWluaW5nIGNvbnRleHQgYWZ0ZXIgdGhpc1xuICAgIGlmIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgY29uZmxpY3RlZCA9IHRydWU7XG5cbiAgICAgIHdoaWxlIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgICBjaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlID0gc3RhdGUubGluZXNbKytzdGF0ZS5pbmRleF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1hdGNoLnN1YnN0cigxKSA9PT0gY2hhbmdlLnN1YnN0cigxKSkge1xuICAgICAgY2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoKG1hdGNoQ2hhbmdlc1ttYXRjaEluZGV4XSB8fCAnJylbMF0gPT09ICcrJ1xuICAgICAgJiYgY29udGV4dENoYW5nZXMpIHtcbiAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChjb25mbGljdGVkKSB7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICB3aGlsZSAobWF0Y2hJbmRleCA8IG1hdGNoQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICBtZXJnZWQucHVzaChtYXRjaENoYW5nZXNbbWF0Y2hJbmRleCsrXSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1lcmdlZCxcbiAgICBjaGFuZ2VzXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFsbFJlbW92ZXMoY2hhbmdlcykge1xuICByZXR1cm4gY2hhbmdlcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgY2hhbmdlKSB7XG4gICAgcmV0dXJuIHByZXYgJiYgY2hhbmdlWzBdID09PSAnLSc7XG4gIH0sIHRydWUpO1xufVxuZnVuY3Rpb24gc2tpcFJlbW92ZVN1cGVyc2V0KHN0YXRlLCByZW1vdmVDaGFuZ2VzLCBkZWx0YSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRlbHRhOyBpKyspIHtcbiAgICBsZXQgY2hhbmdlQ29udGVudCA9IHJlbW92ZUNoYW5nZXNbcmVtb3ZlQ2hhbmdlcy5sZW5ndGggLSBkZWx0YSArIGldLnN1YnN0cigxKTtcbiAgICBpZiAoc3RhdGUubGluZXNbc3RhdGUuaW5kZXggKyBpXSAhPT0gJyAnICsgY2hhbmdlQ29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLmluZGV4ICs9IGRlbHRhO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lcykge1xuICBsZXQgb2xkTGluZXMgPSAwO1xuICBsZXQgbmV3TGluZXMgPSAwO1xuXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgIGlmICh0eXBlb2YgbGluZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBteUNvdW50ID0gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lLm1pbmUpO1xuICAgICAgbGV0IHRoZWlyQ291bnQgPSBjYWxjT2xkTmV3TGluZUNvdW50KGxpbmUudGhlaXJzKTtcblxuICAgICAgaWYgKG9sZExpbmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG15Q291bnQub2xkTGluZXMgPT09IHRoZWlyQ291bnQub2xkTGluZXMpIHtcbiAgICAgICAgICBvbGRMaW5lcyArPSBteUNvdW50Lm9sZExpbmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9sZExpbmVzID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChteUNvdW50Lm5ld0xpbmVzID09PSB0aGVpckNvdW50Lm5ld0xpbmVzKSB7XG4gICAgICAgICAgbmV3TGluZXMgKz0gbXlDb3VudC5uZXdMaW5lcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdMaW5lcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3TGluZXMgIT09IHVuZGVmaW5lZCAmJiAobGluZVswXSA9PT0gJysnIHx8IGxpbmVbMF0gPT09ICcgJykpIHtcbiAgICAgICAgbmV3TGluZXMrKztcbiAgICAgIH1cbiAgICAgIGlmIChvbGRMaW5lcyAhPT0gdW5kZWZpbmVkICYmIChsaW5lWzBdID09PSAnLScgfHwgbGluZVswXSA9PT0gJyAnKSkge1xuICAgICAgICBvbGRMaW5lcysrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtvbGRMaW5lcywgbmV3TGluZXN9O1xufVxuIl19 + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/structuredPatch = structuredPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch; + + var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + + /*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === 'undefined') { + options.context = 4; + } + + var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr, options); + diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier + + function contextLines(lines) { + return lines.map(function (entry) { + return ' ' + entry; + }); + } + + var hunks = []; + var oldRangeStart = 0, + newRangeStart = 0, + curRange = [], + oldLine = 1, + newLine = 1; + + /*istanbul ignore start*/var _loop = function _loop( /*istanbul ignore end*/i) { + var current = diff[i], + lines = current.lines || current.value.replace(/\n$/, '').split('\n'); + current.lines = lines; + + if (current.added || current.removed) { + /*istanbul ignore start*/var _curRange; + + /*istanbul ignore end*/ // If we have previous context, start with that + if (!oldRangeStart) { + var prev = diff[i - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + + // Output our changes + /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) { + return (current.added ? '+' : '-') + entry; + }))); + + // Track the updated file position + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + // Identical context lines. Track line changes + if (oldRangeStart) { + // Close out any changes that have been output (or join overlapping) + if (lines.length <= options.context * 2 && i < diff.length - 2) { + /*istanbul ignore start*/var _curRange2; + + /*istanbul ignore end*/ // Overlapping + /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines))); + } else { + /*istanbul ignore start*/var _curRange3; + + /*istanbul ignore end*/ // end the range and output + var contextSize = Math.min(lines.length, options.context); + /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize)))); + + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i >= diff.length - 2 && lines.length <= options.context) { + // EOF is inside this hunk + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + if (lines.length == 0 && !oldEOFNewline) { + // special case: old has no eol and no trailing context; no-nl can end up before adds + curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); + } else if (!oldEOFNewline || !newEOFNewline) { + curRange.push('\\ No newline at end of file'); + } + } + hunks.push(hunk); + + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + + for (var i = 0; i < diff.length; i++) { + /*istanbul ignore start*/_loop( /*istanbul ignore end*/i); + } + + return { + oldFileName: oldFileName, newFileName: newFileName, + oldHeader: oldHeader, newHeader: newHeader, + hunks: hunks + }; + } + + function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options); + + var ret = []; + if (oldFileName == newFileName) { + ret.push('Index: ' + oldFileName); + } + ret.push('==================================================================='); + ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader)); + ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); + + for (var i = 0; i < diff.hunks.length; i++) { + var hunk = diff.hunks[i]; + ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); + ret.push.apply(ret, hunk.lines); + } + + return ret.join('\n') + '\n'; + } + + function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOlsic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwib2xkRmlsZU5hbWUiLCJuZXdGaWxlTmFtZSIsIm9sZFN0ciIsIm5ld1N0ciIsIm9sZEhlYWRlciIsIm5ld0hlYWRlciIsIm9wdGlvbnMiLCJjb250ZXh0IiwiZGlmZiIsInB1c2giLCJ2YWx1ZSIsImxpbmVzIiwiY29udGV4dExpbmVzIiwibWFwIiwiZW50cnkiLCJodW5rcyIsIm9sZFJhbmdlU3RhcnQiLCJuZXdSYW5nZVN0YXJ0IiwiY3VyUmFuZ2UiLCJvbGRMaW5lIiwibmV3TGluZSIsImkiLCJjdXJyZW50IiwicmVwbGFjZSIsInNwbGl0IiwiYWRkZWQiLCJyZW1vdmVkIiwicHJldiIsInNsaWNlIiwibGVuZ3RoIiwiY29udGV4dFNpemUiLCJNYXRoIiwibWluIiwiaHVuayIsIm9sZFN0YXJ0Iiwib2xkTGluZXMiLCJuZXdTdGFydCIsIm5ld0xpbmVzIiwib2xkRU9GTmV3bGluZSIsInRlc3QiLCJuZXdFT0ZOZXdsaW5lIiwic3BsaWNlIiwicmV0IiwiYXBwbHkiLCJqb2luIiwiZmlsZU5hbWUiXSwibWFwcGluZ3MiOiI7OztnQ0FFZ0JBLGUsR0FBQUEsZTt5REFpR0FDLG1CLEdBQUFBLG1CO3lEQXdCQUMsVyxHQUFBQSxXOztBQTNIaEI7Ozs7dUJBRU8sU0FBU0YsZUFBVCxDQUF5QkcsV0FBekIsRUFBc0NDLFdBQXRDLEVBQW1EQyxNQUFuRCxFQUEyREMsTUFBM0QsRUFBbUVDLFNBQW5FLEVBQThFQyxTQUE5RSxFQUF5RkMsT0FBekYsRUFBa0c7QUFDdkcsTUFBSSxDQUFDQSxPQUFMLEVBQWM7QUFDWkEsY0FBVSxFQUFWO0FBQ0Q7QUFDRCxNQUFJLE9BQU9BLFFBQVFDLE9BQWYsS0FBMkIsV0FBL0IsRUFBNEM7QUFDMUNELFlBQVFDLE9BQVIsR0FBa0IsQ0FBbEI7QUFDRDs7QUFFRCxN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QUEvQyxFQUEwREMsU0FBMUQsRUFBcUVDLE9BQXJFLEVBQThFO0FBQ25GLFNBQU9SLG9CQUFvQitDLFFBQXBCLEVBQThCQSxRQUE5QixFQUF3QzNDLE1BQXhDLEVBQWdEQyxNQUFoRCxFQUF3REMsU0FBeEQsRUFBbUVDLFNBQW5FLEVBQThFQyxPQUE5RSxDQUFQO0FBQ0QiLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWZmTGluZXN9IGZyb20gJy4uL2RpZmYvbGluZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgIG9wdGlvbnMuY29udGV4dCA9IDQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbiAgZGlmZi5wdXNoKHt2YWx1ZTogJycsIGxpbmVzOiBbXX0pOyAgIC8vIEFwcGVuZCBhbiBlbXB0eSB2YWx1ZSB0byBtYWtlIGNsZWFudXAgZWFzaWVyXG5cbiAgZnVuY3Rpb24gY29udGV4dExpbmVzKGxpbmVzKSB7XG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihlbnRyeSkgeyByZXR1cm4gJyAnICsgZW50cnk7IH0pO1xuICB9XG5cbiAgbGV0IGh1bmtzID0gW107XG4gIGxldCBvbGRSYW5nZVN0YXJ0ID0gMCwgbmV3UmFuZ2VTdGFydCA9IDAsIGN1clJhbmdlID0gW10sXG4gICAgICBvbGRMaW5lID0gMSwgbmV3TGluZSA9IDE7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWZmW2ldLFxuICAgICAgICAgIGxpbmVzID0gY3VycmVudC5saW5lcyB8fCBjdXJyZW50LnZhbHVlLnJlcGxhY2UoL1xcbiQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICAgIGN1cnJlbnQubGluZXMgPSBsaW5lcztcblxuICAgIGlmIChjdXJyZW50LmFkZGVkIHx8IGN1cnJlbnQucmVtb3ZlZCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwcmV2aW91cyBjb250ZXh0LCBzdGFydCB3aXRoIHRoYXRcbiAgICAgIGlmICghb2xkUmFuZ2VTdGFydCkge1xuICAgICAgICBjb25zdCBwcmV2ID0gZGlmZltpIC0gMV07XG4gICAgICAgIG9sZFJhbmdlU3RhcnQgPSBvbGRMaW5lO1xuICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gbmV3TGluZTtcblxuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgIGN1clJhbmdlID0gb3B0aW9ucy5jb250ZXh0ID4gMCA/IGNvbnRleHRMaW5lcyhwcmV2LmxpbmVzLnNsaWNlKC1vcHRpb25zLmNvbnRleHQpKSA6IFtdO1xuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE91dHB1dCBvdXIgY2hhbmdlc1xuICAgICAgY3VyUmFuZ2UucHVzaCguLi4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiAoY3VycmVudC5hZGRlZCA/ICcrJyA6ICctJykgKyBlbnRyeTtcbiAgICAgIH0pKTtcblxuICAgICAgLy8gVHJhY2sgdGhlIHVwZGF0ZWQgZmlsZSBwb3NpdGlvblxuICAgICAgaWYgKGN1cnJlbnQuYWRkZWQpIHtcbiAgICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWRlbnRpY2FsIGNvbnRleHQgbGluZXMuIFRyYWNrIGxpbmUgY2hhbmdlc1xuICAgICAgaWYgKG9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3V0IGFueSBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG91dHB1dCAob3Igam9pbiBvdmVybGFwcGluZylcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQgKiAyICYmIGkgPCBkaWZmLmxlbmd0aCAtIDIpIHtcbiAgICAgICAgICAvLyBPdmVybGFwcGluZ1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGVuZCB0aGUgcmFuZ2UgYW5kIG91dHB1dFxuICAgICAgICAgIGxldCBjb250ZXh0U2l6ZSA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgICAgICBjdXJSYW5nZS5wdXNoKC4uLiBjb250ZXh0TGluZXMobGluZXMuc2xpY2UoMCwgY29udGV4dFNpemUpKSk7XG5cbiAgICAgICAgICBsZXQgaHVuayA9IHtcbiAgICAgICAgICAgIG9sZFN0YXJ0OiBvbGRSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgb2xkTGluZXM6IChvbGRMaW5lIC0gb2xkUmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIG5ld1N0YXJ0OiBuZXdSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgbmV3TGluZXM6IChuZXdMaW5lIC0gbmV3UmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIGxpbmVzOiBjdXJSYW5nZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGkgPj0gZGlmZi5sZW5ndGggLSAyICYmIGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQpIHtcbiAgICAgICAgICAgIC8vIEVPRiBpcyBpbnNpZGUgdGhpcyBodW5rXG4gICAgICAgICAgICBsZXQgb2xkRU9GTmV3bGluZSA9ICgvXFxuJC8udGVzdChvbGRTdHIpKTtcbiAgICAgICAgICAgIGxldCBuZXdFT0ZOZXdsaW5lID0gKC9cXG4kLy50ZXN0KG5ld1N0cikpO1xuICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA9PSAwICYmICFvbGRFT0ZOZXdsaW5lKSB7XG4gICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogb2xkIGhhcyBubyBlb2wgYW5kIG5vIHRyYWlsaW5nIGNvbnRleHQ7IG5vLW5sIGNhbiBlbmQgdXAgYmVmb3JlIGFkZHNcbiAgICAgICAgICAgICAgY3VyUmFuZ2Uuc3BsaWNlKGh1bmsub2xkTGluZXMsIDAsICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9sZEVPRk5ld2xpbmUgfHwgIW5ld0VPRk5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgY3VyUmFuZ2UucHVzaCgnXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGh1bmtzLnB1c2goaHVuayk7XG5cbiAgICAgICAgICBvbGRSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBjdXJSYW5nZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIG5ld0xpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgb2xkRmlsZU5hbWU6IG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZTogbmV3RmlsZU5hbWUsXG4gICAgb2xkSGVhZGVyOiBvbGRIZWFkZXIsIG5ld0hlYWRlcjogbmV3SGVhZGVyLFxuICAgIGh1bmtzOiBodW5rc1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdvRmlsZXNQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID0gc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcblxuICBjb25zdCByZXQgPSBbXTtcbiAgaWYgKG9sZEZpbGVOYW1lID09IG5ld0ZpbGVOYW1lKSB7XG4gICAgcmV0LnB1c2goJ0luZGV4OiAnICsgb2xkRmlsZU5hbWUpO1xuICB9XG4gIHJldC5wdXNoKCc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG4gIHJldC5wdXNoKCctLS0gJyArIGRpZmYub2xkRmlsZU5hbWUgKyAodHlwZW9mIGRpZmYub2xkSGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm9sZEhlYWRlcikpO1xuICByZXQucHVzaCgnKysrICcgKyBkaWZmLm5ld0ZpbGVOYW1lICsgKHR5cGVvZiBkaWZmLm5ld0hlYWRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6ICdcXHQnICsgZGlmZi5uZXdIZWFkZXIpKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmYuaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBodW5rID0gZGlmZi5odW5rc1tpXTtcbiAgICByZXQucHVzaChcbiAgICAgICdAQCAtJyArIGh1bmsub2xkU3RhcnQgKyAnLCcgKyBodW5rLm9sZExpbmVzXG4gICAgICArICcgKycgKyBodW5rLm5ld1N0YXJ0ICsgJywnICsgaHVuay5uZXdMaW5lc1xuICAgICAgKyAnIEBAJ1xuICAgICk7XG4gICAgcmV0LnB1c2guYXBwbHkocmV0LCBodW5rLmxpbmVzKTtcbiAgfVxuXG4gIHJldHVybiByZXQuam9pbignXFxuJykgKyAnXFxuJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGNoKGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNyZWF0ZVR3b0ZpbGVzUGF0Y2goZmlsZU5hbWUsIGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpO1xufVxuIl19 + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + exports. /*istanbul ignore end*/arrayEqual = arrayEqual; + /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayStartsWith = arrayStartsWith; + function arrayEqual(a, b) { + if (a.length !== b.length) { + return false; + } + + return arrayStartsWith(a, b); + } + + function arrayStartsWith(array, start) { + if (start.length > array.length) { + return false; + } + + for (var i = 0; i < start.length; i++) { + if (start[i] !== array[i]) { + return false; + } + } + + return true; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2FycmF5LmpzIl0sIm5hbWVzIjpbImFycmF5RXF1YWwiLCJhcnJheVN0YXJ0c1dpdGgiLCJhIiwiYiIsImxlbmd0aCIsImFycmF5Iiwic3RhcnQiLCJpIl0sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCQSxVLEdBQUFBLFU7eURBUUFDLGUsR0FBQUEsZTtBQVJULFNBQVNELFVBQVQsQ0FBb0JFLENBQXBCLEVBQXVCQyxDQUF2QixFQUEwQjtBQUMvQixNQUFJRCxFQUFFRSxNQUFGLEtBQWFELEVBQUVDLE1BQW5CLEVBQTJCO0FBQ3pCLFdBQU8sS0FBUDtBQUNEOztBQUVELFNBQU9ILGdCQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBQVA7QUFDRDs7QUFFTSxTQUFTRixlQUFULENBQXlCSSxLQUF6QixFQUFnQ0MsS0FBaEMsRUFBdUM7QUFDNUMsTUFBSUEsTUFBTUYsTUFBTixHQUFlQyxNQUFNRCxNQUF6QixFQUFpQztBQUMvQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxPQUFLLElBQUlHLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsTUFBTUYsTUFBMUIsRUFBa0NHLEdBQWxDLEVBQXVDO0FBQ3JDLFFBQUlELE1BQU1DLENBQU4sTUFBYUYsTUFBTUUsQ0FBTixDQUFqQixFQUEyQjtBQUN6QixhQUFPLEtBQVA7QUFDRDtBQUNGOztBQUVELFNBQU8sSUFBUDtBQUNEIiwiZmlsZSI6ImFycmF5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFycmF5RXF1YWwoYSwgYikge1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5U3RhcnRzV2l0aChhLCBiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5U3RhcnRzV2l0aChhcnJheSwgc3RhcnQpIHtcbiAgaWYgKHN0YXJ0Lmxlbmd0aCA+IGFycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhcnQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3RhcnRbaV0gIT09IGFycmF5W2ldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0= + + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP; + // See: http://code.google.com/p/google-diff-match-patch/wiki/API + function convertChangesToDMP(changes) { + var ret = [], + change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, + operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + for (var i = 0; i < changes.length; i++) { + change = changes[i]; + if (change.added) { + operation = 1; + } else if (change.removed) { + operation = -1; + } else { + operation = 0; + } + + ret.push([operation, change.value]); + } + return ret; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvRE1QIiwiY2hhbmdlcyIsInJldCIsImNoYW5nZSIsIm9wZXJhdGlvbiIsImkiLCJsZW5ndGgiLCJhZGRlZCIsInJlbW92ZWQiLCJwdXNoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7OztnQ0FDZ0JBLG1CLEdBQUFBLG1CO0FBRGhCO0FBQ08sU0FBU0EsbUJBQVQsQ0FBNkJDLE9BQTdCLEVBQXNDO0FBQzNDLE1BQUlDLE1BQU0sRUFBVjtBQUFBLE1BQ0lDLHdDQURKO0FBQUEsTUFFSUMsMkNBRko7QUFHQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUosUUFBUUssTUFBNUIsRUFBb0NELEdBQXBDLEVBQXlDO0FBQ3ZDRixhQUFTRixRQUFRSSxDQUFSLENBQVQ7QUFDQSxRQUFJRixPQUFPSSxLQUFYLEVBQWtCO0FBQ2hCSCxrQkFBWSxDQUFaO0FBQ0QsS0FGRCxNQUVPLElBQUlELE9BQU9LLE9BQVgsRUFBb0I7QUFDekJKLGtCQUFZLENBQUMsQ0FBYjtBQUNELEtBRk0sTUFFQTtBQUNMQSxrQkFBWSxDQUFaO0FBQ0Q7O0FBRURGLFFBQUlPLElBQUosQ0FBUyxDQUFDTCxTQUFELEVBQVlELE9BQU9PLEtBQW5CLENBQVQ7QUFDRDtBQUNELFNBQU9SLEdBQVA7QUFDRCIsImZpbGUiOiJkbXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTZWU6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGUtZGlmZi1tYXRjaC1wYXRjaC93aWtpL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9ETVAoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW10sXG4gICAgICBjaGFuZ2UsXG4gICAgICBvcGVyYXRpb247XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgb3BlcmF0aW9uID0gMTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICBvcGVyYXRpb24gPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3BlcmF0aW9uID0gMDtcbiAgICB9XG5cbiAgICByZXQucHVzaChbb3BlcmF0aW9uLCBjaGFuZ2UudmFsdWVdKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuIl19 + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML; + function convertChangesToXML(changes) { + var ret = []; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + if (change.added) { + ret.push(''); + } else if (change.removed) { + ret.push(''); + } + + ret.push(escapeHTML(change.value)); + + if (change.added) { + ret.push(''); + } else if (change.removed) { + ret.push(''); + } + } + return ret.join(''); + } + + function escapeHTML(s) { + var n = s; + n = n.replace(/&/g, '&'); + n = n.replace(//g, '>'); + n = n.replace(/"/g, '"'); + + return n; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2hhbmdlcyIsInJldCIsImkiLCJsZW5ndGgiLCJjaGFuZ2UiLCJhZGRlZCIsInB1c2giLCJyZW1vdmVkIiwiZXNjYXBlSFRNTCIsInZhbHVlIiwiam9pbiIsInMiLCJuIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsbUIsR0FBQUEsbUI7QUFBVCxTQUFTQSxtQkFBVCxDQUE2QkMsT0FBN0IsRUFBc0M7QUFDM0MsTUFBSUMsTUFBTSxFQUFWO0FBQ0EsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlGLFFBQVFHLE1BQTVCLEVBQW9DRCxHQUFwQyxFQUF5QztBQUN2QyxRQUFJRSxTQUFTSixRQUFRRSxDQUFSLENBQWI7QUFDQSxRQUFJRSxPQUFPQyxLQUFYLEVBQWtCO0FBQ2hCSixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNELEtBRkQsTUFFTyxJQUFJRixPQUFPRyxPQUFYLEVBQW9CO0FBQ3pCTixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNEOztBQUVETCxRQUFJSyxJQUFKLENBQVNFLFdBQVdKLE9BQU9LLEtBQWxCLENBQVQ7O0FBRUEsUUFBSUwsT0FBT0MsS0FBWCxFQUFrQjtBQUNoQkosVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRCxLQUZELE1BRU8sSUFBSUYsT0FBT0csT0FBWCxFQUFvQjtBQUN6Qk4sVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRDtBQUNGO0FBQ0QsU0FBT0wsSUFBSVMsSUFBSixDQUFTLEVBQVQsQ0FBUDtBQUNEOztBQUVELFNBQVNGLFVBQVQsQ0FBb0JHLENBQXBCLEVBQXVCO0FBQ3JCLE1BQUlDLElBQUlELENBQVI7QUFDQUMsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsT0FBaEIsQ0FBSjtBQUNBRCxNQUFJQSxFQUFFQyxPQUFGLENBQVUsSUFBVixFQUFnQixNQUFoQixDQUFKO0FBQ0FELE1BQUlBLEVBQUVDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLE1BQWhCLENBQUo7QUFDQUQsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsUUFBaEIsQ0FBSjs7QUFFQSxTQUFPRCxDQUFQO0FBQ0QiLCJmaWxlIjoieG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9YTUwoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBjaGFuZ2UgPSBjaGFuZ2VzW2ldO1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8aW5zPicpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8ZGVsPicpO1xuICAgIH1cblxuICAgIHJldC5wdXNoKGVzY2FwZUhUTUwoY2hhbmdlLnZhbHVlKSk7XG5cbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICByZXQucHVzaCgnPC9pbnM+Jyk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgcmV0LnB1c2goJzwvZGVsPicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVIVE1MKHMpIHtcbiAgbGV0IG4gPSBzO1xuICBuID0gbi5yZXBsYWNlKC8mL2csICcmYW1wOycpO1xuICBuID0gbi5yZXBsYWNlKC88L2csICcmbHQ7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xuXG4gIHJldHVybiBuO1xufVxuIl19 + + +/***/ }) +/******/ ]) +}); +; \ No newline at end of file diff --git a/dist/report/html_report/diverged.js b/dist/report/html_report/diverged.js new file mode 100644 index 00000000..b96620eb --- /dev/null +++ b/dist/report/html_report/diverged.js @@ -0,0 +1,340 @@ +'use strict'; +const noop = function (){}; +let LCS_DIFF_ARRAY_METHOD = undefined; +// debugger +if (typeof require !== 'undefined') { + LCS_DIFF_ARRAY_METHOD = require('diff').diffArrays; +} else { + try { + LCS_DIFF_ARRAY_METHOD = JsDiff.diffArrays; + } catch(err) { + console.error(err); + } +} + +const rowSpread = 1; + +const spread = 50; // range of adjacent pixels to aggregate when calculating diff +const IS_ADDED_WORD = '0_255_0_255'; +const IS_REMOVED_WORD = '255_0_0_255'; +const IS_ADDED_AND_REMOVED_WORD = '0_255_255_255'; +const IS_SAME_WORD = ''; +const OPACITY = '40'; // 0-255 range + +/** + * Applies Longest-Common-Subsequence-Diff algorithm to imageData formatted arrays + * + * @param {Uint8ClampedArray} [reference] baseline image + * @param {Uint8ClampedArray} [test] test image + * + * @returns {Uint8ClampedArray} diff image + * + */ +if (typeof module !== 'undefined') { + module.exports = diverged; +} + +function diverged(reference, test, h, w) { + console.time("diverged_total_time"); + + const spread = Math.floor(h / 80); //override + + console.log('spread:', spread); + + console.time("imgDataToWords"); + const img1wordArr = imgDataToWords(reference); + const img2wordArr = imgDataToWords(test); + console.timeEnd("imgDataToWords"); + + console.time("imgDataWordArrToColsAndRows"); + let cols_rows_ref = imgDataWordArrToColsAndRows(img1wordArr, h, w); + let cols_rows_test = imgDataWordArrToColsAndRows(img2wordArr, h, w); + console.timeEnd("imgDataWordArrToColsAndRows"); + + console.time("groupAdjacent"); + const columnRef = groupAdjacent(cols_rows_ref.columns, spread, h, w); + const columnTest = groupAdjacent(cols_rows_test.columns, spread, h, w); + console.timeEnd("groupAdjacent"); + + console.time("columnDiffRaw"); + const columnDiffRaw = diffArr(columnRef, columnTest, h, w); + console.timeEnd("columnDiffRaw"); + + console.time("reduceColumnDiffRaw"); + const reducedColumnDiff = reduceColumnDiffRaw(columnDiffRaw, h, w); + console.timeEnd("reduceColumnDiffRaw"); + // console.log("reducedColumnDiff>>>", reducedColumnDiff); + + console.time("unGroupAdjacent"); + const expandedColumns = ungroupAdjacent(reducedColumnDiff, spread, cols_rows_test.columns, h, w); + console.timeEnd("unGroupAdjacent"); + + console.time("columnWordDataToImgDataFormatAsWords"); + const convertedColumnDiffImgData = columnWordDataToImgDataFormatAsWords(expandedColumns, h, w); + console.timeEnd("columnWordDataToImgDataFormatAsWords"); + // console.log("convertedColumnDiffImgData>>>", convertedColumnDiffImgData); + + console.time("imgDataWordsToClampedImgData"); + const imgDataArr = convertImgDataWordsToClampedImgData(convertedColumnDiffImgData); + console.timeEnd("imgDataWordsToClampedImgData"); + // console.log("imgDataArr>>>", imgDataArr); + + console.timeEnd("diverged_total_time"); + return imgDataArr; +} + +/** + * ========= HELPERS ======== + */ + +function columnWordDataToImgDataFormatAsWords(columns, h, w) { + const imgDataWordsLength = w * h; + + let convertedArr = new Array(imgDataWordsLength); + for (var i = 0; i < imgDataWordsLength; i++) { + const {column, depth} = serialToColumnMap(i, h, w); + convertedArr[i] = columns[column][depth]; + } + return convertedArr; +} + +function convertImgDataWordsToClampedImgData(wordsArr) { + let convertedArr = new Uint8ClampedArray(wordsArr.length * 4); + for (var i = 0; i < wordsArr.length; i++) { + const convertedOffset = i * 4; + const segments = wordsArr[i].split('_'); + convertedArr[convertedOffset] = segments[0]; + convertedArr[convertedOffset+1] = segments[1]; + convertedArr[convertedOffset+2] = segments[2]; + convertedArr[convertedOffset+3] = segments[3]; + } + return convertedArr; +} + +function reduceColumnDiffRaw(columnDiffs, h, w) { + let reducedColumns = new Array(columnDiffs.length); + for (let columnIndex = 0; columnIndex < columnDiffs.length; columnIndex++) { + const columnDiff = columnDiffs[columnIndex]; + let resultColumn = new Array(); + let removedCounter = 0; + let resultClass = ''; + let segment = []; + let debug = false; + + for (let depthIndex = 0; depthIndex < columnDiff.length; depthIndex++) { + let segmentLength = 0; + + // Categorize the current segment + if (columnDiff[depthIndex].removed) { + segmentLength = columnDiff[depthIndex].count; + removedCounter += segmentLength; + resultClass = IS_REMOVED_WORD; + } else { + if (columnDiff[depthIndex].added) { + if (removedCounter) { + resultClass = IS_ADDED_AND_REMOVED_WORD; + } else { + resultClass = IS_ADDED_WORD; + } + } else { + resultClass = IS_SAME_WORD; + } + + segmentLength = columnDiff[depthIndex].count; + + if (removedCounter > 0) { + if (segmentLength > removedCounter) { + segmentLength -= removedCounter; + removedCounter = 0; + } else { + removedCounter -= segmentLength; + segmentLength = 0; + } + } + } + + // Limit segmentLength to total length of column + if (!segmentLength) { + continue; + } else { + segmentLength = Math.min(segmentLength, h - resultColumn.length); + } + + const printSampleMap = false; + if (!printSampleMap || resultClass !== IS_SAME_WORD){ + segment = new Array(segmentLength).fill(resultClass); + } else { + // reduced resolution image + segment = columnDiff[depthIndex].value.slice(0,segmentLength).map((value, i) => { + if (/|/.test(value)) { + return value.split('|')[0]; + } + return value; + }); + } + + + resultColumn = resultColumn.concat(segment); + + if (resultColumn.length > h) { + console.log('WARNING -- this value is out of bounds!') + } + } + + reducedColumns[columnIndex] = resultColumn; + } + + return reducedColumns; +} + +function diffArr(refArr, testArr, h, w) { + let rawResultArr = []; + for (let i = 0; i < refArr.length; i++) { + rawResultArr.push(LCS_DIFF_ARRAY_METHOD(refArr[i], testArr[i])); + } + return rawResultArr; +} + +function groupAdjacent(columns, spread, h, w) { + if (!spread) { + return columns; + } + + /** + * [getAdjacentArrayBounds retuns existing adjacent lower and upper column bounds] + * @param {[int]} pointer [current index] + * @param {[int]} spread [distance from index] + * @param {[int]} length [total length] + * @return {[array]} [0] lower bound, [1] upper bound + */ + function getAdjacentArrayBounds(pointer, spread, length) { + return [ + // Math.max(0, pointer - spread), + Math.max(0, pointer), + Math.min(length - 1, pointer + spread) + ] + } + + function getInterpolatedSequence(beginning, end) { + const interpolated = []; + for (let step = beginning; step <= end; step++) { + interpolated.push(step); + } + return interpolated; + } + + function getCompositeColumnDepthValues(columns, sequence, depth) { + return sequence.reduce((acc, column) => { + return acc.concat(columns[column][depth]); + }, []) + } + + function getCompositeRowIndexValues(groupedColumns, sequence, column) { + return sequence.reduce((acc, depth) => { + return acc.concat(groupedColumns[column][depth]); + }, []) + } + + const groupedColumns = new Array(); + let columnPointer = 0; + while (columnPointer < w) { + const adjacentColumnBounds = getAdjacentArrayBounds(columnPointer, spread, w); + const interpolatedColumns = getInterpolatedSequence(...adjacentColumnBounds); + + const columnComposite = new Array(); + for (var depth = 0; depth < h; depth++) { + columnComposite[depth] = getCompositeColumnDepthValues(columns, interpolatedColumns, depth).join('|'); + } + groupedColumns.push(columnComposite); + columnPointer += spread; + } + + const groupedRows = new Array(); + if (rowSpread > 1) { + for (var index = 0; index < groupedColumns.length; index++) { + const rowComposite = new Array(); + let depthPointer = 0; + while (depthPointer < h) { + const adjacentRowBounds = getAdjacentArrayBounds(depthPointer, rowSpread, h); + const interpolatedRows = getInterpolatedSequence(...adjacentRowBounds); + rowComposite.push(getCompositeRowIndexValues(groupedColumns, interpolatedRows, index).join(',')); + depthPointer += rowSpread; + } + groupedRows[index] = rowComposite; + } + } + return groupedRows.length ? groupedRows : groupedColumns ; +} + +function ungroupAdjacent(grouped, spread, columnUnderlay, h, w) { + if (!spread) { + return grouped; + } + + function mapUngroupedColumnIndexToGroupedIndex(index, spread) { + return Math.floor(index / spread); + } + + // expand columns + const ungrouped = new Array(w); + for (let index = 0; index < w; index++) { + if (!ungrouped[index]) { + ungrouped[index] = new Array(h); + } + + const groupedIndexMap = mapUngroupedColumnIndexToGroupedIndex(index, spread); + for (let depth = 0; depth < h; depth++) { + const groupedDepthMap = rowSpread > 1 ? mapUngroupedColumnIndexToGroupedIndex(depth, rowSpread) : depth; + const value = grouped[groupedIndexMap][groupedDepthMap].split('|')[0]; + ungrouped[index][depth] = value ? value : columnUnderlay[index][depth].replace(/\d+$/, OPACITY); + } + } + + return ungrouped +} + + + +function imgDataWordArrToColsAndRows(arr, h, w) { + let columns = new Array(w); + let rows = new Array(h); + + for (var i = 0; i < arr.length; i++) { + const word = arr[i]; + + var {column, depth} = serialToColumnMap(i, h, w); + if (!columns[column]) { + columns[column] = new Array(h); + } + columns[column][depth] = word; + + var {row, index} = serialToRowMap(i, h, w); + if (!rows[row]) { + rows[row] = new Array(w); + } + rows[row][index] = word; + } + return {columns, rows} +} + +function serialToColumnMap(index, h, w) { + return { + column: index % w, + depth: Math.floor(index / w) + } +} + +function serialToRowMap(index, h, w) { + return { + row: Math.floor(index / w), + index: index % w + } +} + +function imgDataToWords(arr) { + let result = []; + for (let i = 0; i < arr.length-1; i += 4) { + result.push(`${arr[i]}_${arr[i+1]}_${arr[i+2]}_${arr[i+3]}`) + } + return result; +} diff --git a/dist/report/html_report/divergedWorker.js b/dist/report/html_report/divergedWorker.js new file mode 100644 index 00000000..c41d85e5 --- /dev/null +++ b/dist/report/html_report/divergedWorker.js @@ -0,0 +1,6 @@ +importScripts('diff.js'); +importScripts('diverged.js'); +self.addEventListener('message', function(e) { + self.postMessage(diverged(...e.data.divergedInput)); + self.close(); +}, false); diff --git a/dist/report/html_report/index.html b/dist/report/html_report/index.html new file mode 100644 index 00000000..688ed2f4 --- /dev/null +++ b/dist/report/html_report/index.html @@ -0,0 +1,44 @@ + + + + + BackstopJS Report + + + + +

    + +
    + + + + + diff --git a/dist/report/html_report/index_bundle.js b/dist/report/html_report/index_bundle.js new file mode 100644 index 00000000..6166eba9 --- /dev/null +++ b/dist/report/html_report/index_bundle.js @@ -0,0 +1,3602 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./compare/src/actions/index.js": +/*!**************************************!*\ + !*** ./compare/src/actions/index.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/close.png": +/*!********************************************!*\ + !*** ./compare/src/assets/icons/close.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/iconDown.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/iconDown.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/search.png": +/*!*********************************************!*\ + !*** ./compare/src/assets/icons/search.png ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/settings.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/settings.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); + +/***/ }), + +/***/ "./compare/src/assets/images/logo.png": +/*!********************************************!*\ + !*** ./compare/src/assets/images/logo.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); + +/***/ }), + +/***/ "./compare/src/components/App.js": +/*!***************************************!*\ + !*** ./compare/src/components/App.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonFilter.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ButtonFilter.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonSettings.js": +/*!********************************************************!*\ + !*** ./compare/src/components/atoms/ButtonSettings.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/DiffDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/DiffDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ErrorMessages.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ErrorMessages.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/IdContainer.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/IdContainer.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImagePreview.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ImagePreview.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImageScrubber.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ImageScrubber.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/InputTextSearch.js": +/*!*********************************************************!*\ + !*** ./compare/src/components/atoms/InputTextSearch.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/Logo.js": +/*!**********************************************!*\ + !*** ./compare/src/components/atoms/Logo.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/NavButtons.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/NavButtons.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SettingOption.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/SettingOption.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SuiteName.js": +/*!***************************************************!*\ + !*** ./compare/src/components/atoms/SuiteName.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/TextDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/TextDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/UrlDetails.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/UrlDetails.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/Header.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/ecosystems/Header.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/List.js": +/*!***************************************************!*\ + !*** ./compare/src/components/ecosystems/List.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/ScrubberModal.js": +/*!************************************************************!*\ + !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/ApproveButton.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/ApproveButton.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/FiltersSwitch.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/FiltersSwitch.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsContainer.js": +/*!***************************************************************!*\ + !*** ./compare/src/components/molecules/SettingsContainer.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsPopup.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/SettingsPopup.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TestImages.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TestImages.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TextSearch.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TextSearch.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/TestCard.js": +/*!******************************************************!*\ + !*** ./compare/src/components/organisms/TestCard.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/Toolbar.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/organisms/Toolbar.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/topbar.js": +/*!****************************************************!*\ + !*** ./compare/src/components/organisms/topbar.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); + +/***/ }), + +/***/ "./compare/src/index.js": +/*!******************************!*\ + !*** ./compare/src/index.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/index.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/layoutSettings.js": +/*!************************************************!*\ + !*** ./compare/src/reducers/layoutSettings.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/scrubber.js": +/*!******************************************!*\ + !*** ./compare/src/reducers/scrubber.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/suiteInfo.js": +/*!*******************************************!*\ + !*** ./compare/src/reducers/suiteInfo.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/tests.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/tests.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); + +/***/ }), + +/***/ "./compare/src/store.js": +/*!******************************!*\ + !*** ./compare/src/store.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); + +/***/ }), + +/***/ "./compare/src/styles/index.js": +/*!*************************************!*\ + !*** ./compare/src/styles/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); + +/***/ }), + +/***/ "./node_modules/backstop-twentytwenty/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/backstop-twentytwenty/index.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/factory.js": +/*!****************************************************!*\ + !*** ./node_modules/create-react-class/factory.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
    Hello World
    ;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
    Hello, {name}!
    ;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/index.js": +/*!**************************************************!*\ + !*** ./node_modules/create-react-class/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); + +/***/ }), + +/***/ "./node_modules/exenv/index.js": +/*!*************************************!*\ + !*** ./node_modules/exenv/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/EventListener.js": +/*!************************************************!*\ + !*** ./node_modules/fbjs/lib/EventListener.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelize.js": +/*!*******************************************!*\ + !*** ./node_modules/fbjs/lib/camelize.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": +/*!****************************************************!*\ + !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/containsNode.js": +/*!***********************************************!*\ + !*** ./node_modules/fbjs/lib/containsNode.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": +/*!********************************************************!*\ + !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * +
    +
    + Personal information +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    +
    + Registration +
    + +
    + +
    + +
    +
    +
    + An interesting fact about you! +
    + + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    +
    + Additional info: + + +
    + +
    +
    + +
    diff --git a/src/style.css b/src/style.css index c4301db2..b1693b54 100644 --- a/src/style.css +++ b/src/style.css @@ -1 +1,9 @@ -/* styles go here */ +.fieldset { + padding-bottom: 0; + margin-bottom: 20px; +} + +.field { + display: block; + padding-bottom: 10px; +} From 6a2ea66a605b8db682564da09c8b9aa46c1adbc9 Mon Sep 17 00:00:00 2001 From: Artem Kurinniy Date: Tue, 25 Apr 2023 22:24:04 +0300 Subject: [PATCH 3/4] deleted redundant label --- src/index.html | 174 ++++++++++++++++++++++++++++++++++++++++++++++++- src/main.js | 19 ------ src/style.css | 10 ++- 3 files changed, 182 insertions(+), 21 deletions(-) diff --git a/src/index.html b/src/index.html index 3348db1c..c8911af2 100644 --- a/src/index.html +++ b/src/index.html @@ -11,7 +11,179 @@ -

    HTML Form

    +
    +
    + Personal information +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    +
    + Registration +
    + +
    + +
    + +
    +
    +
    + An interesting fact about you! +
    + Do you love cats? + + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    +
    + Additional info: + + +
    + +
    +
    + +
    diff --git a/src/main.js b/src/main.js index d6f730cb..ad9a93a7 100644 --- a/src/main.js +++ b/src/main.js @@ -1,20 +1 @@ 'use strict'; - -const INPUT_BUTTON_TYPES = ['button', 'submit', 'reset']; - -// eslint-disable-next-line no-unused-vars -function onSubmit(event) { - event.preventDefault(); - - const { target: form } = event; - - const formValue = [...form.elements] - .filter(({ type }) => !INPUT_BUTTON_TYPES.includes(type)) - .reduce((acc, { value, name }) => ({ - ...acc, [name]: value, - }), {}); - - window.alert( - `Form name: ${form.name}\nForm value: ${JSON.stringify(formValue, null, 4)}` - ); -} diff --git a/src/style.css b/src/style.css index c4301db2..b1693b54 100644 --- a/src/style.css +++ b/src/style.css @@ -1 +1,9 @@ -/* styles go here */ +.fieldset { + padding-bottom: 0; + margin-bottom: 20px; +} + +.field { + display: block; + padding-bottom: 10px; +} From 980f4ce8309b226f2269c4c83d5baac54cbf7346 Mon Sep 17 00:00:00 2001 From: Artem Kurinniy Date: Wed, 26 Apr 2023 10:16:17 +0300 Subject: [PATCH 4/4] added name attribute --- src/index.html | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/index.html b/src/index.html index c8911af2..1868e93c 100644 --- a/src/index.html +++ b/src/index.html @@ -86,6 +86,7 @@ @@ -97,6 +98,7 @@ @@ -124,7 +126,11 @@
    @@ -134,6 +140,7 @@ @@ -162,6 +169,7 @@ @@ -170,7 +178,7 @@ Additional info: